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. | |
![]() | |
using | Impl = T_Impl |
See UnaryOperation. | |
using | Real = T_Real |
See UnaryOperation. | |
![]() | |
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) |
![]() | |
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) |
![]() | |
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.