|
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.
|
|
| PrimalValueLinearTape () |
| Constructor.
|
|
void | revertPrimals (Position const &pos) |
| Revert the primals to the state indicated by pos.
|
|
| PrimalValueBaseTape () |
| Constructor.
|
|
Gradient & | gradient (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.
|
|
void | initIdentifier (Real &value, Identifier &identifier) |
|
void | destroyIdentifier (Real &value, Identifier &identifier) |
| Has to be called for each identifier, before it is deallocated.
|
|
void | store (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &lhs, ExpressionInterface< Real, Rhs > const &rhs) |
| Has to be called by an AD variable every time it is assigned.
|
|
void | store (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &lhs, LhsExpressionInterface< Real, Gradient, Impl, Rhs > const &rhs) |
| Has to be called by an AD variable every time it is assigned.
|
|
void | store (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &lhs, Real const &rhs) |
| Has to be called by an AD variable every time it is assigned.
|
|
void | registerInput (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value) |
|
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.
|
|
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.
|
|
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.
|
|
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 | resetTo (Position const &pos, bool resetAdjoints=true, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic) |
| Reset the tape to the provided 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 | swap (Impl &other) |
| Swap all data with an other tape.
|
|
void | deleteAdjointVector () |
| Delete the adjoint vector. See Adjoint vector management.
|
|
void | resizeAdjointVector () |
| Explicitly trigger resizing of 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.
|
|
size_t | getParameter (TapeParameters parameter) const |
| See Parameters functions.
|
|
void | setParameter (TapeParameters parameter, size_t value) |
| See Parameters functions.
|
|
VectorAccess< Gradient > * | createVectorAccess () |
| See Adjoint vector access.
|
|
VectorAccess< Adjoint > * | createVectorAccessCustomAdjoints (Adjoint *data) |
| See Adjoint vector access.
|
|
void | deleteVectorAccess (VectorAccessInterface< Real, Identifier > *access) |
| See Adjoint vector access.
|
|
Real | registerExternalFunctionOutput (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value) |
|
void | pushJacobianManual (Real const &jacobian, Real const &value, Identifier const &index) |
|
void | storeManual (Real const &lhsValue, Identifier &lhsIndex, Config::ArgumentSize const &size) |
|
void | pushLowLevelFunction (Config::LowLevelFunctionToken token, size_t size, ByteDataView &data) |
| Push a low level function to the tape.
|
|
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.
|
|
void | evaluatePrimal (Position const &start, Position const &end) |
| Perform a full (forward) reevaluation of the primals in the tape.
|
|
Real & | primal (Identifier const &identifier) |
| Writable reference to primal value.
|
|
Real const & | primal (Identifier const &identifier) const |
| Read only reference to primal value.
|
|
| CommonTapeImplementation () |
| Constructor.
|
|
| CommonTapeImplementation (CommonTapeImplementation &&)=delete |
| Do not allow move construction. Relevant use cases should be covered by swap.
|
|
| CommonTapeImplementation (CommonTapeImplementation const &)=delete |
| Do not allow copy construction.
|
|
CommonTapeImplementation & | operator= (CommonTapeImplementation &&)=delete |
| Do not allow move assignment. Relevant use cases should be covered by swap.
|
|
CommonTapeImplementation & | operator= (CommonTapeImplementation const &)=delete |
| Do not allow copy assignment.
|
|
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.
|
|
void | evaluate (AdjointsManagement adjointsManagement=AdjointsManagement::Automatic) |
| Perform a full reverse evaluation of the tape.
|
|
template<typename Lhs > |
void | registerOutput (LhsExpressionInterface< Real, Gradient, Impl, 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.
|
|
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.
|
|
void | reset (bool resetAdjoints=true, AdjointsManagement adjointsManagement=AdjointsManagement::Automatic) |
| Reset the tape to the initial state for a fresh recording.
|
|
void | swap (Impl &other) |
| Swap all data with an other tape.
|
|
void | resetHard () |
| Delete everything and return to the state after construction, as far as possible.
|
|
void | writeToFile (const std::string &filename) |
| See File IO functions.
|
|
void | readFromFile (const std::string &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.
|
|
void | pushExternalFunction (ExternalFunction< Impl > const &extFunc) |
|
void | evaluateForward (AdjointsManagement adjointsManagement=AdjointsManagement::Automatic) |
| Perform a forward evaluation of a part of the tape. It has to hold start <= end.
|
|
Identifier | getPassiveIndex () const |
| Identifier for passive values. Usually 0.
|
|
Identifier | getInvalidIndex () const |
| Invalid identifier.
|
|
bool | isIdentifierActive (Identifier const &index) const |
|
template<typename Lhs > |
void | deactivateValue (LhsExpressionInterface< Real, Gradient, Impl, Lhs > &value) |
|
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.
|
|
void | evaluatePrimal () |
| Perform a full (forward) reevaluation of the primals in the tape.
|
|
void | setPrimal (Identifier const &identifier, Real const &primal) |
| Set primal value.
|
|
Real const & | getPrimal (Identifier const &identifier) const |
| Get primal value.
|
|
TemporaryMemory & | getTemporaryMemory () |
| Temporary memory that can be used for dynamic data both during the evaluation and the recording.
|
|
Config::LowLevelFunctionToken | registerLowLevelFunction (LowLevelFunctionEntry< Impl, Real, Identifier > const &entry) |
| Register a low level function on the tape.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
template<typename Lhs , typename Tape > |
Real | registerExternalFunctionOutput (LhsExpressionInterface< Real, Gradient, Tape, Lhs > &value) |
|
void | pushExternalFunction (ExternalFunction< ExternalFunctionTapeInterface > const &extFunc) |
|
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.
|
|
Gradient & | gradient (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.
|
|
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) |
|
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.
|
|
TemporaryMemory & | getTemporaryMemory () |
| 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.
|
|
void | pushJacobianManual (Real const &jacobian, Real const &value, Identifier const &index) |
|
void | storeManual (Real const &lhsValue, Identifier &lhsIndex, Config::ArgumentSize const &size) |
|
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.
|
|
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.
|
|
Real & | primal (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.
|
|
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.
|
|
|
static void | internalEvaluateForward_EvalStatements (PrimalValueLinearTape &tape, Real *primalVector, Gradient *adjointVector, size_t &curLLFByteDataPos, size_t const &endLLFByteDataPos, char *dataPtr, size_t &curLLFInfoDataPos, size_t const &endLLFInfoDataPos, Config::LowLevelFunctionToken *const tokenPtr, Config::LowLevelFunctionDataSize *const dataSizePtr, size_t &curConstantPos, size_t const &endConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, size_t const &endPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, size_t const &endRhsIdentifiersPos, Identifier const *const rhsIdentifiers, size_t &curStatementPos, size_t const &endStatementPos, Config::ArgumentSize const *const numberOfPassiveArguments, EvalHandle const *const stmtEvalhandle, size_t const &startAdjointPos, size_t const &endAdjointPos) |
| Perform a forward evaluation of the tape. Arguments are from the recursive eval methods of the DataInterface.
|
|
static void | internalEvaluatePrimal_EvalStatements (PrimalValueLinearTape &tape, Real *primalVector, size_t &curLLFByteDataPos, size_t const &endLLFByteDataPos, char *dataPtr, size_t &curLLFInfoDataPos, size_t const &endLLFInfoDataPos, Config::LowLevelFunctionToken *const tokenPtr, Config::LowLevelFunctionDataSize *const dataSizePtr, size_t &curConstantPos, size_t const &endConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, size_t const &endPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, size_t const &endRhsIdentifiersPos, Identifier const *const rhsIdentifiers, size_t &curStatementPos, size_t const &endStatementPos, Config::ArgumentSize const *const numberOfPassiveArguments, EvalHandle const *const stmtEvalhandle, size_t const &startAdjointPos, size_t const &endAdjointPos) |
| Perform a primal evaluation of the tape. Arguments are from the recursive eval methods of the DataInterface.
|
|
static void | internalEvaluateReverse_EvalStatements (PrimalValueLinearTape &tape, Real *primalVector, Gradient *adjointVector, size_t &curLLFByteDataPos, size_t const &endLLFByteDataPos, char *dataPtr, size_t &curLLFInfoDataPos, size_t const &endLLFInfoDataPos, Config::LowLevelFunctionToken *const tokenPtr, Config::LowLevelFunctionDataSize *const dataSizePtr, size_t &curConstantPos, size_t const &endConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, size_t const &endPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, size_t const &endRhsIdentifiersPos, Identifier const *const rhsIdentifiers, size_t &curStatementPos, size_t const &endStatementPos, Config::ArgumentSize const *const numberOfPassiveArguments, EvalHandle const *const stmtEvalhandle, size_t const &startAdjointPos, size_t const &endAdjointPos) |
| Perform a reverse evaluation of the tape. Arguments are from the recursive eval methods of the DataInterface.
|
|
static void | internalEvaluateForward_EvalStatements (Args &&... args) |
| Perform a forward evaluation of the tape. Arguments are from the recursive eval methods of the DataInterface.
|
|
static void | internalEvaluatePrimal_EvalStatements (Args &&... args) |
| Perform a primal evaluation of the tape. Arguments are from the recursive eval methods of the DataInterface.
|
|
static void | internalEvaluateReverse_EvalStatements (Args &&... args) |
| Perform a reverse evaluation of the tape. Arguments are from the recursive eval methods of the DataInterface.
|
|
template<LowLevelFunctionEntryCallKind callType, typename... Args> |
static void | callLowLevelFunction (Impl &impl, bool forward, size_t &curLLFByteDataPos, char *dataPtr, size_t &curLLFTInfoDataPos, Config::LowLevelFunctionToken *const tokenPtr, Config::LowLevelFunctionDataSize *const dataSizePtr, Args &&... args) |
| Called by the implementing tapes during a tape evaluation when a low level function statement has been reached.
|
|
|
static Real | statementEvaluateForwardInner (Real *primalVector, Gradient *adjointVector, Gradient &lhsTangent, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Evaluate expression in a forward mode.
|
|
static Real | statementEvaluateForwardFull (Func const &evalInner, size_t const &maxActiveArgs, size_t const &maxConstantArgs, Real *primalVector, Gradient *adjointVector, Gradient &lhsTangent, Config::ArgumentSize numberOfPassiveArguments, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Load the expression data and evaluate the expression in a forward mode.
|
|
static Real | statementEvaluatePrimalInner (Real *primalVector, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Evaluate expression in a primal setting.
|
|
static Real | statementEvaluatePrimalFull (Func const &evalInner, size_t const &maxActiveArgs, size_t const &maxConstantArgs, Real *primalVector, Config::ArgumentSize numberOfPassiveArguments, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Load the expression data and evaluate the expression in a primal setting.
|
|
static void | statementEvaluateReverseInner (Real *primalVector, Gradient *adjointVector, Gradient lhsAdjoint, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Evaluate expression in a reverse mode.
|
|
static void | statementEvaluateReverseFull (Func const &evalInner, size_t const &maxActiveArgs, size_t const &maxConstantArgs, Real *primalVector, Gradient *adjointVector, Gradient lhsAdjoint, Config::ArgumentSize numberOfPassiveArguments, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Load the expression data and evaluate the expression in a reverse mode.
|
|
static Real | statementEvaluateForward (Real *primalVector, Gradient *adjointVector, Gradient &lhsTangent, Config::ArgumentSize numberOfPassiveArguments, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Evaluate expression in a forward mode.
|
|
static Real | statementEvaluatePrimal (Real *primalVector, Config::ArgumentSize numberOfPassiveArguments, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Evaluate primal expression.
|
|
static void | statementEvaluateReverse (Real *primalVector, Gradient *adjointVector, Gradient lhsAdjoint, Config::ArgumentSize numberOfPassiveArguments, size_t &curConstantPos, PassiveReal const *const constantValues, size_t &curPassivePos, Real const *const passiveValues, size_t &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers) |
| Evaluate expression in a reverse mode.
|
|
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 Real | statementEvaluateForward (Args &&... args) |
| Evaluate expression in a forward mode.
|
|
static Real | statementEvaluatePrimal (Args &&... args) |
| Evaluate primal expression.
|
|
static void | statementEvaluateReverse (Args &&... args) |
| Evaluate expression in a reverse mode.
|
|
static Real | statementEvaluateForwardFull (Func const &inner, size_t const &maxActiveArgs, size_t const &maxConstantArgs, Args &&... args) |
| Load the expression data and evaluate the expression in a forward mode.
|
|
static Real | statementEvaluatePrimalFull (Func const &inner, size_t const &maxActiveArgs, size_t const &maxConstantArgs, Args &&... args) |
| Load the expression data and evaluate the expression in a primal setting.
|
|
static void | statementEvaluateReverseFull (Func const &inner, size_t const &maxActiveArgs, size_t const &maxConstantArgs, Args &&... args) |
| Load the expression data and evaluate the expression in a reverse mode.
|
|
static Real | statementEvaluateForwardInner (Args &&... args) |
| Evaluate expression in a forward mode.
|
|
static Real | statementEvaluatePrimalInner (Args &&... args) |
| Evaluate expression in a primal setting.
|
|
static void | statementEvaluateReverseInner (Args &&... args) |
| Evaluate expression in a reverse mode.
|
|
static bool constexpr | AllowJacobianOptimization |
| See InternalStatementRecordingTapeInterface.
|
|
static bool constexpr | HasPrimalValues |
| See PrimalEvaluationTapeInterface.
|
|
static bool constexpr | LinearIndexHandling |
| See IdentifierInformationTapeInterface.
|
|
static bool constexpr | RequiresPrimalRestore |
| See PrimalEvaluationTapeInterface.
|
|
static bool constexpr | LinearIndexHandling = false |
|
static bool constexpr | AllowJacobianOptimization |
| If certain operations can be hidden from the tape.
|
|
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.
|
|
std::vector< Gradient > | adjoints |
| Evaluation vector for AD.
|
|
ConstantValueData | constantValueData |
| Data stream for constant argument data.
|
|
MemberStore< IndexManager, Impl, TapeTypes::IsStaticIndexHandler > | indexManager |
| Index manager.
|
|
PassiveValueData | passiveValueData |
| Data stream for passive argument value data.
|
|
std::vector< Real > | primals |
| Current state of primal values in the program.
|
|
std::vector< Real > | primalsCopy |
| Copy of primal values for AD evaluations.
|
|
RhsIdentifierData | rhsIdentiferData |
| Data stream for argument identifier data.
|
|
StatementData | statementData |
| Data stream for statement specific data.
|
|
bool | active |
| Whether or not the tape is in recording mode.
|
|
TemporaryMemory | allocator |
| Allocator for temporary memory.
|
|
LowLevelFunctionByteData | llfByteData |
| Byte data for low level functions.
|
|
LowLevelFunctionInfoData | llfInfoData |
| Token and size data for low level functions.
|
|
size_t | manualPushCounter |
| Count the pushes after storeManual, to identify the last push.
|
|
size_t | manualPushGoal |
| Store the number of expected pushes after a storeManual call.
|
|
Identifier | manualPushLhsIdentifier |
| For storeManual, remember the identifier assigned to the lhs.
|
|
Real | manualPushLhsValue |
| For storeManual, remember the value assigned to the lhs.
|
|
std::set< TapeParameters > | options |
| All options.
|
|
static EvalHandle const | jacobianExpressions [Config::MaxArgumentSize] |
| Expressions for manual statement pushes.
|
|
static std::vector< LowLevelFunctionEntry< Impl, Real, Identifier > > * | lowLevelFunctionLookup = nullptr |
| Lookup table for low level function.
|
|