46 template<
typename T_Real,
typename T_Gradient,
typename T_Identifier,
typename T_Position>
49 template<
typename T_Tape>
53 template<
typename... Args>
57#define CODI_UNUSED_ARG(arg)
61#define CODI_ENABLE_CHECK(option, condition) (!(option) || (condition))
64#define CODI_TO_STRING2(expression) #expression
67#define CODI_TO_STRING(expression) CODI_TO_STRING2(expression)
86 #define CODI_DECLARE_DEFAULT(Type, Default) Default
88 #define CODI_DECLARE_DEFAULT(Type, Default) Type
94 #define CODI_DD(Type, Default) Default
96 #define CODI_DD(Type, Default) Type
103#define CODI_ANY_T(Type) Type
105#ifndef DOXYGEN_DISABLE
110#define CODI_IMPLEMENTATION ImplProxy
113#define CODI_TEMPLATE(...) __VA_ARGS__
116#define CODI_T(...) CODI_TEMPLATE(__VA_ARGS__)
119#define CODI_UNDEFINED char
122#define CODI_UNDEFINED_VALUE false
126 #define CODI_STATIC_ASSERT(cond, message)
129 #define CODI_STATIC_ASSERT(cond, message) static_assert(cond, message)
134 struct ActiveTypeProxy {
136 using Identifier = int;
140 #define CODI_DEFAULT_TAPE FullTapeInterface<double, double, int, EmptyPosition>
143 #define CODI_DEFAULT_PARALLEL_TAPE CODI_UNION<CODI_DEFAULT_TAPE, EditingTapeInterface<EmptyPosition>>
146 #define CODI_DEFAULT_LHS_EXPRESSION LhsExpressionInterface<double, double, CODI_DEFAULT_TAPE, CODI_ANY>
149 #define CODI_DEFAULT_ACTIVE_TYPE ActiveType<CODI_DEFAULT_TAPE>
152#ifndef DOXYGEN_DISABLE
154 template<
typename First,
typename... Tail>
155 struct CODI_UNION :
public First,
public CODI_UNION<Tail...> {};
159 template<
typename First>
160 struct CODI_UNION<First> :
public First {};
165#define CODI_WRAP_FUNCTION(NAME, FUNC) \
169 template<typename... Args> \
170 void operator()(Args&&... args) const { \
171 FUNC(std::forward<Args>(args)...); \
176#define CODI_WRAP_FUNCTION_TEMPLATE(NAME, FUNC) \
177 template<typename... TT> \
181 template<typename... Args> \
182 void operator()(Args&&... args) const { \
183 FUNC<TT...>(std::forward<Args>(args)...); \
#define CODI_INLINE
See codi::Config::ForcedInlines.
Definition config.h:469
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
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:84