41#include "nodeInterface.hpp"
55 template<
typename T_Impl>
63 return static_cast<Impl&
>(*this);
69 template<
typename Node,
typename...
Args>
85 template<
typename Node,
typename...
Args>
96 template<
typename Node,
typename...
Args>
120#ifndef DOXYGEN_DISABLE
121 template<
typename TraversalImpl,
bool endPo
int = false>
124 template<
typename...
Args>
126 impl.node(std::forward<Args>(
args)...);
130 template<
typename TraversalImpl>
133 template<
typename...
Args>
135 impl.leaf(std::forward<Args>(
args)...);
141 template<
typename Node,
typename...
Args>
143 CallSwitch<Impl, Node::EndPoint>::call(
cast(),
node, std::forward<Args>(
args)...);
147 template<
typename Node,
typename...
Args>
#define CODI_INLINE
See codi::Config::ForcedInlines.
Definition config.h:457
#define CODI_DD(Type, Default)
Abbreviation for CODI_DECLARE_DEFAULT.
Definition macros.hpp:94
CoDiPack - Code Differentiation Package.
Definition codi.hpp:90
void CODI_UNUSED(Args const &...)
Disable unused warnings for an arbitrary number of arguments.
Definition macros.hpp:46
static ResultType constexpr link(Args &&... args)
Called for all links in the expression.
Definition compileTimeTraversalLogic.hpp:126
Node side interface for the traversal of expressions.
Definition nodeInterface.hpp:56
Traversal of CoDiPack expressions.
Definition traversalLogic.hpp:56
void eval(NodeInterface< Node > const &node, Args &&... args)
Start the evaluation of the logic on the given expression.
Definition traversalLogic.hpp:70
void toNode(Node const &node, Args &&... args)
Helper method to distinguish between leaf nodes and normal nodes.
Definition traversalLogic.hpp:142
void leaf(Node const &node, Args &&... args)
Called for all leaf nodes in the expression.
Definition traversalLogic.hpp:97
void toLinks(Node const &node, Args &&... args)
Helper method which calls forEachLink on the node.
Definition traversalLogic.hpp:148
T_Impl Impl
See TraversalLogic.
Definition traversalLogic.hpp:59
void node(Node const &node, Args &&... args)
Called for each node in the expression.
Definition traversalLogic.hpp:86
void link(Child const &child, Root const &root, Args &&... args)
Called for all links in the expression.
Definition traversalLogic.hpp:110
Impl & cast()
Cast to the implementation.
Definition traversalLogic.hpp:62