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

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

#include <parallelActiveType.hpp>

Inheritance diagram for codi::ParallelActiveType< T_Tape, T_ParallelToolbox >:

Public Types

using ActiveResult = Impl
 Type into which the expression can be converted. Usually also the type from which it is constructed.
 
using Base = ActiveTypeBase< Tape, ParallelActiveType >
 Base class abbreviation.
 
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 ParallelToolbox = T_ParallelToolbox
 See ParallelActiveType.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Real = typename Tape::Real
 See LhsExpressionInterface.
 
using StoreAs = Impl const &
 " Defines how this expression is stored in an expression tree. "
 
using Tape = T_Tape
 See ParallelActiveType.
 
using ThreadLocalTapePointer = typename ParallelToolbox::template StaticThreadLocalPointer< Tape, ParallelActiveType >
 < See ActiveTypeBase.
 
- Public Types inherited from codi::ActiveTypeBase< T_Tape, ParallelActiveType< T_Tape, T_ParallelToolbox > >
using Base = LhsExpressionInterface< Real, Gradient, T_Tape, ParallelActiveType< T_Tape, T_ParallelToolbox > >
 Base class abbreviation.
 
using Gradient = typename Tape::Gradient
 See LhsExpressionInterface.
 
using Identifier = typename Tape::Identifier
 See LhsExpressionInterface.
 
using Impl = ParallelActiveType< T_Tape, T_ParallelToolbox >
 Abbreviation for the implementing class.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Real = typename Tape::Real
 See LhsExpressionInterface.
 
using Tape = T_Tape
 
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_Real, T_Gradient, T_Tape, T_Impl >
using Base = ExpressionInterface< T_Real, T_Impl >
 Base class abbreviation.
 
using Gradient = T_Gradient
 See LhsExpressionInterface.
 
using Identifier = typename Tape::Identifier
 See GradientAccessTapeInterface.
 
using Impl = T_Impl
 See LhsExpressionInterface.
 
using PassiveReal = RealTraits::PassiveReal< Real >
 Basic computation type.
 
using Real = T_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, T_Impl >
using Impl = T_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 = T_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

 ParallelActiveType (ParallelActiveType const &v)
 Constructor.
 
 ~ParallelActiveType ()
 Destructor.
 
Assignment operators (all forwarding to the base class)
ParallelActiveTypeoperator= (ParallelActiveType const &v)
 See ActiveTypeBase::operator=(ActiveTypeBase const&).
 
Imploperator= (ActiveTypeBase const &v)
 See LhsExpressionInterface::operator=(LhsExpressionInterface 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::ActiveTypeBase< T_Tape, ParallelActiveType< T_Tape, T_ParallelToolbox > >
 ActiveTypeBase ()
 Constructor.
 
 ActiveTypeBase (ActiveTypeBase const &v)
 Constructor.
 
 ActiveTypeBase (ExpressionInterface< Real, Rhs > const &rhs)
 Constructor.
 
 ActiveTypeBase (ExpressionInterface< typename U::Real, Rhs > const &rhs)
 Constructor.
 
 ActiveTypeBase (PassiveReal const &value)
 Constructor.
 
 ActiveTypeBase (Real const &value)
 Constructor.
 
Implcast ()
 Cast to the implementation.
 
Imploperator= (ActiveTypeBase const &v)
 See LhsExpressionInterface::operator=(LhsExpressionInterface const&).
 
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.
 
Imploperator= (PassiveReal const &rhs)
 Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface.
 
Imploperator= (Real const &rhs)
 Assignment operator for passive values. Calls store on the InternalStatementRecordingTapeInterface.
 
 ~ActiveTypeBase ()
 Destructor.
 
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.
 
- Public Member Functions inherited from codi::LhsExpressionInterface< T_Real, T_Gradient, T_Tape, T_Impl >
 LhsExpressionInterface ()=default
 Constructor.
 
 LhsExpressionInterface (LhsExpressionInterface const &other)=default
 Constructor.
 
Implcast ()
 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.
 
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.
 
Impl const & cast () const
 Cast to the implementation.
 
template<typename Logic , typename... Args>
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, T_Impl >
Implcast ()
 Cast to the implementation.
 
template<typename Rhs >
Imploperator*= (ExpressionInterface< Real, Rhs > const &rhs)
 Operator *= for expressions.
 
Imploperator*= (PassiveReal const &rhs)
 Operator *= for passive values.
 
template<typename Rhs >
Imploperator+= (ExpressionInterface< Real, Rhs > const &rhs)
 Operator += for expressions.
 
Imploperator+= (PassiveReal const &rhs)
 Operator += for passive values.
 
template<typename Rhs >
Imploperator-= (ExpressionInterface< Real, Rhs > const &rhs)
 Operator -= for expressions.
 
Imploperator-= (PassiveReal const &rhs)
 Operator -= for passive values.
 
template<typename Rhs >
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, T_Impl >
Implcast ()
 Cast to the implementation.
 
Imploperator++ ()
 Prefix operator++.
 
Impl operator++ (int u)
 Postfix operator++.
 
Imploperator-- ()
 Prefix operator--.
 
Impl operator-- (int u)
 Postfix operator--.
 

Static Public Member Functions

Implementation of LhsExpressionInterface
static TapegetTape ()
 Get a reference to the tape which manages this expression.
 
Additional functions used for parallel taping.
static TapegetTapePtr ()
 Get the thread-local tape pointer.
 
static void setTapePtr (Tape *other)
 Set the thread-local tape pointer.
 
- Static Public Member Functions inherited from codi::LhsExpressionInterface< T_Real, T_Gradient, T_Tape, T_Impl >
template<typename Logic , typename... Args>
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)
 

Additional Inherited Members

- Static Public Attributes inherited from codi::LhsExpressionInterface< T_Real, T_Gradient, T_Tape, T_Impl >
static bool constexpr EndPoint = true
 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_Real, T_Gradient, T_Tape, T_Impl >
void init (Real const &newValue, EventHints::Statement statementType)
 
void destroy ()
 

Detailed Description

template<typename T_Tape, typename T_ParallelToolbox>
struct codi::ParallelActiveType< T_Tape, T_ParallelToolbox >

Represents a concrete lvalue in the CoDiPack expression tree.

This active type implements a static thread-local tape, as suitable for parallel taping.

Template Parameters
T_TapeThe tape that manages all expressions created with this type.
T_ParallelToolboxToolbox used to parallelize this type.

Member Typedef Documentation

◆ ActiveResult

template<typename T_Tape , typename T_ParallelToolbox >
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.

◆ StoreAs

template<typename T_Tape , typename T_ParallelToolbox >
using codi::ActiveTypeBase< T_Tape, T_Impl >::StoreAs = Impl const&

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

" "

◆ ThreadLocalTapePointer

template<typename T_Tape , typename T_ParallelToolbox >
using codi::ParallelActiveType< T_Tape, T_ParallelToolbox >::ThreadLocalTapePointer = typename ParallelToolbox::template StaticThreadLocalPointer<Tape, ParallelActiveType>

Member Function Documentation

◆ getTape()

template<typename T_Tape , typename T_ParallelToolbox >
static Tape & codi::ParallelActiveType< T_Tape, T_ParallelToolbox >::getTape ( )
inlinestatic

Get a reference to the tape which manages this expression.


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