Represents the base implementation concrete lvalue in the CoDiPack expression tree. More...
#include <activeTypeBase.hpp>
Public Types | |
using | Base = LhsExpressionInterface<Real, Gradient, T_Tape, T_Impl> |
Base class abbreviation. | |
using | Gradient = typename Tape::Gradient |
See LhsExpressionInterface. | |
using | Identifier = typename Tape::Identifier |
See LhsExpressionInterface. | |
using | Impl = T_Impl |
Abbreviation for the implementing class. | |
using | PassiveReal = RealTraits::PassiveReal<Real> |
Basic computation type. | |
using | Real = typename Tape::Real |
See LhsExpressionInterface. | |
using | Tape = T_Tape |
Implementation of ExpressionInterface | |
using | StoreAs = Impl const& |
Defines how this expression is stored in an expression tree. | |
using | ADLogic = Tape |
AD logic that governs the expression. Needs to be the same for all inputs of the expression. | |
![]() | |
using | Base |
Base class abbreviation. | |
using | Gradient |
See LhsExpressionInterface. | |
using | Identifier |
See GradientAccessTapeInterface. | |
using | Impl |
See LhsExpressionInterface. | |
using | PassiveReal |
Basic computation type. | |
using | Real |
See LhsExpressionInterface. | |
using | Tape |
See LhsExpressionInterface. | |
![]() | |
using | ADLogic |
AD logic that governs the expression. Needs to be the same for all inputs of the expression. | |
using | Impl |
See ExpressionInterface. | |
using | Real |
See ExpressionInterface. | |
using | StoreAs |
Defines how this expression is stored in an expression tree. | |
![]() | |
using | Impl = T_Impl |
See NodeInterface. | |
![]() | |
using | Impl |
See ExpressionMemberOperations. | |
using | Real |
See ExpressionMemberOperations. | |
![]() | |
using | Base |
using | Impl |
See AssignmentOperators. | |
using | PassiveReal |
Basic computation type. | |
using | Real |
See AssignmentOperators. | |
![]() | |
using | Impl |
See AssignmentOperators. | |
using | PassiveReal |
Basic computation type. | |
using | Real |
See AssignmentOperators. | |
![]() | |
using | Impl |
See IncrementOperators. | |
using | PassiveReal = RealTraits::PassiveReal<Real> |
Basic computation type. | |
using | Real = typename Tape::Real |
See InternalStatementRecordingTapeInterface. | |
using | Tape = T_Tape |
See IncrementOperators. | |
Public Member Functions | |
inlineImpl & | cast () |
Cast to the implementation. | |
inlineActiveTypeBase () | |
Constructor. | |
inlineActiveTypeBase (ActiveTypeBase const &v) | |
Constructor. | |
template<typename Rhs> | |
inlineActiveTypeBase (ExpressionInterface< Real, Rhs > const &rhs) | |
Constructor. | |
template<typename Rhs, typename U = Real, typename = RealTraits::EnableIfNotPassiveReal<U>> | |
inlineActiveTypeBase (ExpressionInterface< typename U::Real, Rhs > const &rhs) | |
Constructor. | |
template<typename U = Real, typename = RealTraits::EnableIfNotPassiveReal<U>> | |
inlineActiveTypeBase (PassiveReal const &value) | |
Constructor. | |
inlineActiveTypeBase (Real const &value) | |
Constructor. | |
inlineImpl & | operator= (ActiveTypeBase const &v) |
See LhsExpressionInterface::operator=(LhsExpressionInterface const&). | |
inlineImpl & | operator= (ExpressionInterface< Real, Rhs > const &rhs) |
Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (ExpressionInterface< typename U::Real, Rhs > const &rhs) |
Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (LhsExpressionInterface const &rhs) |
Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (LhsExpressionInterface< Real, Gradient, Tape, Rhs > const &rhs) |
Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (PassiveReal const &rhs) |
Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (Real const &rhs) |
Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface. | |
inline | ~ActiveTypeBase () |
Destructor. | |
Implementation of LhsExpressionInterface | |
inlineIdentifier & | getIdentifier () |
inlineIdentifier const & | getIdentifier () const |
inlineReal & | value () |
Get a reference to the lvalue represented by the expression. | |
inlineReal const & | value () const |
Get a constant reference to the lvalue represented by the expression. | |
![]() | |
inlineImpl const & | cast () const |
Cast to the implementation. | |
LhsExpressionInterface ()=default | |
Constructor. | |
LhsExpressionInterface (LhsExpressionInterface const &other)=default | |
Constructor. | |
inlineImpl & | cast () |
Cast to the implementation. | |
inlineImpl const & | cast () const |
Cast to the implementation. | |
inlineGradient & | gradient () |
Get the gradient of this lvalue from the tape. | |
inlineGradient const & | gradient () const |
Get the gradient of this lvalue from the tape. | |
inlineGradient | getGradient () const |
Get the gradient of this lvalue from the tape. | |
inlinevoid | setGradient (Gradient const &g) |
Set the gradient of this lvalue in the tape. | |
inlineReal const & | getValue () const |
Get the primal value of this lvalue. | |
inlinevoid | setValue (Real const &v) |
Set the primal value of this lvalue. | |
inlineImpl & | operator= (Real const &rhs) |
Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (PassiveReal const &rhs) |
Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (ExpressionInterface< Real, Rhs > const &rhs) |
Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (ExpressionInterface< typename U::Real, Rhs > const &rhs) |
Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (LhsExpressionInterface const &rhs) |
Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
inlineImpl & | operator= (LhsExpressionInterface< Real, Gradient, Tape, Rhs > const &rhs) |
Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
Real const & | value () const |
Get a constant reference to the lvalue represented by the expression. | |
Real & | value () |
Get a reference to the lvalue represented by the expression. | |
Identifier const & | getIdentifier () const |
Identifier & | getIdentifier () |
![]() | |
inlineImpl const & | cast () const |
Cast to the implementation. | |
ExpressionInterface ()=default | |
Constructor. | |
ExpressionInterface (ExpressionInterface const &)=default | |
Constructor. | |
inlineReal const | getValue () const |
Compute the primal value that is usually evaluated by the statement/expression. | |
inlineauto | applyTangent (Tangent const &tangent) const |
inlineauto | applyAdjoint (Adjoint const &adjoint) const |
![]() | |
inlineImpl const & | cast () const |
Cast to the implementation. | |
template<size_t argNumber> | |
char const & | getLink () const |
an expression. | |
![]() | |
inlineImpl & | operator*= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator *= for expressions. | |
inlineImpl & | operator*= (PassiveReal const &rhs) |
Operator *= for passive values. | |
inlineImpl & | operator+= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator += for expressions. | |
inlineImpl & | operator+= (PassiveReal const &rhs) |
Operator += for passive values. | |
inlineImpl & | operator+= (PassiveReal const &rhs) |
Operator += for passive values. | |
inlineImpl & | operator-= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator -= for expressions. | |
inlineImpl & | operator-= (PassiveReal const &rhs) |
Operator -= for passive values. | |
inlineImpl & | operator-= (PassiveReal const &rhs) |
Operator -= for passive values. | |
inlineImpl & | operator/= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator /= for expressions. | |
inlineImpl & | operator/= (PassiveReal const &rhs) |
Operator /= for passive values. | |
![]() | |
inlineImpl & | operator+= (PassiveReal const &rhs) |
Operator += for passive values. | |
inlineImpl & | operator-= (PassiveReal const &rhs) |
Operator -= for passive values. | |
![]() | |
inlineImpl & | cast () |
Cast to the implementation. | |
inlineImpl & | operator++ () |
Prefix operator++. | |
inlineImpl | operator++ (int u) |
Postfix operator++. | |
inlineImpl & | operator-- () |
Prefix operator--. | |
inlineImpl | operator-- (int u) |
Postfix operator--. | |
Additional Inherited Members | |
static Tape & | getTape () |
Get a reference to the tape which manages this expression. | |
static size_t constexpr | LinkCount |
handle the expression as a leaf node. | |
static size_t constexpr | LinkCount = false |
handle the expression as a leaf node. | |
![]() | |
static bool constexpr | JacobianOptimization |
See AssignmentOperators. | |
![]() | |
static bool constexpr | JacobianOptimization |
See AssignmentOperators. | |
inlinevoid | init (Real const &newValue, EventHints::Statement statementType) |
inlinevoid | destroy () |
![]() | |
inlineImpl const & | cast () const |
Cast to implementation. | |
Represents the base implementation concrete lvalue in the CoDiPack expression tree.
The class uses members for storing the value and the identifier.
See Expression design documentation for details about the expression system in CoDiPack.
The storage of the underlying tape and the access to it is left to the implementing class.
T_Tape | The tape that manages all expressions created with this type. |
T_Impl | Implementing class. |
using codi::ActiveTypeBase< T_Tape, T_Impl >::ADLogic = Tape |
AD logic that governs the expression. Needs to be the same for all inputs of the expression.
using codi::ActiveTypeBase< T_Tape, T_Impl >::StoreAs = Impl const& |
Defines how this expression is stored in an expression tree.
using codi::ActiveTypeBase< T_Tape, T_Impl >::Tape = T_Tape |
See ActiveTypeBase. For reverse AD, the tape must implement ReverseTapeInterface. For forward AD, the 'tape' (that is not a tape, technically) must implement InternalStatementRecordingTapeInterface and GradientAccessTapeInterface.
|
inline |
Get a reference to the identifier of the tape for this expression. See also Direct data access (Identifier management)
|
inline |
Get a constant reference to the identifier of the tape for this expression. See also Direct data access (Identifier management)
|
inline |
Get a reference to the lvalue represented by the expression.
|
inline |
Get a constant reference to the lvalue represented by the expression.