71 template<
typename T_ChunkData>
78 template<
typename FuncObj,
typename... Args>
79 void call(FuncObj& func, Args&&... args);
82 template<
typename FuncObj,
typename... Args>
86 template<
int selectedDepth,
typename Nested,
typename... Args>
90 template<
int selectedDepth,
typename Nested,
typename... Args>
102 template<
typename T_Data1>
117 template<
typename FuncObj,
typename... Args>
118 void call(FuncObj& func, Args&&... args) {
119 func(p1, std::forward<Args>(args)...);
123 template<
typename FuncObj,
typename... Args>
125 func(std::forward<Args>(args)..., p1);
129 template<
int selectedDepth,
typename Nested,
typename... Args>
131 nested->template evaluateForward<selectedDepth>(std::forward<Args>(args)..., start, end, p1);
135 template<
int selectedDepth,
typename Nested,
typename... Args>
137 nested->template evaluateReverse<selectedDepth>(std::forward<Args>(args)..., start, end, p1);
151 template<
typename T_Data1,
typename T_Data2>
167 template<
typename FuncObj,
typename... Args>
168 void call(FuncObj& func, Args&&... args) {
169 func(p1, p2, std::forward<Args>(args)...);
173 template<
typename FuncObj,
typename... Args>
175 func(std::forward<Args>(args)..., p1, p2);
179 template<
int selectedDepth,
typename Nested,
typename... Args>
181 nested->template evaluateForward<selectedDepth>(std::forward<Args>(args)..., start, end, p1, p2);
185 template<
int selectedDepth,
typename Nested,
typename... Args>
187 nested->template evaluateReverse<selectedDepth>(std::forward<Args>(args)..., start, end, p1, p2);
201 template<
typename T_Data1,
typename T_Data2,
typename T_Data3>
219 template<
typename FuncObj,
typename... Args>
220 void call(FuncObj& func, Args&&... args) {
221 func(p1, p2, p3, std::forward<Args>(args)...);
225 template<
typename FuncObj,
typename... Args>
227 func(std::forward<Args>(args)..., p1, p2, p3);
231 template<
int selectedDepth,
typename Nested,
typename... Args>
233 nested->template evaluateForward<selectedDepth>(std::forward<Args>(args)..., start, end, p1, p2, p3);
237 template<
int selectedDepth,
typename Nested,
typename... Args>
239 nested->template evaluateReverse<selectedDepth>(std::forward<Args>(args)..., start, end, p1, p2, p3);
253 template<
typename T_Data1,
typename T_Data2,
typename T_Data3,
typename T_Data4>
273 template<
typename FuncObj,
typename... Args>
274 void call(FuncObj& func, Args&&... args) {
275 func(p1, p2, p3, p4, std::forward<Args>(args)...);
279 template<
typename FuncObj,
typename... Args>
281 func(std::forward<Args>(args)..., p1, p2, p3, p4);
285 template<
int selectedDepth,
typename Nested,
typename... Args>
287 nested->template evaluateForward<selectedDepth>(std::forward<Args>(args)..., start, end, p1, p2, p3, p4);
291 template<
int selectedDepth,
typename Nested,
typename... Args>
293 nested->template evaluateReverse<selectedDepth>(std::forward<Args>(args)..., start, end, p1, p2, p3, p4);
308 template<
typename T_Base>
315 template<
int selectedDepth,
typename Nested,
typename InnerPos,
typename FunctionObject,
typename... Args>
317 InnerPos
const&, FunctionObject function, Args&&... args) {
320 Base::callAndAppend(function, std::forward<Args>(args)..., start, end);
324 template<
int selectedDepth,
typename Nested,
typename InnerPos,
typename FunctionObject,
typename... Args>
326 InnerPos
const&, FunctionObject function, Args&&... args) {
329 Base::callAndAppend(function, std::forward<Args>(args)..., start, end);
#define CODI_INLINE
See codi::Config::ForcedInlines.
Definition config.h:457
#define CODI_DD(Type, Default)
Abbreviation for CODI_DECLARE_DEFAULT.
Definition macros.hpp:94
#define CODI_T(...)
Abbreviation for CODI_TEMPLATE.
Definition macros.hpp:111
CoDiPack - Code Differentiation Package.
Definition codi.hpp:90
void CODI_UNUSED(Args const &...)
Disable unused warnings for an arbitrary number of arguments.
Definition macros.hpp:46
void dataPointer(size_t const &index, Data1 *&pointer1)
Definition chunk.hpp:220
void dataPointer(size_t const &index, Data1 *&pointer1, Data2 *&pointer2)
Definition chunk.hpp:323
void dataPointer(size_t const &index, Data1 *&pointer1, Data2 *&pointer2, Data3 *&pointer3)
Definition chunk.hpp:446
void dataPointer(size_t const &index, Data1 *&pointer1, Data2 *&pointer2, Data3 *&pointer3, Data4 *&pointer4)
Definition chunk.hpp:589
A chunk stores a contiguous block of data in CoDiPack.
Definition chunk.hpp:76
T_Data1 Data1
Data entry 1.
Definition pointerStore.hpp:106
void setPointers(size_t const &dataPos, Chunk *chunk)
Sets the internal pointers to the data of the chunk. Afterwards on of the call functions can be calle...
Definition pointerStore.hpp:141
void callNestedForward(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateForward<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:130
void callNestedReverse(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateReverse<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:136
void callAndAppend(FuncObj &func, Args &&... args)
Calls func(args..., pointers);.
Definition pointerStore.hpp:124
void call(FuncObj &func, Args &&... args)
Calls func(pointers, args...);.
Definition pointerStore.hpp:118
void setPointers(size_t const &dataPos, Chunk *chunk)
Sets the internal pointers to the data of the chunk. Afterwards on of the call functions can be calle...
Definition pointerStore.hpp:191
void call(FuncObj &func, Args &&... args)
Calls func(pointers, args...);.
Definition pointerStore.hpp:168
void callNestedReverse(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateReverse<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:186
void callNestedForward(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateForward<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:180
void callAndAppend(FuncObj &func, Args &&... args)
Calls func(args..., pointers);.
Definition pointerStore.hpp:174
T_Data2 Data2
Data entry 2.
Definition pointerStore.hpp:156
T_Data1 Data1
Data entry 1.
Definition pointerStore.hpp:155
void setPointers(size_t const &dataPos, Chunk *chunk)
Sets the internal pointers to the data of the chunk. Afterwards on of the call functions can be calle...
Definition pointerStore.hpp:243
T_Data3 Data3
Data entry 3.
Definition pointerStore.hpp:207
void callNestedForward(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateForward<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:232
void callNestedReverse(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateReverse<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:238
T_Data1 Data1
Data entry 1.
Definition pointerStore.hpp:205
void call(FuncObj &func, Args &&... args)
Calls func(pointers, args...);.
Definition pointerStore.hpp:220
void callAndAppend(FuncObj &func, Args &&... args)
Calls func(args..., pointers);.
Definition pointerStore.hpp:226
T_Data2 Data2
Data entry 2.
Definition pointerStore.hpp:206
T_Data2 Data2
Data entry 2.
Definition pointerStore.hpp:258
void callNestedReverse(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateReverse<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:292
void callNestedForward(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateForward<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:286
T_Data1 Data1
Data entry 1.
Definition pointerStore.hpp:257
void call(FuncObj &func, Args &&... args)
Calls func(pointers, args...);.
Definition pointerStore.hpp:274
T_Data4 Data4
Data entry 4.
Definition pointerStore.hpp:260
void callAndAppend(FuncObj &func, Args &&... args)
Calls func(args..., pointers);.
Definition pointerStore.hpp:280
void setPointers(size_t const &dataPos, Chunk *chunk)
Sets the internal pointers to the data of the chunk. Afterwards on of the call functions can be calle...
Definition pointerStore.hpp:297
T_Data3 Data3
Data entry 3.
Definition pointerStore.hpp:259
Inserts data pointers at the back of all arguments in the nested call hierarchy.
Definition pointerStore.hpp:72
void call(FuncObj &func, Args &&... args)
Calls func(pointers, args...);.
T_ChunkData ChunkData
See PointerStore.
Definition pointerStore.hpp:75
void callAndAppend(FuncObj &func, Args &&... args)
Calls func(args..., pointers);.
void setPointers(const size_t &dataPos, ChunkData *chunk)
Sets the internal pointers to the data of the chunk. Afterwards on of the call functions can be calle...
void callNestedReverse(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateReverse<selectedDepth>(args..., start, end, pointers);.
void callNestedForward(Nested *nested, size_t &start, size_t const &end, Args &&... args)
Calls nested->template evaluateForward<selectedDepth>(args..., start, end, pointers);.
Definition pointerStore.hpp:309
T_Base Base
See TerminatingPointerStore.
Definition pointerStore.hpp:312
void callNestedReverse(Nested *nested, size_t &start, size_t const &end, InnerPos const &, InnerPos const &, FunctionObject function, Args &&... args)
Calls Base::callAndAppend. See PointerStore::callAndAppend.
Definition pointerStore.hpp:325
void callNestedForward(Nested *nested, size_t &start, size_t const &end, InnerPos const &, InnerPos const &, FunctionObject function, Args &&... args)
Calls Base::callAndAppend. See PointerStore::callAndAppend.
Definition pointerStore.hpp:316