Traits for everything that can be an expression e.g. codi::RealReverse, a + b, etc.. More...
Classes | |
| struct | ActiveResultImpl |
| struct | ActiveResultImpl< std::complex< T_InnerReal >, T_Tape, false > |
| Specialization of ActiveResultImpl for std::complex. More... | |
| struct | ActiveResultImpl< T_Real, T_Tape, false > |
| Specialization of ActiveResultImpl for active types in a static context. More... | |
| struct | ActiveResultImpl< T_Real, T_Tape, true > |
| Specialization of ActiveResultImpl for active types in a static context. More... | |
| struct | IsConstantExpression |
| If the expression inherits from ConstantExpression. Is either std::false_type or std::true_type. More... | |
| struct | IsExpression |
| If the expression inherits from ExpressionInterface. Is either std::false_type or std::true_type. More... | |
| struct | IsLhsExpression |
| If the expression inherits from LhsExpressionInterface. Is either std::false_type or std::true_type. More... | |
| struct | IsStaticContextActiveType |
| If the expression inherits from StaticContextActiveType. Is either std::false_type or std::true_type. More... | |
| struct | NumberOfActiveTypeArguments |
| Counts the number of nodes that inherit from LhsExpressionInterface in the expression. More... | |
| struct | NumberOfActiveTypeArguments< JacobianExpression< size > > |
| Specialization for manual statement pushes of the used expression type. More... | |
| struct | NumberOfConstantTypeArguments |
| Counts the number of types that inherit from ConstantExpression in the expression. More... | |
| struct | NumberOfConstantTypeArguments< JacobianExpression< size > > |
| Specialization for manual statement pushes of the used expression type. More... | |
| struct | NumberOfOperations |
| Counts the number of nodes in the expression. More... | |
| struct | ValidateADLogicImpl |
Validates if the AD logic of an arbitrary amount of expressions are the same or compatible. void results are interpreted as the AD logic of a constant expression. More... | |
| struct | ValidateADLogicImpl< Logic > |
| Validation for one arguments just defines the input logic as the valid one. More... | |
| struct | ValidateADLogicImpl< LogicA, LogicB > |
| Validation for two arguments. Validates if one of the two is void or both are the same. More... | |
| struct | ValidateADLogicImpl< LogicA, LogicOther... > |
| Validation for an arbitrary number of arguments. Gets the logic of the remainder and validates this with LogicA. More... | |
Typedefs | |
Expression traits. | |
| template<typename... Results> | |
| using | ValidateADLogic = ValidateADLogicImpl<Results...> |
Validates if the AD logic of an arbitrary amount of expressions are the same or compatible. void results are interpreted as the AD logic of a constant expression. | |
| template<typename Real, typename Tape, bool isStatic = false> | |
| using | ActiveResult = typename ActiveResultImpl<Real, Tape, isStatic>::ActiveResult |
Variables | |
Static values on expressions | |
| template<typename Expr> | |
| bool constexpr | numberOfActiveTypeArguments = NumberOfActiveTypeArguments<Expr>::value |
| Value entry of NumberOfActiveTypeArguments. | |
| template<typename Expr> | |
| bool constexpr | numberOfConstantTypeArguments = NumberOfConstantTypeArguments<Expr>::value |
| Value entry of NumberOfConstantTypeArguments. | |
| template<typename Expr> | |
| bool constexpr | numberOfOperations = NumberOfOperations<Expr>::value |
| Value entry of NumberOfOperations. | |
Detection of specific node types | |
| template<typename Expr, typename T = void> | |
| using | EnableIfExpression = typename std::enable_if<IsExpression<Expr>::value, T>::type |
| Enable if wrapper for IsExpression. | |
| template<typename Expr, typename T = void> | |
| using | EnableIfLhsExpression = typename std::enable_if<IsLhsExpression<Expr>::value, T>::type |
| Enable if wrapper for IsLhsExpression. | |
| template<typename Expr, typename T = void> | |
| using | EnableIfConstantExpression = typename std::enable_if<IsConstantExpression<Expr>::value, T>::type |
| Enable if wrapper for IsConstantExpression. | |
| template<typename Expr, typename T = void> | |
| using | EnableIfStaticContextActiveType = typename std::enable_if<IsStaticContextActiveType<Expr>::value, T>::type |
| Enable if wrapper for IsStaticContextActiveType. | |
| template<typename Expr> | |
| bool constexpr | isExpression = IsExpression<Expr>::value |
| Value entry of IsExpression. | |
| template<typename Expr> | |
| bool constexpr | isLhsExpression = IsLhsExpression<Expr>::value |
| Value entry of IsLhsExpression. | |
| template<typename Expr> | |
| bool constexpr | isConstantExpression = IsConstantExpression<Expr>::value |
| Value entry of IsConstantExpression. | |
| template<typename Expr> | |
| bool constexpr | isStaticContextActiveType = IsStaticContextActiveType<Expr>::value |
| Value entry of IsStaticContextActiveType. | |
Traits for everything that can be an expression e.g. codi::RealReverse, a + b, etc..
| using codi::ExpressionTraits::ActiveResult = typename ActiveResultImpl<Real, Tape, isStatic>::ActiveResult |
Create a CoDiPack active type that can capture an expression result. The ADLogic type definition in the expression is usually the tape type.
| T_Real | Real value of the expression. |
| T_Tape | ADLogic of the expression. |
| T_isStatic | If a static context active type should be used. |