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:469
#define CODI_DD(Type, Default)
Abbreviation for CODI_DECLARE_DEFAULT.
Definition macros.hpp:96
CoDiPack - Code Differentiation Package.
Definition codi.hpp:94
inlinevoid CODI_UNUSED(Args const &...)
Disable unused warnings for an arbitrary number of arguments.
Definition macros.hpp:54
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)
inlinePosition getZeroPosition() const
inlinevoid forEachChunk(FunctionObject &function, bool recursive, Args &&... args)
Calls the function object for each continuous segment of data.
inlinevoid 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.
inlinevoid 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...
void resetTo(Position const &pos)
void setNested(NestedData *v)
inlinevoid 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 swap(DataInterface &other)
inlinevoid addDataSize(size_t const &size)
Add this many items to the data stream, after the data has been manipulated via pointers obtained fro...
inlinesize_t getPushedDataCount(InternalPosHandle const &startPos)
inlinevoid pushData(Data const &... data)
Add data to the storage allocated by the implementation. The method can only be called after a call t...
void resize(size_t const &totalSize)
size_t InternalPosHandle
Definition dataInterface.hpp:153
inlineInternalPosHandle reserveItems(size_t const &items)
Reserve this many items on the data stream. See pushData for details.
void addToTapeValues(TapeValues &values) const
Add amount of stored data to the TapeValues object. Not called on the nested vector.
EmptyPosition Position
Definition dataInterface.hpp:155
inlinesize_t getDataSize() const
inlinevoid 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.
inlinevoid getDataPointers(Data *&... pointers)
Get pointers to the data from the storage implementation. The method can only be called after a call ...
inlinePosition getPosition() const
inlineTargetPosition extractPosition(Position const &pos) const
Extract the position of a nested DataInterface from the global position object provide by this interf...
Nested NestedData
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:75