CoDiPack  2.2.0
A Code Differentiation Package
SciComp TU Kaiserslautern
Loading...
Searching...
No Matches
codi::ExpressionTraits Namespace Reference

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.
 

Detailed Description

Traits for everything that can be an expression e.g. codi::RealReverse, a + b, etc..

Typedef Documentation

◆ ValidateResult

template<typename ResultA , typename ResultB >
using codi::ExpressionTraits::ValidateResult = typedef 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.