41#include "../../expressions/activeType.hpp"
43#include "../misc/assignStatement.hpp"
44#include "statementEvaluatorInterface.hpp"
60 template<
typename... Args>
66 template<
typename Generator,
typename Stmt>
80 reinterpret_cast<Handle
>(Generator::template StatementCallGenerator<types, Stmt>::evaluate)...);
84 template<
typename Generator,
typename Stmt>
106 template<
StatementCall type,
typename Tape,
typename... Args>
109 using CallGen =
typename Tape::template StatementCallGenerator<type, Stmt>;
111 using Function =
decltype(&CallGen::evaluate);
113 ((Function)h->funcs[(size_t)type])(std::forward<Args>(args)...);
117 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
@ N_Elements
Number of elements.
Definition statementEvaluatorTapeInterface.hpp:52
Represents a concrete lvalue in the CoDiPack expression tree.
Definition activeType.hpp:52
Definition assignStatement.hpp:50
Definition directStatementEvaluator.hpp:67
static PrimalTapeStatementFunctions gen()
Generates the data for the static store.
Definition directStatementEvaluator.hpp:76
static PrimalTapeStatementFunctions const staticStore
Definition directStatementEvaluator.hpp:72
Full evaluation of the expression in the function handle. Storing in static context.
Definition directStatementEvaluator.hpp:96
PrimalTapeStatementFunctions const * Handle
Pointer to static storage location.
Definition directStatementEvaluator.hpp:103
static void call(Handle const &h, Args &&... args)
Definition directStatementEvaluator.hpp:107
static Handle createHandle()
Definition directStatementEvaluator.hpp:118
Data required for all possible handle calls.
Definition directStatementEvaluator.hpp:52
PrimalTapeStatementFunctions(Args... args)
Constructor.
Definition directStatementEvaluator.hpp:61
void * Handle
Function pointer.
Definition directStatementEvaluator.hpp:55
std::array< Handle,(size_t) StatementCall::N_Elements > funcs
Array for the function handles.
Definition directStatementEvaluator.hpp:57
Creation of handles for the evaluation of expressions in a context where the expression type is not a...
Definition statementEvaluatorInterface.hpp:103