CoDiPack  3.0.0
A Code Differentiation Package
SciComp TU Kaiserslautern
Loading...
Searching...
No Matches
codi::ExpressionTraits::NumberOfOperations< Expr > Struct Template Reference

Counts the number of nodes in the expression. More...

#include <expressionTraits.hpp>

Inheritance diagram for codi::ExpressionTraits::NumberOfOperations< Expr >:

Public Member Functions

template<typename Node>
inlinestatic size_t constexpr node ()
 Called for each node in the expression.
 
- Public Member Functions inherited from codi::CompileTimeTraversalLogic< size_t, NumberOfOperations< Expr > >
inlinestatic ResultType constexpr eval (Args &&... args)
 Start the evaluation of the logic on the given expression.
 
inlinestatic ResultType constexpr toLinks (Args &&... args)
 Helper method which calls the method 'link' on all links of the node and reduces the results.
 
inlinestatic ResultType constexpr reduce (ResultType a, ResultType b)
 Reduction operation for the results of two links.
 
inlinestatic ResultType constexpr node (Args &&... args)
 Called for each node in the expression.
 
inlinestatic ResultType constexpr leaf (Args &&...)
 Called for all leaf nodes in the expression.
 
inlinestatic ResultType constexpr link (Args &&... args)
 Called for all links in the expression.
 

Static Public Attributes

static size_t constexpr value = NumberOfOperations::template eval<Expr>()
 See NumberOfOperations.
 
- Static Public Attributes inherited from codi::CompileTimeTraversalLogic< size_t, NumberOfOperations< Expr > >
static ResultType constexpr NeutralElement
 Neutral element of the reduction.
 

Additional Inherited Members

- Public Types inherited from codi::CompileTimeTraversalLogic< size_t, NumberOfOperations< Expr > >
using Impl
 See CompileTimeTraversalLogic.
 
using ResultType
 See CompileTimeTraversalLogic.
 
- Protected Member Functions inherited from codi::CompileTimeTraversalLogic< size_t, NumberOfOperations< Expr > >
inlinestatic ResultType constexpr toNode (Args &&... args)
 Helper method to distinguish between leaf nodes and normal nodes.
 

Detailed Description

template<typename Expr>
struct codi::ExpressionTraits::NumberOfOperations< Expr >

Counts the number of nodes in the expression.

Member Function Documentation

◆ node()

template<typename Expr>
template<typename Node>
inlinestatic size_t constexpr codi::ExpressionTraits::NumberOfOperations< Expr >::node ( )
inlineconstexpr

Called for each node in the expression.

Implementations can call the toLinks method in order to evaluate all links of the node.

Must be a constexpr.

Default: Call each link of the node and forward all arguments.


The documentation for this struct was generated from the following file: