46 template<
typename T_Real,
typename T_Gradient,
typename T_Identifier,
typename T_Position,
47 typename T_ActiveTypeTapeData>
50 template<
typename T_Tape>
54 template<
typename... Args>
58#define CODI_UNUSED_ARG(arg)
62#define CODI_ENABLE_CHECK(option, condition) (!(option) || (condition))
65#define CODI_TO_STRING2(expression) #expression
68#define CODI_TO_STRING(expression) CODI_TO_STRING2(expression)
87 #define CODI_DECLARE_DEFAULT(Type, Default) Default
89 #define CODI_DECLARE_DEFAULT(Type, Default) Type
95 #define CODI_DD(Type, Default) Default
97 #define CODI_DD(Type, Default) Type
104#define CODI_ANY_T(Type) Type
106#ifndef DOXYGEN_DISABLE
111#define CODI_IMPLEMENTATION ImplProxy
114#define CODI_TEMPLATE(...) __VA_ARGS__
117#define CODI_T(...) CODI_TEMPLATE(__VA_ARGS__)
120#define CODI_UNDEFINED char
123#define CODI_UNDEFINED_VALUE false
127 #define CODI_STATIC_ASSERT(cond, message)
130 #define CODI_STATIC_ASSERT(cond, message) static_assert(cond, message)
135 struct ActiveTypeProxy {
137 using Identifier = int;
138 using TapeData = int;
142 #define CODI_DEFAULT_TAPE FullTapeInterface<double, double, int, EmptyPosition, int>
145 #define CODI_DEFAULT_PARALLEL_TAPE CODI_UNION<CODI_DEFAULT_TAPE, EditingTapeInterface<EmptyPosition>>
148 #define CODI_DEFAULT_LHS_EXPRESSION LhsExpressionInterface<double, double, CODI_DEFAULT_TAPE, CODI_ANY>
151 #define CODI_DEFAULT_ACTIVE_TYPE ActiveType<CODI_DEFAULT_TAPE>
154#ifndef DOXYGEN_DISABLE
156 template<
typename First,
typename... Tail>
157 struct CODI_UNION :
public First,
public CODI_UNION<Tail...> {};
161 template<
typename First>
162 struct CODI_UNION<First> :
public First {};
167#define CODI_WRAP_FUNCTION(NAME, FUNC) \
171 template<typename... Args> \
172 void operator()(Args&&... args) const { \
173 FUNC(std::forward<Args>(args)...); \
178#define CODI_WRAP_FUNCTION_TEMPLATE(NAME, FUNC) \
179 template<typename... TT> \
183 template<typename... Args> \
184 void operator()(Args&&... args) const { \
185 FUNC<TT...>(std::forward<Args>(args)...); \
#define CODI_INLINE
See codi::Config::ForcedInlines.
Definition config.h:469
CoDiPack - Code Differentiation Package.
Definition codi.hpp:97
inlinevoid CODI_UNUSED(Args const &...)
Disable unused warnings for an arbitrary number of arguments.
Definition macros.hpp:55
Represents a concrete lvalue in the CoDiPack expression tree.
Definition activeType.hpp:52
Empty Position with no nested data.
Definition position.hpp:47
Full tape interface that supports all features of CoDiPack.
Definition fullTapeInterface.hpp:89