38#include "../../misc/byteDataView.hpp"
40#include "../../misc/temporaryMemory.hpp"
41#include "../misc/lowLevelFunctionEntry.hpp"
46 template<
typename T_Tape>
47 struct ExternalFunction;
49 template<
typename T_Real,
typename T_Gradient,
typename T_Tape,
typename T_Impl>
50 struct LhsExpressionInterface;
67 template<
typename T_Real,
typename T_Gradient,
typename T_Identifier>
99 char* dataPtr,
size_t& curLLFInfoDataPos,
#define CODI_DD(Type, Default)
Abbreviation for CODI_DECLARE_DEFAULT.
Definition macros.hpp:94
uint16_t LowLevelFunctionDataSize
Size store type for a low level function.
Definition config.h:98
uint16_t LowLevelFunctionToken
Token type for low level functions in the tapes.
Definition config.h:108
CoDiPack - Code Differentiation Package.
Definition codi.hpp:90
LowLevelFunctionEntryCallKind
All possible call types for a low level function entry.
Definition lowLevelFunctionEntry.hpp:51
Definition byteDataView.hpp:51
Low level function entry on the tape. See LowLevelFunctionTapeInterface for details.
Definition lowLevelFunctionEntry.hpp:67
Add functions with custom derivatives to the tape. Can, e.g, be used to optimize small recurring func...
Definition lowLevelFunctionTapeInterface.hpp:68
T_Identifier Identifier
See LowLevelFunctionTapeInterface.
Definition lowLevelFunctionTapeInterface.hpp:73
TemporaryMemory & getTemporaryMemory()
Temporary memory that can be used for dynamic data both during the evaluation and the recording.
T_Gradient Gradient
See LowLevelFunctionTapeInterface.
Definition lowLevelFunctionTapeInterface.hpp:72
Config::LowLevelFunctionToken registerLowLevelFunction(LowLevelFunctionEntry< LowLevelFunctionTapeInterface, Real, Identifier > const &entry)
Register a low level function on the tape.
void pushLowLevelFunction(Config::LowLevelFunctionToken token, size_t size, ByteDataView &data)
Push a low level function to the tape.
T_Real Real
See LowLevelFunctionTapeInterface.
Definition lowLevelFunctionTapeInterface.hpp:71
static void callLowLevelFunction(LowLevelFunctionTapeInterface &tape, bool forward, size_t &curLLFByteDataPos, char *dataPtr, size_t &curLLFInfoDataPos, Config::LowLevelFunctionToken *const tokenPtr, Config::LowLevelFunctionDataSize *const dataSizePtr, Args &&... args)
Internal function for evaluating a low level function entry.
Allocator for temporary used memory.
Definition temporaryMemory.hpp:54