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
 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
 Base class abbreviation.
 
using Gradient
 See LhsExpressionInterface.
 
using Identifier
 See LhsExpressionInterface.
 
using ParallelToolbox = T_ParallelToolbox
 See ParallelActiveType.
 
using PassiveReal
 Basic computation type.
 
using Real
 See LhsExpressionInterface.
 
using StoreAs
 Defines how this expression is stored in an expression tree.
 
using Tape = T_Tape
 See ParallelActiveType.
 
using ThreadLocalTapePointer
 < See ActiveTypeBase.
 
- Public Types inherited from codi::ActiveTypeBase< T_Tape, ParallelActiveType< T_Tape, T_ParallelToolbox > >
using Base
 Base class abbreviation.
 
using Gradient
 See LhsExpressionInterface.
 
using Identifier
 See LhsExpressionInterface.
 
using Impl
 Abbreviation for the implementing class.
 
using PassiveReal
 Basic computation type.
 
using Real
 See LhsExpressionInterface.
 
using Tape
 
using StoreAs
 Defines how this expression is stored in an expression tree.
 
using 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_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
 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
 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

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

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
Initial value:
typename ParallelToolbox::template StaticThreadLocalPointer<Tape, ParallelActiveType>

< See ActiveTypeBase.

See ParallelToolbox.

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: