Autoware.Auto
autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT > Class Template Reference

#include <optimization_problem.hpp>

Inheritance diagram for autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >:
Collaboration diagram for autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >:

Public Types

using DomainValue = DomainValueT
 
using Value = autoware::common::types::float64_t
 
using Jacobian = Eigen::Matrix< Value, NumVars, NumJacobianCols >
 
using Hessian = Eigen::Matrix< Value, NumVars, NumVars >
 
using JacobianRef = Eigen::Ref< Eigen::Matrix< Value, NumVars, NumJacobianCols > >
 
using HessianRef = Eigen::Ref< Eigen::Matrix< Value, NumVars, NumVars > >
 
- Public Types inherited from autoware::common::optimization::Expression< CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >, DomainValueT, NumJacobianColsT, NumVarsT >
using DomainValue = DomainValueT
 
using Value = autoware::common::types::float64_t
 
using Jacobian = Eigen::Matrix< Value, NumVars, NumJacobianCols >
 
using Hessian = Eigen::Matrix< Value, NumVars, NumVars >
 
using JacobianRef = Eigen::Ref< Jacobian >
 
using HessianRef = Eigen::Ref< Hessian >
 

Public Member Functions

 CachedExpression (const ComparatorT &comparator=ComparatorT())
 
Value score_ (const DomainValue &x)
 
void jacobian_ (const DomainValue &x, JacobianRef out)
 
void hessian_ (const DomainValue &x, HessianRef out)
 
void evaluate (const DomainValue &x, const ComputeMode &mode)
 
- Public Member Functions inherited from autoware::common::optimization::Expression< CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >, DomainValueT, NumJacobianColsT, NumVarsT >
Value operator() (const DomainValue &x)
 
void jacobian (const DomainValue &x, JacobianRef out)
 
void hessian (const DomainValue &x, HessianRef out)
 
void evaluate (const DomainValue &x, const ComputeMode &mode)
 

Static Public Attributes

static constexpr auto NumJacobianCols = NumJacobianColsT
 
static constexpr auto NumVars = NumVarsT
 
- Static Public Attributes inherited from autoware::common::optimization::Expression< CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >, DomainValueT, NumJacobianColsT, NumVarsT >
static constexpr auto NumJacobianCols
 
static constexpr auto NumVars
 

Protected Member Functions

void set_score (Value score)
 
void set_jacobian (const JacobianRef &jacobian)
 
void set_hessian (const HessianRef &hessian)
 
- Protected Member Functions inherited from autoware::common::helper_functions::crtp< CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT > >
const CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT > & impl () const
 
CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT > & impl ()
 

Detailed Description

template<typename Derived, typename DomainValueT, int NumJacobianColsT, int NumVarsT, typename ComparatorT>
class autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >

Expression class for cases when pre-evaluating elements or computing elements together may be more efficient. This class implements the necessary boilerplate to manage the cache state book-keeping. This class implements score_(..), jacobian_(..) and hessian_(..); hence the implementation must only implement evaluate_(..)

Template Parameters
DerivedCRTP implementation class. This class should implement evaluate_().
DomainValueTParameter type.
NumJacobianColsTNumber of columns in the jacobian matrix.
NumVarsTNumber of variables.
ComparatorTComparator function for DomainValueT

Member Typedef Documentation

◆ DomainValue

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
using autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::DomainValue = DomainValueT

◆ Hessian

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
using autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::Hessian = Eigen::Matrix<Value, NumVars, NumVars>

◆ HessianRef

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
using autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::HessianRef = Eigen::Ref<Eigen::Matrix<Value, NumVars, NumVars> >

◆ Jacobian

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
using autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::Jacobian = Eigen::Matrix<Value, NumVars, NumJacobianCols>

◆ JacobianRef

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
using autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::JacobianRef = Eigen::Ref<Eigen::Matrix<Value, NumVars, NumJacobianCols> >

◆ Value

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
using autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::Value = autoware::common::types::float64_t

Constructor & Destructor Documentation

◆ CachedExpression()

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::CachedExpression ( const ComparatorT &  comparator = ComparatorT())
inlineexplicit

Member Function Documentation

◆ evaluate()

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
void autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::evaluate ( const DomainValue x,
const ComputeMode mode 
)
inline

◆ hessian_()

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
void autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::hessian_ ( const DomainValue x,
HessianRef  out 
)
inline

◆ jacobian_()

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
void autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::jacobian_ ( const DomainValue x,
JacobianRef  out 
)
inline

◆ score_()

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
Value autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::score_ ( const DomainValue x)
inline

◆ set_hessian()

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
void autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::set_hessian ( const HessianRef hessian)
inlineprotected

◆ set_jacobian()

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
void autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::set_jacobian ( const JacobianRef jacobian)
inlineprotected

◆ set_score()

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
void autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::set_score ( Value  score)
inlineprotected

Member Data Documentation

◆ NumJacobianCols

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
constexpr auto autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::NumJacobianCols = NumJacobianColsT
staticconstexpr

◆ NumVars

template<typename Derived , typename DomainValueT , int NumJacobianColsT, int NumVarsT, typename ComparatorT >
constexpr auto autoware::common::optimization::CachedExpression< Derived, DomainValueT, NumJacobianColsT, NumVarsT, ComparatorT >::NumVars = NumVarsT
staticconstexpr

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