CoDiPack  2.2.0
A Code Differentiation Package
SciComp TU Kaiserslautern
Loading...
Searching...
No Matches
codi::ForEachLeafLogic< T_Impl > Struct Template Reference

Implement logic for leaf nodes only. More...

#include <forEachLeafLogic.hpp>

Inheritance diagram for codi::ForEachLeafLogic< T_Impl >:

Public Types

using Impl = T_Impl
 See ForEachLeafLogic.
 
- Public Types inherited from codi::TraversalLogic< T_Impl >
using Impl = T_Impl
 See TraversalLogic.
 

Public Member Functions

Interface definition
template<typename Node , typename... Args>
void handleActive (Node const &node, Args &&... args)
 Called for leaf nodes which implement LhsExpressionInterface.
 
template<typename Node , typename... Args>
void handleConstant (Node const &node, Args &&... args)
 Called for leaf nodes which implement ConstantExpression.
 
Overwrites from TraversalLogic
template<typename Node , typename... Args>
ExpressionTraits::EnableIfLhsExpression< Nodeleaf (Node const &node, Args &&... args)
 Called for all leaf nodes in the expression.
 
template<typename Node , typename... Args>
ExpressionTraits::EnableIfConstantExpression< Nodeleaf (Node const &node, Args &&... args)
 Called for all leaf nodes in the expression.
 
- Public Member Functions inherited from codi::TraversalLogic< T_Impl >
Implcast ()
 Cast to the implementation.
 
template<typename Node , typename... Args>
void eval (NodeInterface< Node > const &node, Args &&... args)
 Start the evaluation of the logic on the given expression.
 
template<typename Node , typename... Args>
void node (Node const &node, Args &&... args)
 Called for each node in the expression.
 
template<typename Node , typename... Args>
void leaf (Node const &node, Args &&... args)
 Called for all leaf nodes in the expression.
 
template<size_t ChildNumber, typename Child , typename Root , typename... Args>
void link (Child const &child, Root const &root, Args &&... args)
 Called for all links in the expression.
 

Additional Inherited Members

- Protected Member Functions inherited from codi::TraversalLogic< T_Impl >
template<typename Node , typename... Args>
void toLinks (Node const &node, Args &&... args)
 Helper method which calls forEachLink on the node.
 
template<typename Node , typename... Args>
void toNode (Node const &node, Args &&... args)
 Helper method to distinguish between leaf nodes and normal nodes.
 

Detailed Description

template<typename T_Impl>
struct codi::ForEachLeafLogic< T_Impl >

Implement logic for leaf nodes only.

This class calls:

For details about the expression traversal see TraversalLogic.

Template Parameters
T_ImplClass implementing this interface.

Member Function Documentation

◆ leaf() [1/2]

template<typename T_Impl >
template<typename Node , typename... Args>
ExpressionTraits::EnableIfLhsExpression< Node > codi::ForEachLeafLogic< T_Impl >::leaf ( Node const & node,
Args &&... args )
inline

Called for all leaf nodes in the expression.

Default: Does nothing.

◆ leaf() [2/2]

template<typename T_Impl >
template<typename Node , typename... Args>
ExpressionTraits::EnableIfConstantExpression< Node > codi::ForEachLeafLogic< T_Impl >::leaf ( Node const & node,
Args &&... args )
inline

Called for all leaf nodes in the expression.

Default: Does nothing.


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