39#include "../../config.h"
40#include "../../expressions/logic/traversalLogic.hpp"
41#include "../../misc/macros.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.
void setPassive()
Stop/interrupt recording of statements.
bool isActive() const
Check if the tape is recording.
void printTableHeader(Stream &out=std::cout) const
Table header output of TapeValues.
T_Gradient Gradient
See ReverseTapeInterface.
Definition: reverseTapeInterface.hpp:81
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.
T_Real Real
See ReverseTapeInterface.
Definition: reverseTapeInterface.hpp:80
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.
T_Identifier Identifier
See ReverseTapeInterface.
Definition: reverseTapeInterface.hpp:82
RealTraits::PassiveReal< Real > PassiveReal
Basic computation type.
Definition: reverseTapeInterface.hpp:84
void registerOutput(LhsExpressionInterface< Real, Gradient, Tape, Lhs > &value)
Tape information that can be printed in a pretty print format or a table format.
Definition: tapeValues.hpp:73