Traits for everything that can be an expression e.g. codi::RealReverse, a + b, etc.. More...
Classes | |
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 | ValidateResultImpl |
Typedefs | |
Expression traits. | |
template<typename ResultA , typename ResultB > | |
using | ValidateResult = ValidateResultImpl<ResultA, ResultB> |
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. | |
Traits for everything that can be an expression e.g. codi::RealReverse, a + b, etc..
using codi::ExpressionTraits::ValidateResult = ValidateResultImpl<ResultA, ResultB> |
Validates if the active type results of two expressions are the same or compatible. void
results are interpreted as the active type result of a constant expression.