Creates a pseudo active type from data references. Can be used to overlay existing data with active types. More...
#include <activeTypeWrapper.hpp>
Public Types | |
using | ActiveType |
See WritableActiveTypeWrapper. | |
using | Base = LhsExpressionInterface<Real, Gradient, Tape, ActiveTypeWrapper> |
Base class abbreviation. | |
using | Gradient = typename Tape::Gradient |
See LhsExpressionInterface. | |
using | Identifier = typename Tape::Identifier |
See LhsExpressionInterface. | |
using | PassiveReal = RealTraits::PassiveReal<Real> |
Basic computation type. | |
using | Real = typename Tape::Real |
See LhsExpressionInterface. | |
using | Tape = typename ActiveType::Tape |
See ActiveType. | |
Implementation of ExpressionInterface | |
using | StoreAs = ActiveTypeWrapper const& |
Defines how this expression is stored in an expression tree. | |
using | ActiveResult = typename ActiveType::ActiveResult |
Type into which the expression can be converted. Usually also the type from which it is constructed. | |
Public Types inherited from codi::LhsExpressionInterface< T_ActiveType::Real, T_ActiveType::Gradient, T_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
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_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
using | Impl |
See AssignmentOperators. | |
using | PassiveReal |
Basic computation type. | |
using | Real |
See InternalStatementRecordingTapeInterface. | |
using | Tape |
See AssignmentOperators. | |
Public Types inherited from codi::IncrementOperators< T_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
using | Impl |
See IncrementOperators. | |
using | PassiveReal |
Basic computation type. | |
using | Real |
See InternalStatementRecordingTapeInterface. | |
using | Tape |
See IncrementOperators. | |
Public Member Functions | |
ActiveTypeWrapper (ActiveType &value) | |
ActiveTypeWrapper (Real &value, Identifier &identifier) | |
ActiveTypeWrapper< ActiveType > & | operator= (ActiveTypeWrapper< ActiveType > const &v) |
See LhsExpressionInterface::operator=(ExpressionInterface const&) | |
~ActiveTypeWrapper () | |
Public Member Functions inherited from codi::LhsExpressionInterface< T_ActiveType::Real, T_ActiveType::Gradient, T_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
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_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
Impl & | cast () |
Cast to the implementation. | |
Impl & | operator*= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator *= for expressions. | |
Impl & | operator*= (PassiveReal const &rhs) |
Operator *= for passive values. | |
Impl & | operator+= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator += for expressions. | |
Impl & | operator+= (PassiveReal const &rhs) |
Operator += for passive values. | |
Impl & | operator-= (ExpressionInterface< Real, Rhs > const &rhs) |
Operator -= for expressions. | |
Impl & | operator-= (PassiveReal const &rhs) |
Operator -= for passive values. | |
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_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
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--. | |
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. | |
static Tape & | getTape () |
Get a reference to the tape which manages this expression. | |
Additional Inherited Members | |
Static Public Member Functions inherited from codi::LhsExpressionInterface< T_ActiveType::Real, T_ActiveType::Gradient, T_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
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_ActiveType::Real, T_ActiveType::Gradient, T_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
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_ActiveType::Real, T_ActiveType::Gradient, T_ActiveType::Tape, ActiveTypeWrapper< T_ActiveType > > | |
void | init (Real const &newValue, EventHints::Statement statementType) |
void | destroy () |
Creates a pseudo active type from data references. Can be used to overlay existing data with active types.
The class stores references to the value and identifier. The identifier is taken as it is and not initialized or destroyed. The class only wraps the data in a CoDiPack expression.
See Expression design documentation for details about the expression system in CoDiPack.
T_ActiveType | The type of the active type which is wrapped. |
using codi::ActiveTypeWrapper< T_ActiveType >::ActiveResult = typename ActiveType::ActiveResult |
Type into which the expression can be converted. Usually also the type from which it is constructed.
using codi::ActiveTypeWrapper< T_ActiveType >::ActiveType |
See WritableActiveTypeWrapper.
using codi::ActiveTypeWrapper< T_ActiveType >::StoreAs = ActiveTypeWrapper const& |
Defines how this expression is stored in an expression tree.
|
inline |
The identifier is not initialized. It is assumed to be a valid identifier (either default or assigned by an expression).
|
inline |
Create a reference to an active type. It is assumed that the lifespan of the argument is longer than the lifespan of the created value.
|
inline |
The identifier is not destroyed. It is assumed to be still valid, since this is only a reference to the actual value.
|
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)
|
inlinestatic |
Get a reference to the tape which manages this expression.
|
inline |
Get a reference to the lvalue represented by the expression.
|
inline |
Get a constant reference to the lvalue represented by the expression.