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

#include <jacobianComputationLogic.hpp>

Inheritance diagram for codi::JacobianComputationLogic< T_Impl >:

Public Types

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

Public Member Functions

Interface definition
template<typename Node , typename Jacobian , typename... Args>
void handleJacobianOnActive (Node const &node, Jacobian jacobian, Args &&... args)
 Called for leaf nodes which implement LhsExpressionInterface.
 
Overwrites from TraversalLogic
template<typename Node , typename Jacobian , typename... Args>
ExpressionTraits::EnableIfLhsExpression< Node > leaf (Node const &node, Jacobian jacobian, Args &&... args)
 Called for all leaf nodes in the expression.
 
template<size_t ChildNumber, typename Child , typename Root , typename Jacobian , typename... Args>
void link (Child const &child, Root const &root, Jacobian const &jacobian, Args &&... args)
 
- 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::JacobianComputationLogic< T_Impl >
Template Parameters
T_ImplClass implementing this interface.

Member Function Documentation

◆ leaf()

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

Called for all leaf nodes in the expression.

Default: Does nothing.

◆ link()

template<typename T_Impl >
template<size_t ChildNumber, typename Child , typename Root , typename Jacobian , typename... Args>
void codi::JacobianComputationLogic< T_Impl >::link ( Child const &  child,
Root const &  root,
Jacobian const &  jacobian,
Args &&...  args 
)
inline

Computes the reverse AD equation for this link.

The Jacobian is multiplied with the Jacobian of the link. The result is forwarded to the child.


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