40#include "../../expressions/logic/traversalLogic.hpp"
42#include "../../traits/expressionTraits.hpp"
43#include "../../traits/realTraits.hpp"
44#include "../misc/tapeParameters.hpp"
45#include "../misc/tapeValues.hpp"
46#include "gradientAccessTapeInterface.hpp"
47#include "internalStatementRecordingTapeInterface.hpp"
52 template<
typename T_Real,
typename T_Gradient,
typename T_Tape,
typename T_Impl>
53 struct LhsExpressionInterface;
76 template<
typename T_Real,
typename T_Gradient,
typename T_Identifier>
93 template<
typename Lhs,
typename Tape>
99 template<
typename Lhs,
typename Tape>
140 template<
typename Stream = std::ostream>
143 template<
typename Stream = std::ostream>
146 template<
typename Stream = std::ostream>
#define CODI_DD(Type, Default)
Abbreviation for CODI_DECLARE_DEFAULT.
Definition macros.hpp:94
typename TraitsImplementation< Type >::PassiveReal PassiveReal
The original computation type, that was used in the application.
Definition realTraits.hpp:117
CoDiPack - Code Differentiation Package.
Definition codi.hpp:90
AdjointsManagement
Policies for management of the tape's interal adjoints.
Definition tapeParameters.hpp:98
@ Automatic
Manage internal adjoints automatically, including locking, bounds checking, and resizing.
Allow for a direct access to the gradient information computed by the tape.
Definition gradientAccessTapeInterface.hpp:67
Internal tape interface that is used by active types to trigger the storing of an expression.
Definition internalStatementRecordingTapeInterface.hpp:65
Base class for all CoDiPack lvalue expression.
Definition lhsExpressionInterface.hpp:63
Minimum tape interface for a working reverse tape implementation.
Definition reverseTapeInterface.hpp:78
TapeValues getTapeValues() const
Get current tape values.
T_Identifier Identifier
See ReverseTapeInterface.
Definition reverseTapeInterface.hpp:82
void setPassive()
Stop/interrupt recording of statements.
bool isActive() const
Check if the tape is recording.
T_Real Real
See ReverseTapeInterface.
Definition reverseTapeInterface.hpp:80
void printTableHeader(Stream &out=std::cout) const
Table header output of TapeValues.
void evaluate(AdjointsManagement adjointsManagement=AdjointsManagement::Automatic)
Perform a full reverse evaluation of the tape.
void registerInput(LhsExpressionInterface< Real, Gradient, Tape, Lhs > &value)
void printTableRow(Stream &out=std::cout) const
Table row output of TapeValues.
void setActive()
Start/continue recording of statements.
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 printStatistics(Stream &out=std::cout) const
Default formatting of TapeValues.
RealTraits::PassiveReal< Real > PassiveReal
Basic computation type.
Definition reverseTapeInterface.hpp:84
void registerOutput(LhsExpressionInterface< Real, Gradient, Tape, Lhs > &value)
T_Gradient Gradient
See ReverseTapeInterface.
Definition reverseTapeInterface.hpp:81
Tape information that can be printed in a pretty print format or a table format.
Definition tapeValues.hpp:73