CoDiPack  2.2.0
A Code Differentiation Package
SciComp TU Kaiserslautern
Loading...
Searching...
No Matches
codi::PrimalValueTapeTypes< T_Real, T_Gradient, T_IndexManager, T_StatementEvaluator, T_Data > Struct Template Reference

Type definitions for the primal value tapes. More...

#include <primalValueBaseTape.hpp>

Inheritance diagram for codi::PrimalValueTapeTypes< T_Real, T_Gradient, T_IndexManager, T_StatementEvaluator, T_Data >:

Public Types

using ConstantValueChunk = Chunk1<PassiveReal>
 Constant values of in statement expressions.
 
using ConstantValueData = Data<ConstantValueChunk, PassiveValueData>
 Constant values data vector.
 
template<typename Chunk , typename Nested >
using Data
 See PrimalValueTapeTypes.
 
using EvalHandle = typename StatementEvaluator::Handle
 Handle type returned by the statement generator.
 
using Gradient = T_Gradient
 See PrimalValueTapeTypes.
 
using Identifier = typename IndexManager::Index
 See IndexManagerInterface.
 
using IdentifierChunk = Chunk1<Identifier>
 Identifiers of statement arguments.
 
using IndexManager = T_IndexManager
 See PrimalValueTapeTypes.
 
using NestedData = ConstantValueData
 See TapeTypesInterface.
 
using PassiveReal = RealTraits::PassiveReal<Real>
 Basic computation type.
 
using PassiveValueChunk = Chunk1<Real>
 Passive values of statement arguments.
 
using PassiveValueData = Data<PassiveValueChunk, RhsIdentifierData>
 Passive values data vector.
 
using Real = T_Real
 See PrimalValueTapeTypes.
 
using RhsIdentifierData = Data<IdentifierChunk, StatementData>
 Rhs identifiers data vector.
 
using StatementChunk
 
using StatementData = Data<StatementChunk, IndexManager>
 Statement data vector.
 
using StatementEvaluator
 See PrimalValueTapeTypes.
 
- Public Types inherited from codi::TapeTypesInterface
template<typename Chunk , typename Nested >
using Data = DataInterface<Nested>
 
using Gradient = int
 Gradient computation type, e.g. double or Direction.
 
using Identifier = int
 Identifier for the internal management, e.g. int.
 
using NestedData = DataInterface<>
 
using Real = int
 Primal computation type, e.g. double.
 

Static Public Attributes

static constexpr bool IsLinearIndexHandler = IndexManager::IsLinear
 True if the index manager is linear.
 
static constexpr bool IsStaticIndexHandler
 True if the index manager must be stored statically in the tape.
 

Detailed Description

template<typename T_Real, typename T_Gradient, typename T_IndexManager, template< typename > class T_StatementEvaluator, template< typename, typename > class T_Data>
struct codi::PrimalValueTapeTypes< T_Real, T_Gradient, T_IndexManager, T_StatementEvaluator, T_Data >

Type definitions for the primal value tapes.

Template Parameters
T_RealSee TapeTypesInterface.
T_GradientSee TapeTypesInterface.
T_IndexManagerIndex manager for the tape. Needs to implement IndexManagerInterface.
T_StatementEvaluatorStatement handle generator. Needs to implement StatementEvaluatorInterface and StatementEvaluatorInnerTapeInterface.
T_DataSee TapeTypesInterface.

Member Typedef Documentation

◆ Data

template<typename T_Real , typename T_Gradient , typename T_IndexManager , template< typename > class T_StatementEvaluator, template< typename, typename > class T_Data>
template<typename Chunk , typename Nested >
using codi::PrimalValueTapeTypes< T_Real, T_Gradient, T_IndexManager, T_StatementEvaluator, T_Data >::Data
Initial value:
T_Data<Chunk, Nested>

See PrimalValueTapeTypes.

◆ StatementChunk

template<typename T_Real , typename T_Gradient , typename T_IndexManager , template< typename > class T_StatementEvaluator, template< typename, typename > class T_Data>
using codi::PrimalValueTapeTypes< T_Real, T_Gradient, T_IndexManager, T_StatementEvaluator, T_Data >::StatementChunk
Initial value:
typename std::conditional<IsLinearIndexHandler, Chunk2<Config::ArgumentSize, EvalHandle>,
Chunk4<Identifier, Config::ArgumentSize, Real, EvalHandle>>::type

Statement chunk is either <argument size, eval handle> (linear management) or <lhs identifier, argument size, overwritten value, eval handle> (reuse management)

◆ StatementEvaluator

template<typename T_Real , typename T_Gradient , typename T_IndexManager , template< typename > class T_StatementEvaluator, template< typename, typename > class T_Data>
using codi::PrimalValueTapeTypes< T_Real, T_Gradient, T_IndexManager, T_StatementEvaluator, T_Data >::StatementEvaluator
Initial value:
T_StatementEvaluator<Real>

See PrimalValueTapeTypes.

Member Data Documentation

◆ IsStaticIndexHandler

template<typename T_Real , typename T_Gradient , typename T_IndexManager , template< typename > class T_StatementEvaluator, template< typename, typename > class T_Data>
constexpr bool codi::PrimalValueTapeTypes< T_Real, T_Gradient, T_IndexManager, T_StatementEvaluator, T_Data >::IsStaticIndexHandler
staticconstexpr
Initial value:
=
IndexManager::NeedsStaticStorage

True if the index manager must be stored statically in the tape.


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