Creates a pseudo active type from a data value. Can be used to overlay existing data with immutable active types. More...
#include <immutableActiveType.hpp>
Public Types | |
using | ActiveType = T_ActiveType |
See ImmutableActiveType. | |
using | Base = LhsExpressionInterface<Real, Gradient, Tape, ImmutableActiveType> |
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 = ImmutableActiveType 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, ImmutableActiveType< 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, ImmutableActiveType< 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, ImmutableActiveType< T_ActiveType > > | |
using | Impl |
See IncrementOperators. | |
using | PassiveReal |
Basic computation type. | |
using | Real |
See InternalStatementRecordingTapeInterface. | |
using | Tape |
See IncrementOperators. | |
Public Member Functions | |
ImmutableActiveType (ActiveType const &value) | |
ImmutableActiveType (Real const &value, Identifier const &identifier) | |
ImmutableActiveType< ActiveType > & | operator= (ImmutableActiveType< ActiveType > const &v)=delete |
This class is immutable, delete all assignment operators. | |
~ImmutableActiveType () | |
Public Member Functions inherited from codi::LhsExpressionInterface< T_ActiveType::Real, T_ActiveType::Gradient, T_ActiveType::Tape, ImmutableActiveType< 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, ImmutableActiveType< 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, ImmutableActiveType< 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 | |
Only the const access functions are implemented. | |
Identifier const & | getIdentifier () const |
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, ImmutableActiveType< 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, ImmutableActiveType< 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, ImmutableActiveType< T_ActiveType > > | |
void | init (Real const &newValue, EventHints::Statement statementType) |
void | destroy () |
Creates a pseudo active type from a data value. Can be used to overlay existing data with immutable active types.
The class stores copies 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::ImmutableActiveType< 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::ImmutableActiveType< T_ActiveType >::StoreAs = ImmutableActiveType 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) and has to be valid throughout the lifespan of this object.
|
inline |
Create an immutable copy of an active type. It is assumed that the identifier is valid throughout the lifespan of this object.
|
inline |
The identifier is not destroyed. It is assumed to be still valid, since this is only an immutable copy of the actual value.
|
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 constant reference to the lvalue represented by the expression.