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 | ActiveResult = Impl |
Type into which the expression can be converted. Usually also the type from which it is constructed. | |
Public Types inherited from codi::LhsExpressionInterface< T_Tape::Real, T_Tape::Gradient, T_Tape, T_Impl > | |
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. | |
Public Types inherited from codi::ExpressionInterface< T_Real, T_Impl > | |
using | ActiveResult = void |
Type into which the expression can be converted. Usually also the type from which it is constructed. | |
using | Impl = T_Impl |
See ExpressionInterface. | |
using | Real = T_Real |
See ExpressionInterface. | |
using | StoreAs = ExpressionInterface |
Defines how this expression is stored in an expression tree. | |
Public Types inherited from codi::NodeInterface< T_Impl > | |
using | Impl = T_Impl |
See NodeInterface. | |
Public Types inherited from codi::AssignmentOperators< T_Tape, T_Impl > | |
using | Impl |
See AssignmentOperators. | |
using | PassiveReal = RealTraits::PassiveReal<Real> |
Basic computation type. | |
using | Real = typename Tape::Real |
See InternalStatementRecordingTapeInterface. | |
using | Tape = T_Tape |
See AssignmentOperators. | |
Public Types inherited from codi::IncrementOperators< T_Tape, T_Impl > | |
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 | |
ActiveTypeBase () | |
Constructor. | |
ActiveTypeBase (ActiveTypeBase const &v) | |
Constructor. | |
template<typename Rhs > | |
ActiveTypeBase (ExpressionInterface< Real, Rhs > const &rhs) | |
Constructor. | |
template<typename Rhs , typename U = Real, typename = RealTraits::EnableIfNotPassiveReal<U>> | |
ActiveTypeBase (ExpressionInterface< typename U::Real, Rhs > const &rhs) | |
Constructor. | |
template<typename U = Real, typename = RealTraits::EnableIfNotPassiveReal<U>> | |
ActiveTypeBase (PassiveReal const &value) | |
Constructor. | |
ActiveTypeBase (Real const &value) | |
Constructor. | |
Impl & | cast () |
Cast to the implementation. | |
Impl & | operator= (ActiveTypeBase const &v) |
See LhsExpressionInterface::operator=(LhsExpressionInterface const&). | |
template<typename Rhs > | |
Impl & | operator= (ExpressionInterface< Real, Rhs > const &rhs) |
Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
template<typename Rhs , typename U = Real, typename = RealTraits::EnableIfNotPassiveReal<U>> | |
Impl & | operator= (ExpressionInterface< typename U::Real, Rhs > const &rhs) |
Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
Impl & | operator= (LhsExpressionInterface const &rhs) |
Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
template<typename Rhs > | |
Impl & | operator= (LhsExpressionInterface< Real, Gradient, Tape, Rhs > const &rhs) |
Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
template<typename U = Real, typename = RealTraits::EnableIfNotPassiveReal<U>> | |
Impl & | operator= (PassiveReal const &rhs) |
Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface. | |
Impl & | operator= (Real const &rhs) |
Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface. | |
~ActiveTypeBase () | |
Destructor. | |
Implementation of LhsExpressionInterface | |
Identifier & | getIdentifier () |
Identifier const & | getIdentifier () const |
Real & | value () |
Get a reference to the lvalue represented by the expression. | |
Real const & | value () const |
Get a constant reference to the lvalue represented by the expression. | |
Public Member Functions inherited from codi::LhsExpressionInterface< T_Tape::Real, T_Tape::Gradient, T_Tape, T_Impl > | |
LhsExpressionInterface ()=default | |
Constructor. | |
LhsExpressionInterface (LhsExpressionInterface const &other)=default | |
Constructor. | |
Impl & | cast () |
Cast to the implementation. | |
Impl const & | cast () const |
Cast to the implementation. | |
Gradient & | gradient () |
Get the gradient of this lvalue from the tape. | |
Gradient const & | gradient () const |
Get the gradient of this lvalue from the tape. | |
Gradient | getGradient () const |
Get the gradient of this lvalue from the tape. | |
void | setGradient (Gradient const &g) |
Set the gradient of this lvalue in the tape. | |
Real const & | getValue () const |
Get the primal value of this lvalue. | |
void | setValue (Real const &v) |
Set the primal value of this lvalue. | |
Impl & | operator= (Real const &rhs) |
Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface. | |
Impl & | operator= (PassiveReal const &rhs) |
Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface. | |
Impl & | operator= (ExpressionInterface< Real, Rhs > const &rhs) |
Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
Impl & | operator= (ExpressionInterface< typename U::Real, Rhs > const &rhs) |
Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
Impl & | operator= (LhsExpressionInterface const &rhs) |
Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
Impl & | operator= (LhsExpressionInterface< Real, Gradient, Tape, Rhs > const &rhs) |
Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface. | |
void | forEachLink (TraversalLogic< Logic > &logic, Args &&... args) const |
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 () |
Public Member Functions inherited from codi::ExpressionInterface< T_Real, T_Impl > | |
Impl const & | cast () const |
Cast to the implementation. | |
ExpressionInterface ()=default | |
Constructor. | |
ExpressionInterface (ExpressionInterface const &)=default | |
Constructor. | |
Real const | getValue () const |
Compute the primal value that is usually evaluated by the statement/expression. | |
template<size_t argNumber> | |
Real | getJacobian () const |
Public Member Functions inherited from codi::NodeInterface< T_Impl > | |
Impl const & | cast () const |
Cast to the implementation. | |
template<typename Logic , typename... Args> | |
void | forEachLink (TraversalLogic< Logic > &logic, Args &&... args) const |
Public Member Functions inherited from codi::AssignmentOperators< T_Tape, T_Impl > | |
Impl & | cast () |
Cast to the implementation. | |
template<typename Rhs > | |
Impl & | operator*= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator *= for expressions. | |
Impl & | operator*= (PassiveReal const &rhs) |
Operator *= for passive values. | |
template<typename Rhs > | |
Impl & | operator+= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator += for expressions. | |
Impl & | operator+= (PassiveReal const &rhs) |
Operator += for passive values. | |
template<typename Rhs > | |
Impl & | operator-= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator -= for expressions. | |
Impl & | operator-= (PassiveReal const &rhs) |
Operator -= for passive values. | |
template<typename Rhs > | |
Impl & | operator/= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator /= for expressions. | |
Impl & | operator/= (PassiveReal const &rhs) |
Operator /= for passive values. | |
Public Member Functions inherited from codi::IncrementOperators< T_Tape, T_Impl > | |
Impl & | cast () |
Cast to the implementation. | |
Impl & | operator++ () |
Prefix operator++. | |
Impl | operator++ (int u) |
Postfix operator++. | |
Impl & | operator-- () |
Prefix operator--. | |
Impl | operator-- (int u) |
Postfix operator--. | |
Additional Inherited Members | |
Static Public Member Functions inherited from codi::LhsExpressionInterface< T_Tape::Real, T_Tape::Gradient, T_Tape, T_Impl > | |
static Logic::ResultType constexpr | forEachLinkConstExpr (Args &&...) |
static Tape & | getTape () |
Get a reference to the tape which manages this expression. | |
Static Public Member Functions inherited from codi::NodeInterface< T_Impl > | |
template<typename Logic , typename... Args> | |
static Logic::ResultType constexpr | forEachLinkConstExpr (Args &&... args) |
Static Public Attributes inherited from codi::LhsExpressionInterface< T_Tape::Real, T_Tape::Gradient, T_Tape, T_Impl > | |
static bool constexpr | EndPoint |
If this expression is handled as a leaf in the tree. | |
Static Public Attributes inherited from codi::NodeInterface< T_Impl > | |
static bool constexpr | EndPoint = false |
If this expression is handled as a leaf in the tree. | |
Protected Member Functions inherited from codi::LhsExpressionInterface< T_Tape::Real, T_Tape::Gradient, T_Tape, T_Impl > | |
void | init (Real const &newValue, EventHints::Statement statementType) |
void | destroy () |
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 >::ActiveResult = Impl |
Type into which the expression can be converted. Usually also the type from which it is constructed.
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.