41#include "../misc/tapeValues.hpp"
43#include "position.hpp"
148 template<
typename T_NestedData =
void,
typename T_InternalPosHandle =
size_t>
211 template<
typename... Data>
229 template<
typename... Data>
283 template<
typename TargetPosition>
325 template<
int selectedDepth = -1,
typename FunctionObject,
typename... Args>
346 template<
int selectedDepth = -1,
typename FunctionObject,
typename... Args>
367 template<
typename FunctionObject,
typename... Args>
388 template<
typename FunctionObject,
typename... Args>
407 template<
typename FunctionObject,
typename... Args>
#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
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
Data stream interface for tape data. Encapsulates data that is written e.g. for each statement or arg...
Definition dataInterface.hpp:149
void erase(Position const &start, Position const &end, bool recursive=true)
void addDataSize(size_t const &size)
Add this many items to the data stream, after the data has been manipulated via pointers obtained fro...
size_t getPushedDataCount(InternalPosHandle const &startPos)
Position getZeroPosition() const
void getDataPointers(Data *&... pointers)
Get pointers to the data from the storage implementation. The method can only be called after a call ...
void resetTo(Position const &pos)
void setNested(NestedData *v)
InternalPosHandle reserveItems(size_t const &items)
Reserve this many items on the data stream. See pushData for details.
void pushData(Data const &... data)
Add data to the storage allocated by the implementation. The method can only be called after a call t...
void swap(DataInterface &other)
void forEachForward(Position const &start, Position const &end, FunctionObject function, Args &&... args)
Calls the function object for each item in the data stream. This call is not recursive.
void evaluateReverse(Position const &start, Position const &end, FunctionObject function, Args &&... args)
Evaluates the function object with segments of continuous and valid data for all nested DataInterface...
void evaluateForward(Position const &start, Position const &end, FunctionObject function, Args &&... args)
Evaluates the function object with segments of continuous and valid data for all nested DataInterface...
TargetPosition extractPosition(Position const &pos) const
Extract the position of a nested DataInterface from the global position object provide by this interf...
void forEachChunk(FunctionObject &function, bool recursive, Args &&... args)
Calls the function object for each continuous segment of data.
void resize(size_t const &totalSize)
T_InternalPosHandle InternalPosHandle
See DataInterface.
Definition dataInterface.hpp:153
Position getPosition() const
void forEachReverse(Position const &start, Position const &end, FunctionObject function, Args &&... args)
Calls the function object for each item in the data stream. This call is not recursive.
void addToTapeValues(TapeValues &values) const
Add amount of stored data to the TapeValues object. Not called on the nested vector.
size_t getDataSize() const
T_NestedData NestedData
See DataInterface.
Definition dataInterface.hpp:152
Empty Position with no nested data.
Definition position.hpp:47
Tape information that can be printed in a pretty print format or a table format.
Definition tapeValues.hpp:73