Typedefs | Functions
Marmot::AutomaticDifferentiation Namespace Reference

Typedefs

using scalar_to_scalar_function_type = std::function< dual(const dual &) >
 
using scalar_to_scalar_function_type_2nd = std::function< dual2nd(const dual2nd &) >
 
using vector_to_vector_function_type = std::function< VectorXdual(const VectorXdual &X) >
 
using vector_to_vector_function_type_dual = std::function< VectorXdual(const VectorXdual &X) >
 
using vector_to_vector_function_type_dual2nd = std::function< VectorXdual2nd(const VectorXdual2nd &X) >
 

Functions

dual2nd shiftTo2ndOrderDual (const dual &x)
 
VectorXdual2nd shiftTo2ndOrderDual (const VectorXdual &X)
 
template<size_t order, typename T , typename G >
auto & valnode (const Dual< T, G > &dual)
 
template<size_t order, typename T , typename G >
auto & valnode (Dual< T, G > &dual)
 
template<size_t order>
autodiff::HigherOrderDual< order+1, double > increaseDualOrderWithShift (const autodiff::HigherOrderDual< order, double > &in)
 
template<size_t order>
autodiff::HigherOrderDual< order - 1, double > decreaseDualOrderWithShift (autodiff::HigherOrderDual< order, double > &in)
 
template<size_t order>
Vector< HigherOrderDual< order+1, double >, -1 > increaseDualOrderWithShift (const Vector< HigherOrderDual< order, double >, -1 > &in)
 
double df_dx (const scalar_to_scalar_function_type &f, const double &x)
 
dual df_dx (const scalar_to_scalar_function_type_2nd &f, const dual &x)
 
MatrixXd forwardMode (const vector_to_vector_function_type &F, const VectorXd &X)
 
std::pair< VectorXd, MatrixXd > jacobian (const vector_to_vector_function_type_dual &F, const VectorXd &X)
 
std::pair< VectorXdual, MatrixXdual > jacobian2nd (const vector_to_vector_function_type_dual2nd &F, const VectorXdual &X)
 

Typedef Documentation

◆ scalar_to_scalar_function_type

using Marmot::AutomaticDifferentiation::scalar_to_scalar_function_type = typedef std::function< dual( const dual& ) >

◆ scalar_to_scalar_function_type_2nd

using Marmot::AutomaticDifferentiation::scalar_to_scalar_function_type_2nd = typedef std::function< dual2nd( const dual2nd& ) >

◆ vector_to_vector_function_type

using Marmot::AutomaticDifferentiation::vector_to_vector_function_type = typedef std::function< VectorXdual( const VectorXdual& X ) >

◆ vector_to_vector_function_type_dual

using Marmot::AutomaticDifferentiation::vector_to_vector_function_type_dual = typedef std::function< VectorXdual( const VectorXdual& X ) >

◆ vector_to_vector_function_type_dual2nd

using Marmot::AutomaticDifferentiation::vector_to_vector_function_type_dual2nd = typedef std::function< VectorXdual2nd( const VectorXdual2nd& X ) >

Function Documentation

◆ shiftTo2ndOrderDual() [1/2]

dual2nd Marmot::AutomaticDifferentiation::shiftTo2ndOrderDual ( const dual &  x)

◆ shiftTo2ndOrderDual() [2/2]

VectorXdual2nd Marmot::AutomaticDifferentiation::shiftTo2ndOrderDual ( const VectorXdual &  X)

◆ valnode() [1/2]

template<size_t order, typename T , typename G >
auto& Marmot::AutomaticDifferentiation::valnode ( const Dual< T, G > &  dual)

◆ valnode() [2/2]

template<size_t order, typename T , typename G >
auto& Marmot::AutomaticDifferentiation::valnode ( Dual< T, G > &  dual)

◆ increaseDualOrderWithShift() [1/2]

template<size_t order>
autodiff::HigherOrderDual< order + 1, double > Marmot::AutomaticDifferentiation::increaseDualOrderWithShift ( const autodiff::HigherOrderDual< order, double > &  in)

◆ decreaseDualOrderWithShift()

template<size_t order>
autodiff::HigherOrderDual< order - 1, double > Marmot::AutomaticDifferentiation::decreaseDualOrderWithShift ( autodiff::HigherOrderDual< order, double > &  in)

◆ increaseDualOrderWithShift() [2/2]

template<size_t order>
Vector< HigherOrderDual< order + 1, double >, -1 > Marmot::AutomaticDifferentiation::increaseDualOrderWithShift ( const Vector< HigherOrderDual< order, double >, -1 > &  in)

◆ df_dx() [1/2]

double Marmot::AutomaticDifferentiation::df_dx ( const scalar_to_scalar_function_type f,
const double &  x 
)

◆ df_dx() [2/2]

dual Marmot::AutomaticDifferentiation::df_dx ( const scalar_to_scalar_function_type_2nd f,
const dual &  x 
)

◆ forwardMode()

MatrixXd Marmot::AutomaticDifferentiation::forwardMode ( const vector_to_vector_function_type F,
const VectorXd &  X 
)

◆ jacobian()

std::pair< VectorXd, MatrixXd > Marmot::AutomaticDifferentiation::jacobian ( const vector_to_vector_function_type_dual F,
const VectorXd &  X 
)

◆ jacobian2nd()

std::pair< VectorXdual, MatrixXdual > Marmot::AutomaticDifferentiation::jacobian2nd ( const vector_to_vector_function_type_dual2nd F,
const VectorXdual &  X 
)