41#include "../../expressions/activeType.hpp"
43#include "../../traits/expressionTraits.hpp"
44#include "../misc/assignStatement.hpp"
45#include "../misc/statementSizes.hpp"
46#include "directStatementEvaluator.hpp"
47#include "statementEvaluatorInterface.hpp"
70 template<
typename Generator,
typename Stmt>
85 ((Handle)Generator::template StatementCallGenerator<types, Stmt>::evaluateInner)...),
90 template<
typename Generator,
typename Stmt>
114 template<
StatementCall type,
typename Tape,
typename... Args>
117 using CallGen =
typename Tape::template StatementCallGenerator<type, Stmt>;
119 using Function =
decltype(&CallGen::evaluateInner);
121 CallGen::evaluateFull(((Function)h->functions.funcs[(
size_t)type]), h->stmtSizes.outputArgs,
122 h->stmtSizes.inputArgs, h->stmtSizes.constantArgs, std::forward<Args>(args)...);
126 template<
typename Tape,
typename Generator,
typename Stmt>
CoDiPack - Code Differentiation Package.
Definition codi.hpp:94
StatementCall
Defines all the operations which can be evaluated on a statement by a tape.
Definition statementEvaluatorTapeInterface.hpp:45
Represents a concrete lvalue in the CoDiPack expression tree.
Definition activeType.hpp:52
Definition assignStatement.hpp:50
Additional data required by an InnerStatementEvaluator.
Definition innerStatementEvaluator.hpp:55
InnerPrimalTapeStatementData(PrimalTapeStatementFunctions functions, StatementSizes stmtSizes)
Constructor.
Definition innerStatementEvaluator.hpp:64
PrimalTapeStatementFunctions Base
Base class abbreviation.
Definition innerStatementEvaluator.hpp:58
PrimalTapeStatementFunctions functions
Functions stored for the handle.
Definition innerStatementEvaluator.hpp:60
StatementSizes stmtSizes
Statement sizes stored for the handle.
Definition innerStatementEvaluator.hpp:61
Definition innerStatementEvaluator.hpp:71
static InnerPrimalTapeStatementData gen()
Generates the data for the static store.
Definition innerStatementEvaluator.hpp:80
static InnerPrimalTapeStatementData const staticStore
Static storage.
Definition innerStatementEvaluator.hpp:76
Expression evaluation in the inner function. Data loading in the compilation context of the tape....
Definition innerStatementEvaluator.hpp:104
static Handle createHandle()
Definition innerStatementEvaluator.hpp:127
static void call(Handle const &h, Args &&... args)
Definition innerStatementEvaluator.hpp:115
InnerPrimalTapeStatementData const * Handle
Pointer to static storage location.
Definition innerStatementEvaluator.hpp:111
Data required for all possible handle calls.
Definition directStatementEvaluator.hpp:52
void * Handle
Function pointer.
Definition directStatementEvaluator.hpp:55
Creation of handles for the evaluation of expressions in a context where the expression type is not a...
Definition statementEvaluatorInterface.hpp:103
Define all static sizes of an Expression.
Definition statementSizes.hpp:45
static StatementSizes create()
Creation function from AssignStatement.
Definition statementSizes.hpp:56