41#include "../tapes/jacobianBaseTape.hpp"
42#include "../tapes/primalValueBaseTape.hpp"
47 template<
typename T_Real,
typename T_Gradient>
48 struct ForwardEvaluation;
50 template<
typename T_Real,
typename T_Tag>
51 struct TagTapeForward;
53 template<
typename T_Real,
typename T_Tag>
54 struct TagTapeReverse;
58 namespace TapeTraits {
65 template<
typename Tape,
typename =
void>
68#ifndef DOXYGEN_DISABLE
69 template<
typename Tape>
74 template<
typename Tape>
82 template<
typename Tape>
83 bool constexpr isForwardTape = IsForwardTape<Tape>::value;
87 template<
typename Tape>
91 template<
typename Tape,
typename =
void>
94#ifndef DOXYGEN_DISABLE
95 template<
typename Tape>
103 template<
typename Tape>
104 bool constexpr isPrimalValueTape = IsPrimalValueTape<Tape>::value;
108 template<
typename Tape>
112 template<
typename Tape,
typename =
void>
115#ifndef DOXYGEN_DISABLE
116 template<
typename Tape>
124 template<
typename Tape>
125 bool constexpr isJacobianTape = IsJacobianTape<Tape>::value;
129 template<
typename Tape>
132 template<
typename Tape,
typename =
void>
135#ifndef DOXYGEN_DISABLE
137 template<
typename Tape>
139 typename std::enable_if<IsJacobianTape<Tape>::value || IsPrimalValueTape<Tape>::value>::type>
142 template<
typename Tape>
143 struct IsReverseTape<
150 template<
typename Tape>
151 bool constexpr isReverseTape = IsReverseTape<Tape>::value;
155 template<
typename Tape>
typename std::enable_if< IsJacobianTape< Tape >::value >::type EnableIfJacobianTape
Enable if wrapper for IsJacobianTape.
Definition tapeTraits.hpp:130
typename std::enable_if< IsPrimalValueTape< Tape >::value >::type EnableIfPrimalValueTape
Enable if wrapper for IsPrimalValueTape.
Definition tapeTraits.hpp:109
typename std::enable_if< IsForwardTape< Tape >::value >::type EnableIfForwardTape
Enable if wrapper for IsForwardTape.
Definition tapeTraits.hpp:88
typename std::enable_if< IsReverseTape< Tape >::value >::type EnableIfReverseTape
Enable if wrapper for IsReverseTape.
Definition tapeTraits.hpp:156
CoDiPack - Code Differentiation Package.
Definition codi.hpp:90
std::enable_if< std::is_base_of< Base, Impl >::value, R > enable_if_base_of
Enable if abbreviation for std::is_base_of.
Definition enableIfHelpers.hpp:47
Represents a concrete lvalue in the CoDiPack expression tree.
Definition activeType.hpp:52
Implementation of a tape-free forward AD mode through the internal expression interfaces.
Definition forwardEvaluation.hpp:72
Base class for all standard Jacobian tape implementations.
Definition jacobianBaseTape.hpp:125
Base class for all standard Primal value tape implementations.
Definition primalValueBaseTape.hpp:136
Tape for tagging variables and find errors in the AD workflow.
Definition tagTapeForward.hpp:62
Tape for tagging variables and find errors in the AD workflow.
Definition tagTapeReverse.hpp:56
If the tape inherits from ForwardEvaluation.
Definition tapeTraits.hpp:66
If the tape inherits from JacobianBaseTape.
Definition tapeTraits.hpp:113
If the tape inherits from PrimalValueBaseTape.
Definition tapeTraits.hpp:92
Definition tapeTraits.hpp:133