CoDiPack  2.2.0
A Code Differentiation Package
SciComp TU Kaiserslautern
Loading...
Searching...
No Matches
codi::TagTapeReverse< T_Real, T_Tag > Struct Template Reference

Tape for tagging variables and find errors in the AD workflow. More...

#include <tagTapeReverse.hpp>

Inheritance diagram for codi::TagTapeReverse< T_Real, T_Tag >:

Classes

struct  TapeTypes
 Required definition for event system. More...
 

Public Types

using Base = TagTapeBase< T_Real, T_Tag, T_Real, TagTapeReverse >
 Base class abbreviation.
 
using Gradient = Real
 See TapeTypesInterface.
 
using Identifier = TagData< Tag >
 See TapeTypesInterface.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Position = EmptyPosition
 See TapeTypesInterface.
 
using Real = T_Real
 See TagTapeReverse.
 
using Tag = T_Tag
 See TagTapeReverse.
 
- Public Types inherited from codi::FullTapeInterface< T_Real, T_Real, TagData< T_Tag >, EmptyPosition >
using Gradient = T_Real
 See FullTapeInterface.
 
using Identifier = TagData< T_Tag >
 See FullTapeInterface.
 
using Position = EmptyPosition
 See FullTapeInterface.
 
using Real = T_Real
 See FullTapeInterface.
 
- Public Types inherited from codi::CustomAdjointVectorEvaluationTapeInterface< T_Position >
using Position = T_Position
 See CustomAdjointVectorEvaluationTapeInterface.
 
- Public Types inherited from codi::ForwardEvaluationTapeInterface< T_Position >
using Position = T_Position
 See ForwardEvaluationTapeInterface.
 
- Public Types inherited from codi::PositionalEvaluationTapeInterface< T_Position >
using Position = T_Position
 See PositionalEvaluationTapeInterface.
 
- Public Types inherited from codi::DataManagementTapeInterface< T_Real, T_Identifier >
using Identifier = T_Identifier
 See DataManagementTapeInterface.
 
using Real = T_Real
 See DataManagementTapeInterface.
 
- Public Types inherited from codi::ExternalFunctionTapeInterface< T_Real, T_Gradient, T_Identifier >
using Gradient = T_Gradient
 See ExternalFunctionTapeInterface.
 
using Identifier = T_Identifier
 See ExternalFunctionTapeInterface.
 
using Real = T_Real
 See ExternalFunctionTapeInterface.
 
- Public Types inherited from codi::GradientAccessTapeInterface< T_Gradient, T_Identifier >
using Gradient = T_Gradient
 See GradientAccessTapeInterface.
 
using Identifier = T_Identifier
 See GradientAccessTapeInterface.
 
- Public Types inherited from codi::IdentifierInformationTapeInterface< T_Real, T_Gradient, T_Identifier >
using Gradient = T_Gradient
 See IdentifierInformationTapeInterface.
 
using Identifier = T_Identifier
 See IdentifierInformationTapeInterface.
 
using Real = T_Real
 See IdentifierInformationTapeInterface.
 
- Public Types inherited from codi::InternalStatementRecordingTapeInterface< T_Identifier >
using Identifier = T_Identifier
 See InternalStatementRecordingTapeInterface.
 
- Public Types inherited from codi::LowLevelFunctionTapeInterface< T_Real, T_Gradient, T_Identifier >
using Gradient = T_Gradient
 See LowLevelFunctionTapeInterface.
 
using Identifier = T_Identifier
 See LowLevelFunctionTapeInterface.
 
using Real = T_Real
 See LowLevelFunctionTapeInterface.
 
- Public Types inherited from codi::ManualStatementPushTapeInterface< T_Real, T_Gradient, T_Identifier >
using Gradient = T_Gradient
 See ManualStatementPushTapeInterface.
 
using Identifier = T_Identifier
 See ManualStatementPushTapeInterface.
 
using Real = T_Real
 See ManualStatementPushTapeInterface.
 
- Public Types inherited from codi::PreaccumulationEvaluationTapeInterface< T_Real, T_Gradient, T_Identifier, T_Position >
using Gradient = T_Gradient
 See PreaccumulationEvaluationTapeInterface.
 
using Identifier = T_Identifier
 See PreaccumulationEvaluationTapeInterface.
 
using Position = T_Position
 See PreaccumulationEvaluationTapeInterface.
 
using Real = T_Real
 See PreaccumulationEvaluationTapeInterface.
 
- Public Types inherited from codi::PrimalEvaluationTapeInterface< T_Real, T_Identifier, T_Position >
using Identifier = T_Identifier
 See PrimalEvaluationTapeInterface.
 
using Position = T_Position
 See PrimalEvaluationTapeInterface.
 
using Real = T_Real
 See PrimalEvaluationTapeInterface.
 
- Public Types inherited from codi::ReverseTapeInterface< T_Real, T_Gradient, T_Identifier >
using Gradient = T_Gradient
 See ReverseTapeInterface.
 
using Identifier = T_Identifier
 See ReverseTapeInterface.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Real = T_Real
 See ReverseTapeInterface.
 
- Public Types inherited from codi::TagTapeBase< T_Real, T_Tag, T_Real, TagTapeReverse< T_Real, T_Tag > >
using Gradient = T_Real
 See TagTapeBase.
 
using Identifier = TagData< Tag >
 See TapeTypesInterface.
 
using Impl = TagTapeReverse< T_Real, T_Tag >
 See TagTapeBase.
 
using Real = T_Real
 See TagTapeBase.
 
using Tag = T_Tag
 See TagTapeBase.
 
using TagErrorCallback = void(*)(Tag const &correctTag, Tag const &wrongTag, void *userData)
 Callback for a tag error.
 
using TagPropertyErrorCallback = void(*)(Real const &currentValue, Real const &newValue, TagFlags flag, void *userData)
 Callback for a change in a lhs value.
 

Public Member Functions

 TagTapeReverse ()
 Constructor.
 
CustomAdjointVectorEvaluationTapeInterface interface implementation
template<typename Adjoint >
void evaluate (Position const &start, Position const &end, Adjoint *data)
 Do nothing.
 
template<typename Adjoint >
void evaluateForward (Position const &start, Position const &end, Adjoint *data)
 Do nothing.
 
DataManagementTapeInterface interface implementation
void writeToFile (std::string const &filename) const
 Do nothing.
 
void readFromFile (std::string const &filename)
 Do nothing.
 
void deleteData ()
 Do nothing.
 
std::set< TapeParameters > const & getAvailableParameters () const
 Empty set.
 
size_t getParameter (TapeParameters parameter) const
 Do nothing.
 
bool hasParameter (TapeParameters parameter) const
 Do nothing.
 
void setParameter (TapeParameters parameter, size_t value)
 Do nothing.
 
VectorAccessInterface< Real, Identifier > * createVectorAccess ()
 Do nothing.
 
template<typename Adjoint >
VectorAccessInterface< Real, Identifier > * createVectorAccessCustomAdjoints (Adjoint *data)
 Do nothing.
 
void deleteVectorAccess (VectorAccessInterface< Real, Identifier > *access)
 Do nothing.
 
void swap (TagTapeReverse &other)
 Swap members.
 
void resetHard ()
 Do nothing.
 
void deleteAdjointVector ()
 Do nothing.
 
ExternalFunctionTapeInterface interface implementation
template<typename Lhs >
Real registerExternalFunctionOutput (LhsExpressionInterface< Real, Gradient, TagTapeReverse, Lhs > &value)
 Verifies tag properties.
 
void pushExternalFunction (ExternalFunction< TagTapeReverse > const &extFunc)
 Do nothing.
 
ForwardEvaluationTapeInterface interface implementation
void evaluateForward (Position const &start, Position const &end)
 Do nothing.
 
void evaluateForward ()
 Do nothing.
 
GradientAccessTapeInterface interface implementation
void setGradient (Identifier const &identifier, Gradient const &gradient)
 Verify tag.
 
Gradient const & getGradient (Identifier const &identifier) const
 Verify tag.
 
Gradientgradient (Identifier const &identifier)
 Verify tag.
 
Gradient const & gradient (Identifier const &identifier) const
 Verify tag.
 
ManualStatementPushTapeInterface interface implementation
void pushJacobiManual (Real const &jacobian, Real const &value, Identifier const &index)
 Do nothing.
 
void storeManual (Real const &lhsValue, Identifier &lhsIndex, Config::ArgumentSize const &size)
 Set tag on lhs.
 
PositionalEvaluationTapeInterface interface implementation
void evaluate (Position const &start, Position const &end)
 Do nothing.
 
void clearAdjoints (Position const &start, Position const &end)
 Do nothing.
 
Position getPosition () const
 Do nothing.
 
Position getZeroPosition () const
 Do nothing.
 
void resetTo (Position const &pos, bool resetAdjoints=true)
 Do nothing.
 
PreaccumulationEvaluationTapeInterface interface implementation
void evaluateKeepState (Position const &start, Position const &end)
 Do nothing.
 
void evaluateForwardKeepState (Position const &start, Position const &end)
 Do nothing.
 
ReverseTapeInterface interface implementation
template<typename Lhs >
void registerInput (LhsExpressionInterface< Real, Gradient, TagTapeReverse, Lhs > &value)
 Verify value properties.
 
template<typename Lhs >
void registerOutput (LhsExpressionInterface< Real, Gradient, TagTapeReverse, Lhs > &value)
 Verify tag.
 
void setActive ()
 Set tape to active.
 
void setPassive ()
 Set tape to passive.
 
bool isActive () const
 Check if tape is active.
 
bool isActive (Identifier const &identifier) const
 Default check.
 
void evaluate ()
 Do nothing.
 
void clearAdjoints ()
 Do nothing.
 
void reset (bool resetAdjoints=true)
 Do nothing.
 
template<typename Stream = std::ostream>
void printStatistics (Stream &out=std::cout) const
 Do nothing.
 
template<typename Stream = std::ostream>
void printTableHeader (Stream &out=std::cout) const
 Do nothing.
 
template<typename Stream = std::ostream>
void printTableRow (Stream &out=std::cout) const
 Do nothing.
 
TapeValues getTapeValues () const
 Do nothing.
 
- Public Member Functions inherited from codi::CustomAdjointVectorEvaluationTapeInterface< T_Position >
template<typename Adjoint >
void evaluate (Position const &start, Position const &end, Adjoint *data)
 Perform a reverse evaluation for a part of the tape. It hast to hold start >= end.
 
template<typename Adjoint >
void evaluateForward (Position const &start, Position const &end, Adjoint *data)
 Perform a forward evaluation of a part of the tape. It has to hold start <= end.
 
- Public Member Functions inherited from codi::ForwardEvaluationTapeInterface< T_Position >
void evaluateForward (Position const &start, Position const &end, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Perform a forward evaluation of a part of the tape. It has to hold start <= end.
 
void evaluateForward (AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Perform a forward evaluation of the full tape.
 
- Public Member Functions inherited from codi::PositionalEvaluationTapeInterface< T_Position >
void evaluate (Position const &start, Position const &end, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Perform a reverse evaluation for a part of the tape. It hast to hold start >= end.
 
void clearAdjoints (Position const &start, Position const &end, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Clear all adjoints that would be set in a tape evaluation from start to end. It has to hold start >= end.
 
Position getPosition () const
 Current position of the tape.
 
Position getZeroPosition () const
 Initial position of the tape.
 
void resetTo (Position const &pos, bool resetAdjoints=true, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Reset the tape to the provided position.
 
- Public Member Functions inherited from codi::DataManagementTapeInterface< T_Real, T_Identifier >
void writeToFile (std::string const &filename) const
 See File IO functions.
 
void readFromFile (std::string const &filename)
 See File IO functions.
 
void deleteData ()
 See File IO functions.
 
std::set< TapeParameters > const & getAvailableParameters () const
 See Parameters functions.
 
size_t getParameter (TapeParameters parameter) const
 See Parameters functions.
 
bool hasParameter (TapeParameters parameter) const
 See Parameters functions.
 
void setParameter (TapeParameters parameter, size_t value)
 See Parameters functions.
 
VectorAccessInterface< Real, Identifier > * createVectorAccess ()
 See Adjoint vector access.
 
template<typename Adjoint >
VectorAccessInterface< Real, Identifier > * createVectorAccessCustomAdjoints (Adjoint *data)
 See Adjoint vector access.
 
void deleteVectorAccess (VectorAccessInterface< Real, Identifier > *access)
 See Adjoint vector access.
 
void resizeAdjointVector ()
 Explicitly trigger resizing of the adjoint vector. See Adjoint vector management.
 
void deleteAdjointVector ()
 Delete the adjoint vector. See Adjoint vector management.
 
void beginUseAdjointVector ()
 Declare that the adjoint vector is being used. See Adjoint vector management.
 
void endUseAdjointVector ()
 Declare that the adjoint vector is no longer used. See Adjoint vector management.
 
void swap (DataManagementTapeInterface &other)
 Swap all data with an other tape.
 
void resetHard ()
 Delete everything and return to the state after construction, as far as possible.
 
- Public Member Functions inherited from codi::ExternalFunctionTapeInterface< T_Real, T_Gradient, T_Identifier >
template<typename Lhs , typename Tape >
Real registerExternalFunctionOutput (LhsExpressionInterface< Real, Gradient, Tape, Lhs > &value)
 
void pushExternalFunction (ExternalFunction< ExternalFunctionTapeInterface > const &extFunc)
 
- Public Member Functions inherited from codi::GradientAccessTapeInterface< T_Gradient, T_Identifier >
void setGradient (Identifier const &identifier, Gradient const &gradient, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Set the gradient.
 
Gradient const & getGradient (Identifier const &identifier, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic) const
 Set the gradient.
 
Gradientgradient (Identifier const &identifier, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Reference access to gradient.
 
Gradient const & gradient (Identifier const &identifier, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic) const
 Constant reference access to gradient.
 
- Public Member Functions inherited from codi::IdentifierInformationTapeInterface< T_Real, T_Gradient, T_Identifier >
Identifier getPassiveIndex () const
 Identifier for passive values. Usually 0.
 
Identifier getInvalidIndex () const
 Invalid identifier.
 
bool isIdentifierActive (Identifier const &index) const
 
template<typename Lhs , typename Tape >
void deactivateValue (LhsExpressionInterface< Real, Gradient, Tape, Lhs > &value)
 
- Public Member Functions inherited from codi::InternalStatementRecordingTapeInterface< T_Identifier >
template<typename Real >
void initIdentifier (Real &value, Identifier &identifier)
 
template<typename Real >
void destroyIdentifier (Real &value, Identifier &identifier)
 Has to be called for each identifier, before it is deallocated.
 
template<typename Lhs , typename Rhs >
void store (Lhs &lhs, Rhs const &rhs)
 Has to be called by an AD variable every time it is assigned.
 
- Public Member Functions inherited from codi::LowLevelFunctionTapeInterface< T_Real, T_Gradient, T_Identifier >
TemporaryMemorygetTemporaryMemory ()
 Temporary memory that can be used for dynamic data both during the evaluation and the recording.
 
void pushLowLevelFunction (Config::LowLevelFunctionToken token, size_t size, ByteDataView &data)
 Push a low level function to the tape.
 
Config::LowLevelFunctionToken registerLowLevelFunction (LowLevelFunctionEntry< LowLevelFunctionTapeInterface, Real, Identifier > const &entry)
 Register a low level function on the tape.
 
- Public Member Functions inherited from codi::ManualStatementPushTapeInterface< T_Real, T_Gradient, T_Identifier >
void pushJacobianManual (Real const &jacobian, Real const &value, Identifier const &index)
 
void storeManual (Real const &lhsValue, Identifier &lhsIndex, Config::ArgumentSize const &size)
 
- Public Member Functions inherited from codi::PreaccumulationEvaluationTapeInterface< T_Real, T_Gradient, T_Identifier, T_Position >
void evaluateKeepState (Position const &start, Position const &end, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Perform a tape evaluation but restore the state afterwards such that it is the same as when the evaluation started. It hast to hold start >= end.
 
void evaluateForwardKeepState (Position const &start, Position const &end, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Perform a tape evaluation but restore the state afterwards such that it is the same as when the evaluation started. It hast to hold start <= end.
 
- Public Member Functions inherited from codi::PrimalEvaluationTapeInterface< T_Real, T_Identifier, T_Position >
void evaluatePrimal (Position const &start, Position const &end)
 Perform a partly (forward) reevaluation of the primals in the tape. It has to hold start <= end.
 
void evaluatePrimal ()
 Perform a full (forward) reevaluation of the primals in the tape.
 
void setPrimal (Identifier const &identifier, Real const &gradient)
 Set primal value.
 
Real const & getPrimal (Identifier const &identifier) const
 Get primal value.
 
Realprimal (Identifier const &identifier)
 Writable reference to primal value.
 
Real const & primal (Identifier const &identifier) const
 Read only reference to primal value.
 
void revertPrimals (Position const &pos)
 Revert the primals to the state indicated by pos.
 
- Public Member Functions inherited from codi::ReverseTapeInterface< T_Real, T_Gradient, T_Identifier >
template<typename Lhs , typename Tape >
void registerInput (LhsExpressionInterface< Real, Gradient, Tape, Lhs > &value)
 
template<typename Lhs , typename Tape >
void registerOutput (LhsExpressionInterface< Real, Gradient, Tape, Lhs > &value)
 
void setActive ()
 Start/continue recording of statements.
 
void setPassive ()
 Stop/interrupt recording of statements.
 
bool isActive () const
 Check if the tape is recording.
 
void evaluate (AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Perform a full reverse evaluation of the tape.
 
void clearAdjoints (AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Clear all adjoint values, that is, set them to zero.
 
void reset (bool resetAdjoints=true, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
 Reset the tape to the initial state for a fresh recording.
 
template<typename Stream = std::ostream>
void printStatistics (Stream &out=std::cout) const
 Default formatting of TapeValues.
 
template<typename Stream = std::ostream>
void printTableHeader (Stream &out=std::cout) const
 Table header output of TapeValues.
 
template<typename Stream = std::ostream>
void printTableRow (Stream &out=std::cout) const
 Table row output of TapeValues.
 
TapeValues getTapeValues () const
 Get current tape values.
 
- Public Member Functions inherited from codi::TagTapeBase< T_Real, T_Tag, T_Real, TagTapeReverse< T_Real, T_Tag > >
void swap (Impl &other)
 Swap members.
 
 TagTapeBase ()
 Constructor.
 
void setCurTag (const Tag &tag)
 Set the current tag of the tape.
 
Tag getCurTag ()
 Get the current tag of the tape.
 
Tag getTagFromVariable (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value)
 Get tag of a CoDiPack active type.
 
void setTagOnVariable (LhsExpressionInterface< Real, Gradient, Impl, Lhs > const &value)
 Set tag on a CoDiPack active type.
 
void clearTagOnVariable (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value)
 Clear tag on a CoDiPack active type.
 
void clearTagPropertiesOnVariable (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value)
 Clear properties on a CoDiPack active type.
 
void setTagPropertyOnVariable (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value, TagFlags flag)
 Set properties on a CoDiPack active type.
 
bool hasTagPropertyOnVariable (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value, TagFlags flag)
 Check properties on a CoDiPack active type.
 
void setTagPropertyErrorCallback (TagPropertyErrorCallback const &callback, void *userData)
 Set the callback and user data for a property error error.
 
void setTagErrorCallback (TagErrorCallback const &callback, void *userData)
 Set the callback and user data for a tag error.
 
void setPreaccumulationHandlingEnabled (bool enabled)
 Enable or disable specialized handling for preaccumulation. Default: true Uses a special tag to sanitize preaccumulation regions.
 
void setPreaccumulationHandlingTag (Tag tag)
 Set the special tag for preaccumulation regions. See setPreaccumulationHandlingEnabled().
 
bool isPreaccumulationHandlingEnabled ()
 If handling for preaccumulation is enabled.
 
Tag getPreaccumulationHandlingTag ()
 The special tag for preaccumulation.
 

IdentifierInformationTapeInterface interface implementation

static bool constexpr LinearIndexHandling = true
 Behave as linear index handler.
 
Identifier getPassiveIndex () const
 Zero tag.
 
Identifier getInvalidIndex () const
 -1 tag.
 
bool isIdentifierActive (Identifier const &index) const
 Verify tag.
 
template<typename Lhs >
void deactivateValue (LhsExpressionInterface< Real, Gradient, TagTapeReverse, Lhs > &value)
 Set tag to passive.
 

InternalStatementRecordingTapeInterface interface implementation

static bool constexpr AllowJacobianOptimization = false
 Do not allow Jacobian optimization.
 
template<typename Real >
void initIdentifier (Real &value, Identifier &identifier)
 Do nothing.
 
template<typename Real >
void destroyIdentifier (Real &value, Identifier &identifier)
 Do nothing.
 
template<typename Lhs , typename Rhs >
void store (LhsExpressionInterface< Real, Gradient, TagTapeReverse, Lhs > &lhs, ExpressionInterface< Real, Rhs > const &rhs)
 Verify all tags of the rhs and the lhs properties.
 
template<typename Lhs , typename Rhs >
void store (LhsExpressionInterface< Real, Gradient, TagTapeReverse, Lhs > &lhs, LhsExpressionInterface< Real, Gradient, TagTapeReverse, Rhs > const &rhs)
 Verify all tags of the rhs and the lhs properties.
 
template<typename Lhs >
void store (LhsExpressionInterface< Real, Gradient, TagTapeReverse, Lhs > &lhs, PassiveReal const &rhs)
 Verify the lhs properties.
 

PrimalEvaluationTapeInterface interface implementation

static bool constexpr HasPrimalValues = false
 No primal values.
 
static bool constexpr RequiresPrimalRestore = false
 No primal values.
 
void evaluatePrimal (Position const &start, Position const &end)
 Do nothing.
 
void evaluatePrimal ()
 Do nothing.
 
void setPrimal (Identifier const &identifier, Real const &gradient)
 Do nothing.
 
Real const & getPrimal (Identifier const &identifier) const
 Do nothing.
 
Realprimal (Identifier const &identifier)
 Do nothing.
 
Real const & primal (Identifier const &identifier) const
 Do nothing.
 
void revertPrimals (Position const &pos)
 Do nothing.
 

Additional Inherited Members

- Static Public Member Functions inherited from codi::LowLevelFunctionTapeInterface< T_Real, T_Gradient, T_Identifier >
template<LowLevelFunctionEntryCallKind callType, typename... Args>
static void callLowLevelFunction (LowLevelFunctionTapeInterface &tape, bool forward, size_t &curLLFByteDataPos, char *dataPtr, size_t &curLLFInfoDataPos, Config::LowLevelFunctionToken *const tokenPtr, Config::LowLevelFunctionDataSize *const dataSizePtr, Args &&... args)
 Internal function for evaluating a low level function entry.
 
- Static Public Attributes inherited from codi::IdentifierInformationTapeInterface< T_Real, T_Gradient, T_Identifier >
static bool constexpr LinearIndexHandling = false
 
- Static Public Attributes inherited from codi::InternalStatementRecordingTapeInterface< T_Identifier >
static bool constexpr AllowJacobianOptimization
 If certain operations can be hidden from the tape.
 
- Static Public Attributes inherited from codi::PrimalEvaluationTapeInterface< T_Real, T_Identifier, T_Position >
static bool constexpr HasPrimalValues = false
 True if the tape has primal values.
 
static bool constexpr RequiresPrimalRestore
 True if the primal state changes during a reverse or forward evaluation.
 
- Static Public Attributes inherited from codi::TagTapeBase< T_Real, T_Tag, T_Real, TagTapeReverse< T_Real, T_Tag > >
static Tag constexpr PassiveTag
 Tag indicating an inactive value.
 
- Protected Member Functions inherited from codi::TagTapeBase< T_Real, T_Tag, T_Real, TagTapeReverse< T_Real, T_Tag > >
void verifyTag (ValidationIndicator< Real, Tag > &vi, Tag const &tag) const
 Checks if the tag is correct. Errors are set on the ValidationIndicator object.
 
void verifyTag (Tag const &tag) const
 Checks if the tag is correct and creates an error.
 
void verifyProperties (ValidationIndicator< Real, Tag > &vi, Real const &value, const EnumBitset< TagFlags > &properties) const
 Checks if the tag properties are correct.
 
void verifyTagAndProperties (Tag const &tag, Real const &value, const EnumBitset< TagFlags > &properties) const
 Checks if the tag and the properties are correct.
 
void checkLhsError (Real &lhsValue, Identifier &lhsIdentifier, const Real &rhs) const
 Check if a property for the lhs value is triggered.
 
void checkLhsError (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &lhs, const Real &rhs) const
 Check if the lhs value is changed.
 
void handleError (ValidationIndicator< Real, Tag > &vi) const
 Call tag error callback.
 
void verifyRegisterValue (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value, const Identifier &tag)
 Verify tag, properties and lhs error.
 
void setTag (Tag &tag) const
 Set tag on value.
 
void resetTag (Tag &tag) const
 Reset tag on value.
 
- Static Protected Member Functions inherited from codi::TagTapeBase< T_Real, T_Tag, T_Real, TagTapeReverse< T_Real, T_Tag > >
static void defaultPropertyErrorCallback (Real const &currentValue, Real const &newValue, TagFlags flag, void *userData)
 Default callback for TagPropertyErrorCallback.
 
static void defaultTagErrorCallback (Tag const &correctTag, Tag const &wrongTag, void *userData)
 Default callback for TagErrorCallback.
 
- Protected Attributes inherited from codi::TagTapeBase< T_Real, T_Tag, T_Real, TagTapeReverse< T_Real, T_Tag > >
Tag curTag
 Current tag for new values.
 
bool preaccumulationHandling
 Parameter to enable/disable preaccumulation handling.
 
Tag preaccumulationTag
 Tag used for preaccumulation specialized handling.
 
TagErrorCallback tagErrorCallback
 User defined callback for tag errors.
 
void * tagErrorUserData
 User data in call to callback for tag errors.
 
TagPropertyErrorCallback tagPropertyErrorCallback
 User defined callback for lhs value errors.
 
void * tagPropertyErrorUserData
 User data in call to callback for lhs value errors.
 

Detailed Description

template<typename T_Real, typename T_Tag>
struct codi::TagTapeReverse< T_Real, T_Tag >

Tape for tagging variables and find errors in the AD workflow.

Mimics a CoDiPack reverse tape.

See TagTapeBase for detailed information and functionality.

Template Parameters
T_RealThe computation type of a tape, usually chosen as ActiveType::Real.
T_tagThe type of the tag, usually int.

The documentation for this struct was generated from the following file: