CoDiPack  2.2.0
A Code Differentiation Package
SciComp TU Kaiserslautern
Loading...
Searching...
No Matches
codi::EvaluationHandleReverseBase< T_Func, T_Type, T_InputStore, T_OutputStore > Struct Template Reference

Implementation for reverse mode CoDiPack types of EvaluationHandleBase. More...

#include <evaluationHelper.hpp>

Inheritance diagram for codi::EvaluationHandleReverseBase< T_Func, T_Type, T_InputStore, T_OutputStore >:

Public Types

using Base = EvaluationHandleBase< Func, Type, InputStore, OutputStore >
 Abbreviation for the base class.
 
using Func = T_Func
 See EvaluationHandleBase.
 
using InputStore = T_InputStore
 See EvaluationHandleBase.
 
using OutputStore = T_OutputStore
 See EvaluationHandleBase.
 
using Type = T_Type
 See EvaluationHandleBase.
 
- Public Types inherited from codi::EvaluationHandleBase< T_Func, T_Type, T_InputStore, T_OutputStore >
using Func = T_Func
 See EvaluationHandleBase.
 
using InputStore = T_InputStore
 See EvaluationHandleBase.
 
using OutputStore = T_OutputStore
 See EvaluationHandleBase.
 
using Type = T_Type
 See EvaluationHandleBase.
 

Public Member Functions

template<typename VecX , typename Hes , typename VecY , typename Jac >
void computeHessian (VecX const &locX, Hes &hes, VecY &locY, Jac &jac)
 Perform a Hessian evaluation with the inputs provided in locX and store the result in hes, jac and locY.
 
template<typename VecX , typename Jac , typename VecY >
void computeJacobian (VecX const &locX, Jac &jac, VecY &locY)
 Perform a Jacobian evaluation with the inputs provided in locX and store the result in jac and locY.
 
template<typename VecX , typename VecY >
void computePrimal (VecX const &locX, VecY &locY)
 Perform a primal evaluation with the inputs provided in locX and store the result in locY.
 
 EvaluationHandleReverseBase (Func &func, size_t m, size_t n)
 Constructor.
 
template<typename VecY >
void getPrimalOutputs (VecY &locY, bool reg)
 Store the primal values from the CoDiPack vector into the user vector.
 
template<typename VecX >
void setPrimalInputs (VecX const &locX, bool reg)
 Set the primal values from the user provided vector into the CoDiPack ones.
 
- Public Member Functions inherited from codi::EvaluationHandleBase< T_Func, T_Type, T_InputStore, T_OutputStore >
template<typename VecX , typename Hes , typename VecY , typename Jac >
void computeHessian (VecX const &locX, Hes &hes, VecY &locY, Jac &jac)
 Perform a Hessian evaluation with the inputs provided in locX and store the result in hes, jac and locY.
 
template<typename VecX , typename Jac , typename VecY >
void computeJacobian (VecX const &locX, Jac &jac, VecY &locY)
 Perform a Jacobian evaluation with the inputs provided in locX and store the result in jac and locY.
 
template<typename VecX , typename VecY >
void computePrimal (VecX const &locX, VecY &locY)
 Perform a primal evaluation with the inputs provided in locX and store the result in locY.
 
 EvaluationHandleBase (Func &func, size_t m, size_t n)
 Constructor.
 

Protected Member Functions

template<typename VecX , typename VecY >
void recordTape (VecX const &locX, VecY &locY)
 Helper function that records a new tape.
 
- Protected Member Functions inherited from codi::EvaluationHandleBase< T_Func, T_Type, T_InputStore, T_OutputStore >
void eval ()
 Helper for the evaluation of the function object with the internal input and output vector.
 
template<typename VecY >
void getPrimalOutputs (VecY &locY)
 Store the primal values from the CoDiPack vector into the user vector.
 
template<typename VecX >
void setPrimalInputs (VecX const &locX)
 Set the primal values from the user provided vector into the CoDiPack ones.
 

Protected Attributes

TapeHelper< Typeth
 Manages the evaluations.
 
- Protected Attributes inherited from codi::EvaluationHandleBase< T_Func, T_Type, T_InputStore, T_OutputStore >
DummyJacobian dummyJacobian
 Used if no output is required.
 
DummyVector dummyVector
 Used if no output is required.
 
Funcfunc
 The function object for the evaluations.
 
size_t m
 Size of the output vector.
 
size_t n
 Size of the input vector.
 
InputStore x
 Storage for the input arguments.
 
OutputStore y
 Storage for the output arguments.
 

Detailed Description

template<typename T_Func, typename T_Type, typename T_InputStore = std::vector<T_Type>, typename T_OutputStore = std::vector<T_Type>>
struct codi::EvaluationHandleReverseBase< T_Func, T_Type, T_InputStore, T_OutputStore >

Implementation for reverse mode CoDiPack types of EvaluationHandleBase.

Member Function Documentation

◆ computeHessian()

template<typename T_Func , typename T_Type , typename T_InputStore = std::vector<T_Type>, typename T_OutputStore = std::vector<T_Type>>
template<typename VecX , typename Hes , typename VecY , typename Jac >
void codi::EvaluationHandleReverseBase< T_Func, T_Type, T_InputStore, T_OutputStore >::computeHessian ( VecX const &  locX,
Hes &  hes,
VecY &  locY,
Jac &  jac 
)

Perform a Hessian evaluation with the inputs provided in locX and store the result in hes, jac and locY.

◆ computeJacobian()

template<typename T_Func , typename T_Type , typename T_InputStore = std::vector<T_Type>, typename T_OutputStore = std::vector<T_Type>>
template<typename VecX , typename Jac , typename VecY >
void codi::EvaluationHandleReverseBase< T_Func, T_Type, T_InputStore, T_OutputStore >::computeJacobian ( VecX const &  locX,
Jac &  jac,
VecY &  locY 
)
inline

Perform a Jacobian evaluation with the inputs provided in locX and store the result in jac and locY.

The best mode is selected for the evaluation of the Jacobian. If $ n < m $, the forward mode is used for the Jacobian evaluation and the function object is called $ n/vecSize $ times. If $ m < n $, the reverse mode is used and the function object is called $ m/vecSize $ times.

◆ computePrimal()

template<typename T_Func , typename T_Type , typename T_InputStore = std::vector<T_Type>, typename T_OutputStore = std::vector<T_Type>>
template<typename VecX , typename VecY >
void codi::EvaluationHandleReverseBase< T_Func, T_Type, T_InputStore, T_OutputStore >::computePrimal ( VecX const &  locX,
VecY &  locY 
)
inline

Perform a primal evaluation with the inputs provided in locX and store the result in locY.

◆ getPrimalOutputs()

template<typename T_Func , typename T_Type , typename T_InputStore = std::vector<T_Type>, typename T_OutputStore = std::vector<T_Type>>
template<typename VecY >
void codi::EvaluationHandleReverseBase< T_Func, T_Type, T_InputStore, T_OutputStore >::getPrimalOutputs ( VecY &  locY,
bool  reg 
)
inline

Store the primal values from the CoDiPack vector into the user vector.

◆ setPrimalInputs()

template<typename T_Func , typename T_Type , typename T_InputStore = std::vector<T_Type>, typename T_OutputStore = std::vector<T_Type>>
template<typename VecX >
void codi::EvaluationHandleReverseBase< T_Func, T_Type, T_InputStore, T_OutputStore >::setPrimalInputs ( VecX const &  locX,
bool  reg 
)
inline

Set the primal values from the user provided vector into the CoDiPack ones.


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