gtsam  3.2.1
gtsam
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
numericalDerivative.h File Reference

Some functions to compute numerical derivatives. More...

Go to the source code of this file.

Classes

class  gtsam::G_x1< X1, X2 >
 Helper class that computes the derivative of f w.r.t. More...
 

Namespaces

 gtsam
 Global functions in a separate testing namespace.
 

Functions

LieVector gtsam::makeLieVector (const Vector &v)
 global functions for converting to a LieVector for use with numericalDerivative
 
LieVector gtsam::makeLieVectorD (double d)
 
template<class X >
Vector gtsam::numericalGradient (boost::function< double(const X &)> h, const X &x, double delta=1e-5)
 Numerically compute gradient of scalar function Class X is the input argument The class X needs to have dim, expmap, logmap.
 
template<class X >
Vector gtsam::numericalGradient (double(*h)(const X &), const X &x, double delta=1e-5)
 
template<class Y , class X >
Matrix gtsam::numericalDerivative11 (boost::function< Y(const X &)> h, const X &x, double delta=1e-5)
 Compute numerical derivative in argument 1 of unary function. More...
 
template<class Y , class X >
Matrix gtsam::numericalDerivative11 (Y(*h)(const X &), const X &x, double delta=1e-5)
 use a raw C++ function pointer
 
template<class X >
Matrix gtsam::numericalDerivative11 (double(*h)(const X &), const X &x, double delta=1e-5)
 remapping for double valued functions
 
template<class X >
Matrix gtsam::numericalDerivative11 (boost::function< Vector(const X &)> h, const X &x, double delta=1e-5)
 remapping for vector valued functions
 
template<class X >
Matrix gtsam::numericalDerivative11 (Vector(*h)(const X &), const X &x, double delta=1e-5)
 
template<class Y , class X1 , class X2 >
Matrix gtsam::numericalDerivative21 (boost::function< Y(const X1 &, const X2 &)> h, const X1 &x1, const X2 &x2, double delta=1e-5)
 Compute numerical derivative in argument 1 of binary function. More...
 
template<class Y , class X1 , class X2 >
Matrix gtsam::numericalDerivative21 (Y(*h)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 use a raw C++ function pointer
 
template<class X1 , class X2 >
Matrix gtsam::numericalDerivative21 (boost::function< double(const X1 &, const X2 &)> h, const X1 &x1, const X2 &x2, double delta=1e-5)
 pseudo-partial template specialization for double return values
 
template<class X1 , class X2 >
Matrix gtsam::numericalDerivative21 (double(*h)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
Matrix gtsam::numericalDerivative21 (boost::function< Vector(const X1 &, const X2 &)> h, const X1 &x1, const X2 &x2, double delta=1e-5)
 pseudo-partial template specialization for vector return values
 
template<class X1 , class X2 >
Matrix gtsam::numericalDerivative21 (Vector(*h)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class Y , class X1 , class X2 >
Matrix gtsam::numericalDerivative22 (boost::function< Y(const X1 &, const X2 &)> h, const X1 &x1, const X2 &x2, double delta=1e-5)
 Compute numerical derivative in argument 2 of binary function. More...
 
template<class Y , class X1 , class X2 >
Matrix gtsam::numericalDerivative22 (Y(*h)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 use a raw C++ function pointer
 
template<class X1 , class X2 >
Matrix gtsam::numericalDerivative22 (boost::function< double(const X1 &, const X2 &)> h, const X1 &x1, const X2 &x2, double delta=1e-5)
 pseudo-partial template specialization for double return values
 
template<class X1 , class X2 >
Matrix gtsam::numericalDerivative22 (double(*h)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
Matrix gtsam::numericalDerivative22 (boost::function< Vector(const X1 &, const X2 &)> h, const X1 &x1, const X2 &x2, double delta=1e-5)
 pseudo-partial template specialization for vector return values
 
template<class X1 , class X2 >
Matrix gtsam::numericalDerivative22 (Vector(*h)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative31 (boost::function< Y(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 Compute numerical derivative in argument 1 of ternary function. More...
 
template<class Y , class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative31 (Y(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative31 (boost::function< double(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 pseudo-partial template specialization for double return values
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative31 (double(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative31 (boost::function< Vector(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 pseudo-partial template specialization for vector return values
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative31 (Vector(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative32 (boost::function< Y(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 Compute numerical derivative in argument 2 of ternary function. More...
 
template<class Y , class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative32 (Y(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative32 (boost::function< double(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 pseudo-partial template specialization for double return values
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative32 (double(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative32 (boost::function< Vector(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 pseudo-partial template specialization for vector return values
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative32 (Vector(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class Y , class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative33 (boost::function< Y(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 Compute numerical derivative in argument 3 of ternary function. More...
 
template<class Y , class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative33 (Y(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative33 (boost::function< double(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 pseudo-partial template specialization for double return values
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative33 (double(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative33 (boost::function< Vector(const X1 &, const X2 &, const X3 &)> h, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 pseudo-partial template specialization for vector return values
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalDerivative33 (Vector(*h)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X >
Matrix gtsam::numericalHessian (boost::function< double(const X &)> f, const X &x, double delta=1e-5)
 Compute numerical Hessian matrix. More...
 
template<class X >
Matrix gtsam::numericalHessian (double(*f)(const X &), const X &x, double delta=1e-5)
 
template<class X1 , class X2 >
Matrix gtsam::numericalHessian212 (boost::function< double(const X1 &, const X2 &)> f, const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
Matrix gtsam::numericalHessian212 (double(*f)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
Matrix gtsam::numericalHessian211 (boost::function< double(const X1 &, const X2 &)> f, const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
Matrix gtsam::numericalHessian211 (double(*f)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
Matrix gtsam::numericalHessian222 (boost::function< double(const X1 &, const X2 &)> f, const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 >
Matrix gtsam::numericalHessian222 (double(*f)(const X1 &, const X2 &), const X1 &x1, const X2 &x2, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian311 (boost::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 Numerical Hessian for tenary functions.
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian311 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian322 (boost::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian322 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian333 (boost::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian333 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian312 (boost::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian313 (boost::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian323 (boost::function< double(const X1 &, const X2 &, const X3 &)> f, const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian312 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian313 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 
template<class X1 , class X2 , class X3 >
Matrix gtsam::numericalHessian323 (double(*f)(const X1 &, const X2 &, const X3 &), const X1 &x1, const X2 &x2, const X3 &x3, double delta=1e-5)
 

Detailed Description

Some functions to compute numerical derivatives.

Author
Frank Dellaert