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 = T_Data< Chunk, Nested >
 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 = typename std::conditional< IsLinearIndexHandler, Chunk2< Config::ArgumentSize, EvalHandle >, Chunk4< Identifier, Config::ArgumentSize, Real, EvalHandle > >::type
 
using StatementData = Data< StatementChunk, IndexManager >
 Statement data vector.
 
using StatementEvaluator = T_StatementEvaluator< Real >
 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

◆ 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 = 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)

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: