CoDiPack  2.2.0
A Code Differentiation Package
SciComp TU Kaiserslautern
Loading...
Searching...
No Matches
codi::ActiveTypeStatelessTape< T_Tape > Struct Template Reference

Represents a concrete lvalue in the CoDiPack expression tree. More...

#include <activeTypeStatelessTape.hpp>

Inheritance diagram for codi::ActiveTypeStatelessTape< T_Tape >:

Public Types

using Base = LhsExpressionInterface< Real, Gradient, T_Tape, ActiveTypeStatelessTape< T_Tape > >
 
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 = T_Tape
 See ActiveTypeStatelessTape.
 
Implementation of ExpressionInterface
using StoreAs = ActiveTypeStatelessTape const &
 " Defines how this expression is stored in an expression tree. "
 
using ActiveResult = ActiveTypeStatelessTape
 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, ActiveTypeStatelessTape< T_Tape > >
using Base = ExpressionInterface< T_Tape::Real, ActiveTypeStatelessTape< T_Tape > >
 Base class abbreviation.
 
using Gradient = T_Tape::Gradient
 See LhsExpressionInterface.
 
using Identifier = typename Tape::Identifier
 See GradientAccessTapeInterface.
 
using Impl = ActiveTypeStatelessTape< T_Tape >
 See LhsExpressionInterface.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Real = T_Tape::Real
 See LhsExpressionInterface.
 
using Tape = T_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, ActiveTypeStatelessTape< T_Tape > >
using Impl = ActiveTypeStatelessTape< T_Tape >
 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, ActiveTypeStatelessTape< T_Tape > >
using Impl = ActiveTypeStatelessTape< T_Tape >
 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

constexpr ActiveTypeStatelessTape ()=default
 Constructor.
 
 ActiveTypeStatelessTape (ActiveTypeStatelessTape const &v)
 Constructor.
 
template<typename Rhs >
 ActiveTypeStatelessTape (ExpressionInterface< Real, Rhs > const &rhs)
 Constructor.
 
constexpr ActiveTypeStatelessTape (PassiveReal const &value)
 Constructor.
 
Assignment operators (all forwarding to the base class)
ActiveTypeStatelessTapeoperator= (ActiveTypeStatelessTape const &v)
 See ActiveTypeStatelessTape::operator=(ActiveTypeStatelessTape const&).
 
Imploperator= (Real const &rhs)
 Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface.
 
template<typename U = Real, typename = RealTraits::EnableIfNotPassiveReal<U>>
Imploperator= (PassiveReal const &rhs)
 Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface.
 
template<typename Rhs >
Imploperator= (ExpressionInterface< Real, Rhs > const &rhs)
 Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface.
 
template<typename Rhs , typename U = Real, typename = RealTraits::EnableIfNotPassiveReal<U>>
Imploperator= (ExpressionInterface< typename U::Real, Rhs > const &rhs)
 Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface.
 
Imploperator= (LhsExpressionInterface const &rhs)
 Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface.
 
template<typename Rhs >
Imploperator= (LhsExpressionInterface< Real, Gradient, Tape, Rhs > const &rhs)
 Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface.
 
- Public Member Functions inherited from codi::LhsExpressionInterface< T_Tape::Real, T_Tape::Gradient, T_Tape, ActiveTypeStatelessTape< T_Tape > >
 LhsExpressionInterface ()=default
 Constructor.
 
 LhsExpressionInterface (LhsExpressionInterface const &other)=default
 Constructor.
 
Implcast ()
 Cast to the implementation.
 
Impl const & cast () const
 Cast to the implementation.
 
Gradientgradient ()
 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.
 
Imploperator= (Real const &rhs)
 Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface.
 
Imploperator= (PassiveReal const &rhs)
 Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface.
 
Imploperator= (ExpressionInterface< Real, Rhs > const &rhs)
 Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface.
 
Imploperator= (ExpressionInterface< typename U::Real, Rhs > const &rhs)
 Assignment operator for expressions. Calls store on the InternalStatementRecordingTapeInterface.
 
Imploperator= (LhsExpressionInterface const &rhs)
 Assignment operator for lhs expressions. Calls store on the InternalStatementRecordingTapeInterface.
 
Imploperator= (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.
 
Realvalue ()
 Get a reference to the lvalue represented by the expression.
 
Identifier const & getIdentifier () const
 
IdentifiergetIdentifier ()
 
- 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, ActiveTypeStatelessTape< T_Tape > >
Implcast ()
 Cast to the implementation.
 
Imploperator*= (ExpressionInterface< Real, Rhs > const &rhs)
 Operator *= for expressions.
 
Imploperator*= (PassiveReal const &rhs)
 Operator *= for passive values.
 
Imploperator+= (ExpressionInterface< Real, Rhs > const &rhs)
 Operator += for expressions.
 
Imploperator+= (PassiveReal const &rhs)
 Operator += for passive values.
 
Imploperator-= (ExpressionInterface< Real, Rhs > const &rhs)
 Operator -= for expressions.
 
Imploperator-= (PassiveReal const &rhs)
 Operator -= for passive values.
 
Imploperator/= (ExpressionInterface< Real, Rhs > const &rhs)
 Operator /= for expressions.
 
Imploperator/= (PassiveReal const &rhs)
 Operator /= for passive values.
 
- Public Member Functions inherited from codi::IncrementOperators< T_Tape, ActiveTypeStatelessTape< T_Tape > >
Implcast ()
 Cast to the implementation.
 
Imploperator++ ()
 Prefix operator++.
 
Impl operator++ (int u)
 Postfix operator++.
 
Imploperator-- ()
 Prefix operator--.
 
Impl operator-- (int u)
 Postfix operator--.
 

Implementation of LhsExpressionInterface

IdentifiergetIdentifier ()
 
Identifier const & getIdentifier () const
 
Realvalue ()
 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_Tape::Real, T_Tape::Gradient, T_Tape, ActiveTypeStatelessTape< T_Tape > >
static Logic::ResultType constexpr forEachLinkConstExpr (Args &&...)
 
static TapegetTape ()
 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, ActiveTypeStatelessTape< T_Tape > >
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, ActiveTypeStatelessTape< T_Tape > >
void init (Real const &newValue, EventHints::Statement statementType)
 
void destroy ()
 

Detailed Description

template<typename T_Tape>
struct codi::ActiveTypeStatelessTape< T_Tape >

Represents a concrete lvalue in the CoDiPack expression tree.

See also LhsExpressionInterface.

This active type does not work with a fixed tape. Instead, getTape() constructs a new temporary tape on every call. In particular, tapes for this active type can not have a persistent state.

Template Parameters
T_TapeThe tape that manages all expressions created with this type.

Member Typedef Documentation

◆ ActiveResult

template<typename T_Tape >
using codi::ActiveTypeStatelessTape< T_Tape >::ActiveResult = ActiveTypeStatelessTape

Type into which the expression can be converted. Usually also the type from which it is constructed.

◆ Base

template<typename T_Tape >
using codi::ActiveTypeStatelessTape< T_Tape >::Base = LhsExpressionInterface<Real, Gradient, T_Tape, ActiveTypeStatelessTape<T_Tape> >

Base class abbreviation.

◆ StoreAs

template<typename T_Tape >
using codi::ActiveTypeStatelessTape< T_Tape >::StoreAs = ActiveTypeStatelessTape const&

" Defines how this expression is stored in an expression tree. "

" "

Constructor & Destructor Documentation

◆ ActiveTypeStatelessTape()

template<typename T_Tape >
constexpr codi::ActiveTypeStatelessTape< T_Tape >::ActiveTypeStatelessTape ( )
inlineconstexprdefault

Constructor.

CUDA compiler has problems when this function is annotated with __device__.

Member Function Documentation

◆ getIdentifier() [1/2]

template<typename T_Tape >
Identifier & codi::ActiveTypeStatelessTape< T_Tape >::getIdentifier ( )
inline

Get a reference to the identifier of the tape for this expression. See also Direct data access (Identifier management)

◆ getIdentifier() [2/2]

template<typename T_Tape >
Identifier const & codi::ActiveTypeStatelessTape< T_Tape >::getIdentifier ( ) const
inline

Get a constant reference to the identifier of the tape for this expression. See also Direct data access (Identifier management)

◆ getTape()

template<typename T_Tape >
static Tape codi::ActiveTypeStatelessTape< T_Tape >::getTape ( )
inlinestatic

Get a reference to the tape which manages this expression.

◆ value() [1/2]

template<typename T_Tape >
Real & codi::ActiveTypeStatelessTape< T_Tape >::value ( )
inline

Get a reference to the lvalue represented by the expression.

◆ value() [2/2]

template<typename T_Tape >
Real const & codi::ActiveTypeStatelessTape< T_Tape >::value ( ) const
inline

Get a constant reference to the lvalue represented by the expression.


The documentation for this struct was generated from the following file: