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

Holds a reference to an ActiveType for manual optimization of common arguments. More...

#include <referenceActiveType.hpp>

Inheritance diagram for codi::ReferenceActiveType< T_Type >:

Public Types

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 Type::Tape
 See LhsExpressionInterface.
 
using Type = T_Type
 See ReferenceActiveType.
 
- Public Types inherited from codi::LhsExpressionInterface< T_Type::Real, T_Type::Gradient, T_Type::Tape, ReferenceActiveType< T_Type > >
using Base = ExpressionInterface< T_Type::Real, ReferenceActiveType< T_Type > >
 Base class abbreviation.
 
using Gradient = T_Type::Gradient
 See LhsExpressionInterface.
 
using Identifier = typename Tape::Identifier
 See GradientAccessTapeInterface.
 
using Impl = ReferenceActiveType< T_Type >
 See LhsExpressionInterface.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Real = T_Type::Real
 See LhsExpressionInterface.
 
using Tape = T_Type::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_Type, ReferenceActiveType< T_Type > >
using Impl = ReferenceActiveType< T_Type >
 See AssignmentOperators.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Real = typename Tape::Real
 See InternalStatementRecordingTapeInterface.
 
using Tape = T_Type
 See AssignmentOperators.
 
- Public Types inherited from codi::IncrementOperators< T_Type, ReferenceActiveType< T_Type > >
using Impl = ReferenceActiveType< T_Type >
 See IncrementOperators.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Real = typename Tape::Real
 See InternalStatementRecordingTapeInterface.
 
using Tape = T_Type
 See IncrementOperators.
 

Public Member Functions

ReferenceActiveType< Tape > & operator= (ReferenceActiveType< Tape > const &v)
 See LhsExpressionInterface::operator=(ExpressionInterface const&).
 
 ReferenceActiveType (Type &v)
 Constructor.
 
- Public Member Functions inherited from codi::LhsExpressionInterface< T_Type::Real, T_Type::Gradient, T_Type::Tape, ReferenceActiveType< T_Type > >
 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_Type, ReferenceActiveType< T_Type > >
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_Type, ReferenceActiveType< T_Type > >
Implcast ()
 Cast to the implementation.
 
Imploperator++ ()
 Prefix operator++.
 
Impl operator++ (int u)
 Postfix operator++.
 
Imploperator-- ()
 Prefix operator--.
 
Impl operator-- (int u)
 Postfix operator--.
 

Public Attributes

Real jacobian
 Used by Jacobian tapes to optimize for reoccurring arguments.
 

Implementation of LhsExpressionInterface

using StoreAs = ReferenceActiveType const &
 " Defines how this expression is stored in an expression tree. "
 
using ActiveResult = typename Type::ActiveResult
 Type into which the expression can be converted. Usually also the type from which it is constructed.
 
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 decltype(Type::getTape()) getTape ()
 Get a reference to the tape which manages this expression.
 

Additional Inherited Members

- Static Public Member Functions inherited from codi::LhsExpressionInterface< T_Type::Real, T_Type::Gradient, T_Type::Tape, ReferenceActiveType< T_Type > >
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_Type::Real, T_Type::Gradient, T_Type::Tape, ReferenceActiveType< T_Type > >
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_Type::Real, T_Type::Gradient, T_Type::Tape, ReferenceActiveType< T_Type > >
void init (Real const &newValue, EventHints::Statement statementType)
 
void destroy ()
 

Detailed Description

template<typename T_Type>
struct codi::ReferenceActiveType< T_Type >

Holds a reference to an ActiveType for manual optimization of common arguments.

See the Example 14 - RefrenceActiveType for an example use.

Template Parameters
T_TypeThe type of the reference which is captured.

Member Typedef Documentation

◆ ActiveResult

template<typename T_Type >
using codi::ReferenceActiveType< T_Type >::ActiveResult = typename Type::ActiveResult

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

◆ StoreAs

template<typename T_Type >
using codi::ReferenceActiveType< T_Type >::StoreAs = ReferenceActiveType const&

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

" "

Member Function Documentation

◆ getIdentifier() [1/2]

template<typename T_Type >
Identifier & codi::ReferenceActiveType< T_Type >::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_Type >
Identifier const & codi::ReferenceActiveType< T_Type >::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_Type >
static decltype(Type::getTape()) codi::ReferenceActiveType< T_Type >::getTape ( )
inlinestatic

Get a reference to the tape which manages this expression.

◆ value() [1/2]

template<typename T_Type >
Real & codi::ReferenceActiveType< T_Type >::value ( )
inline

Get a reference to the lvalue represented by the expression.

◆ value() [2/2]

template<typename T_Type >
Real const & codi::ReferenceActiveType< T_Type >::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: