|
template<typename RealA , typename RealB > |
| BinaryExpression (ExpressionInterface< RealA, ArgA > const &argA, ExpressionInterface< RealB, ArgB > const &argB) |
| Constructor.
|
|
Impl const & | cast () const |
| Cast to the implementation.
|
|
| ExpressionInterface ()=default |
| Constructor.
|
|
| ExpressionInterface (ExpressionInterface const &)=default |
| Constructor.
|
|
Real const | getValue () const |
| Compute the primal value that is usually evaluated by the statement/expression.
|
|
Real | getJacobian () const |
|
Impl const & | cast () const |
| Cast to the implementation.
|
|
template<typename Logic , typename... Args> |
void | forEachLink (TraversalLogic< Logic > &logic, Args &&... args) const |
|
template<typename T_Real, typename T_ArgA, typename T_ArgB, template< typename > class T_Operation>
struct codi::BinaryExpression< T_Real, T_ArgA, T_ArgB, T_Operation >
Represents an operator with two arguments in the expression tree.
See Expression design documentation for details about the expression system in CoDiPack.
- Template Parameters
-
T_Real | Original primal value of the statement/expression. |
T_ArgA | The ExpressionInterface type of the first argument. |
T_ArgB | The ExpressionInterface type of the second argument. |
T_Operation | The logic for computing the primal value and Jacobians. Must implement BinaryOperation. |
template<typename T_Real , typename T_ArgA , typename T_ArgB , template< typename > class T_Operation>
template<typename Logic , typename... Args>
Call the link method of the given logic for all arguments (links) of this node (not to be confused with args). Pass args to each call.
template<typename T_Real , typename T_ArgA , typename T_ArgB , template< typename > class T_Operation>
template<typename CompileTimeLogic , typename... Args>
static CompileTimeLogic::ResultType constexpr codi::BinaryExpression< T_Real, T_ArgA, T_ArgB, T_Operation >::forEachLinkConstExpr |
( |
Args &&... | args | ) |
|
|
inlinestaticconstexpr |
Call the link method of the given logic for all arguments (links) of this node (not to be confused with args). Pass args to each call.
template<typename T_Real , typename T_ArgA , typename T_ArgB , template< typename > class T_Operation>
template<size_t argNumber>
Get the Jacobian with respect to the given argument.
This is just the local Jacobian and not the one for the whole expression tree.