Implements UnaryOperation for functions where the gradient can be computed and transposed. More...
#include <computeExpression.hpp>

Public Types | |
| using | Impl = T_Impl |
| See UnaryOperation. | |
| using | Real = T_Real |
| See UnaryJacobianOperation. | |
Public Types inherited from codi::UnaryOperation< T_Real, T_Impl > | |
| using | Impl = T_Impl |
| See UnaryOperation. | |
| using | Real = T_Real |
| See UnaryOperation. | |
Public Types inherited from codi::ComputeOperation< T_Real > | |
| using | Real = T_Real |
| See ComputeOperation. | |
Static Public Member Functions | |
| template<typename Adjoint, typename Arg> | |
| static inlineArg | applyAdjointArg (Adjoint const &adjoint, Real const &result, Arg const &arg) |
| template<typename Tangent, typename Arg> | |
| static inlineauto | applyTangentArg (Tangent const &tangent, Real const &result, Arg const &arg) |
| template<typename Arg> | |
| static inlineauto | gradient (Arg const &arg, Real const &result) |
| Compute | |
| template<typename Arg> | |
| static inlineReal | primal (Arg const &arg) |
Static Public Member Functions inherited from codi::UnaryOperation< T_Real, T_Impl > | |
| template<size_t argNumber, typename Adjoint, typename Arg> | |
| static inlineauto | applyAdjoint (Adjoint const &adjoint, Real const &result, Arg const &arg) |
| template<typename Adjoint, typename Arg> | |
| static inlineauto | applyAdjointArg (Adjoint const &adjoint, Real const &result, Arg const &arg) |
| template<size_t argNumber, typename Tangent, typename Arg> | |
| static inlineauto | applyTangent (Tangent const &tangent, Real const &result, Arg const &arg) |
| template<typename Tangent, typename Arg> | |
| static inlineauto | applyTangentArg (Tangent const &tangent, Real const &result, Arg const &arg) |
| template<typename Arg> | |
| static inlineReal | primal (Arg const &arg) |
Static Public Member Functions inherited from codi::ComputeOperation< T_Real > | |
| template<size_t argNumber, typename Adjoint, typename... Args> | |
| static inlineauto | applyAdjoint (Adjoint const &adjoint, Real const &result, Args const &... args) |
| template<size_t argNumber, typename Tangent, typename... Args> | |
| static inlineauto | applyTangent (Tangent const &tangent, Real const &result, Args const &... args) |
| static inlinestd::string | getMathRep () |
Get the math symbol of the operation. E.g. + for operators and pow() for functions. | |
| template<typename... Args> | |
| static inlineReal | primal (Args const &... args) |
Implements UnaryOperation for functions where the gradient can be computed and transposed.
Implementations need to define primal and gradient.
See UnaryOperation for details.
| T_Real | Original primal value of the statement/expression. |
| T_Impl | Final implementation of the operation. |
|
inlinestatic |
Apply the reverse AD mode with respect to the argument on the adjoint and return the result. Computes 
Calls gradient, transposes the result and multiplies with adjoint.
|
inlinestatic |
Apply the forward AD mode with respect to the argument on the tangent and return the result. Computes 
Calls gradient and multiplies with tangent.
|
static |
Compute the primal value from the arguments. E.g. evaluates 
The argument types are the types of the result of a getValue call on the expression.