38#include "codi/expressions/activeType.hpp"
39#include "codi/expressions/activeTypeStatelessTape.hpp"
40#include "codi/expressions/activeTypeWrapper.hpp"
41#include "codi/expressions/complex/allOperators.hpp"
42#include "codi/expressions/complex/stdComplex.hpp"
43#include "codi/expressions/immutableActiveType.hpp"
44#include "codi/expressions/real/allOperators.hpp"
45#include "codi/expressions/referenceActiveType.hpp"
46#include "codi/expressions/static/staticContextAggregatedActiveType.hpp"
47#include "codi/misc/enumBitset.hpp"
48#include "codi/tapes/data/blockData.hpp"
49#include "codi/tapes/data/chunkedData.hpp"
50#include "codi/tapes/forwardEvaluation.hpp"
51#include "codi/tapes/indices/debugMultiUseIndexManager.hpp"
52#include "codi/tapes/indices/linearIndexManager.hpp"
53#include "codi/tapes/indices/multiUseIndexManager.hpp"
54#include "codi/tapes/jacobianLinearTape.hpp"
55#include "codi/tapes/jacobianReuseTape.hpp"
56#include "codi/tapes/primalValueLinearTape.hpp"
57#include "codi/tapes/primalValueReuseTape.hpp"
58#include "codi/tapes/statementEvaluators/directStatementEvaluator.hpp"
59#include "codi/tapes/statementEvaluators/innerStatementEvaluator.hpp"
60#include "codi/tapes/statementEvaluators/reverseStatementEvaluator.hpp"
61#include "codi/tapes/tagging/tagTapeForward.hpp"
62#include "codi/tapes/tagging/tagTapeReverse.hpp"
63#include "codi/tools/data/aggregatedTypeVectorAccessWrapper.hpp"
64#include "codi/tools/data/direction.hpp"
65#include "codi/tools/data/externalFunctionUserData.hpp"
66#include "codi/tools/data/jacobian.hpp"
67#include "codi/tools/derivativeAccess.hpp"
68#include "codi/tools/helpers/customAdjointVectorHelper.hpp"
69#include "codi/tools/helpers/externalFunctionHelper.hpp"
71#include "codi/tapes/io/readerWriterHelpers.hpp"
72#include "codi/tools/helpers/linearSystem/linearSystemHandler.hpp"
73#include "codi/tools/helpers/preaccumulationHelper.hpp"
74#include "codi/tools/helpers/statementPushHelper.hpp"
75#include "codi/tools/helpers/tapeHelper.hpp"
76#include "codi/tools/identifierCacheOptimizer.hpp"
77#include "codi/tools/io/writeConnectivityData.hpp"
78#include "codi/tools/lowlevelFunctions/lowLevelFunctionCreationUtilities.hpp"
79#include "codi/traits/computationTraits.hpp"
80#include "codi/traits/numericLimits.hpp"
81#include "codi/traits/tapeTraits.hpp"
84 #include "codi/traits/concepts.hpp"
88 #include "codi/tools/mpi/codiMpiTypes.hpp"
92 #include "codi/tools/helpers/linearSystem/eigenLinearSystem.hpp"
93 #include "codi/tools/lowlevelFunctions/linearAlgebra/matrixMatrixMultiplication.hpp"
94 #include "codi/traits/eigenTraits.hpp"
98 #include "codi/tools/helpers/enzymeExternalFunctionHelper.hpp"
104#define CODI_MAJOR_VERSION 3
105#define CODI_MINOR_VERSION 1
106#define CODI_BUILD_VERSION 3
107#define CODI_VERSION "3.1.3"
111 template<
typename Real,
typename Gradient = Real>
127 template<
typename Real,
typename Gradient = Real,
typename Index =
int>
144 template<
typename Real,
typename Gradient = Real,
typename Index =
int>
155 template<
typename Real,
typename Gradient = Real,
typename IndexManager = MultiUseIndexManager<
int>>
172 template<
typename Real,
typename Gradient = Real,
typename IndexManager = MultiUseIndexManager<
int>>
183 template<
typename Real,
typename Gradient = Real,
typename Index = int,
201 template<
typename Real,
typename Gradient = Real,
typename Index = int,
213 template<
typename Real,
typename Gradient = Real,
typename IndexManager = MultiUseIndexManager<
int>,
214 typename StatementEvaluator = InnerStatementEvaluator>
231 template<
typename Real,
typename Gradient = Real,
typename IndexManager = MultiUseIndexManager<
int>,
232 typename StatementEvaluator = InnerStatementEvaluator>
272#include "codi/tools/cuda/codiCUDA.hpp"
273#include "codi/tools/helpers/evaluationHelper.hpp"
276 #include "codi/tools/parallel/openmp/codiOpenMP.hpp"
279#if CODI_EnableOpDiLib
280 #include "codi/tools/parallel/openmp/codiOpDiLibTool.hpp"
CoDiPack - Code Differentiation Package.
Definition codi.hpp:102
RealReversePrimalIndexGen< double, Direction< double, dim > > RealReversePrimalIndexVec
Definition codi.hpp:223
RealReversePrimalIndexGen< RealForwardVec< 4 >, Direction< RealForwardVec< 4 >, 4 > > HessianComputationType
A regular CoDiPack type that can be used for Hessian computations in the TapeHelper.
Definition codi.hpp:242
RealReverseGen< double, Direction< double, dim > > RealReverseVec
Definition codi.hpp:136
ActiveType< ForwardEvaluation< Real, Gradient > > RealForwardGen
Definition codi.hpp:112
ActiveType< PrimalValueReuseTape< PrimalValueTapeTypes< Real, Gradient, IndexManager, StatementEvaluator, DefaultChunkedData > > > RealReversePrimalIndexGen
Definition codi.hpp:215
RealReversePrimalUncheckedGen< double > RealReversePrimalUnchecked
Definition codi.hpp:207
RealForwardGen< double, Direction< double, dim > > RealForwardVec
Definition codi.hpp:121
ActiveType< PrimalValueLinearTape< PrimalValueTapeTypes< Real, Gradient, LinearIndexManager< Index >, StatementEvaluator, DefaultChunkedData > > > RealReversePrimalGen
Definition codi.hpp:185
RealReversePrimalIndexUncheckedGen< double > RealReversePrimalIndexUnchecked
Definition codi.hpp:237
ActiveType< JacobianReuseTape< JacobianTapeTypes< Real, Gradient, IndexManager, DefaultChunkedData > > > RealReverseIndexGen
Definition codi.hpp:156
RealReverseUncheckedGen< double > RealReverseUnchecked
Definition codi.hpp:149
ActiveType< JacobianLinearTape< JacobianTapeTypes< Real, Gradient, LinearIndexManager< Index >, DefaultBlockData > > > RealReverseUncheckedGen
Definition codi.hpp:145
BlockData< Chunk, NestedData > DefaultBlockData
BlockData DataInterface used in all unchecked tapes.
Definition blockData.hpp:318
RealReversePrimalIndexGen< RealForward > HessianComputationScalarType
A regular CoDiPack type that can be used for Hessian computations in the TapeHelper.
Definition codi.hpp:249
RealReverseIndexVec< 4 > JacobianComputationType
A regular CoDiPack type that can be used for Jacobian computations in the TapeHelper.
Definition codi.hpp:254
RealReversePrimalGen< double > RealReversePrimal
Definition codi.hpp:189
RealReverseIndex JacobianComputationScalarType
A regular CoDiPack type that can be used for Jacobian computations in the TapeHelper.
Definition codi.hpp:261
RealReverseIndexGen< double > RealReverseIndex
Definition codi.hpp:160
ActiveType< TagTapeReverse< double, int > > RealReverseTag
Definition codi.hpp:265
ActiveType< PrimalValueLinearTape< PrimalValueTapeTypes< Real, Gradient, LinearIndexManager< Index >, StatementEvaluator, DefaultChunkedData > > > RealReversePrimalUncheckedGen
Definition codi.hpp:203
ChunkedData< Chunk, NestedData > DefaultChunkedData
ChunkData DataInterface used in all regular tapes.
Definition chunkedData.hpp:520
ActiveType< JacobianReuseTape< JacobianTapeTypes< Real, Gradient, IndexManager, DefaultChunkedData > > > RealReverseIndexUncheckedGen
Definition codi.hpp:173
ActiveType< JacobianLinearTape< JacobianTapeTypes< Real, Gradient, LinearIndexManager< Index >, DefaultChunkedData > > > RealReverseGen
Definition codi.hpp:128
RealReverseIndexUncheckedGen< double > RealReverseIndexUnchecked
Definition codi.hpp:177
RealReverseIndexGen< double, Direction< double, dim > > RealReverseIndexVec
Definition codi.hpp:164
RealReversePrimalGen< double, Direction< double, dim > > RealReversePrimalVec
Definition codi.hpp:193
RealReverseGen< double > RealReverse
Definition codi.hpp:132
RealForwardGen< double, double > RealForward
Definition codi.hpp:116
ActiveType< PrimalValueReuseTape< PrimalValueTapeTypes< Real, Gradient, IndexManager, StatementEvaluator, DefaultChunkedData > > > RealReversePrimalIndexUncheckedGen
Definition codi.hpp:233
ActiveType< TagTapeForward< double, int > > RealForwardTag
Definition codi.hpp:269
RealReversePrimalIndexGen< double > RealReversePrimalIndex
Definition codi.hpp:219
Represents a concrete lvalue in the CoDiPack expression tree.
Definition activeType.hpp:52
Fixed size vector mode implementation.
Definition direction.hpp:57
Expression evaluation in the inner function. Data loading in the compilation context of the tape....
Definition innerStatementEvaluator.hpp:104
Final implementation for a primal value tape with a linear index management.
Definition primalValueLinearTape.hpp:64
Final implementation for a primal value tape with a reuse index management.
Definition primalValueReuseTape.hpp:64
Type definitions for the primal value tapes.
Definition primalValueBaseTape.hpp:82