10 #ifndef EIGEN_AUTODIFF_JACOBIAN_H 11 #define EIGEN_AUTODIFF_JACOBIAN_H 25 template<
typename T0,
typename T1>
27 template<
typename T0,
typename T1,
typename T2>
31 InputsAtCompileTime = Functor::InputsAtCompileTime,
32 ValuesAtCompileTime = Functor::ValuesAtCompileTime
35 typedef typename Functor::InputType InputType;
36 typedef typename Functor::ValueType ValueType;
37 typedef typename Functor::JacobianType JacobianType;
39 typedef typename JacobianType::Index Index;
48 void operator() (
const InputType& x, ValueType* v, JacobianType* _jac=0)
const 53 Functor::operator()(x, v);
57 JacobianType& jac = *_jac;
59 ActiveInput ax = x.template cast<ActiveScalar>();
60 ActiveValue av(jac.rows());
62 if(InputsAtCompileTime==
Dynamic)
63 for (Index j=0; j<jac.rows(); j++)
64 av[j].derivatives().resize(this->inputs());
66 for (Index i=0; i<jac.cols(); i++)
67 ax[i].derivatives() = DerivativeType::Unit(this->inputs(),i);
69 Functor::operator()(ax, &av);
71 for (Index i=0; i<jac.rows(); i++)
73 (*v)[i] = av[i].value();
74 jac.row(i) = av[i].derivatives();
83 #endif // EIGEN_AUTODIFF_JACOBIAN_H Definition: AutoDiffJacobian.h:16
Definition: NonLinearOptimization.cpp:107
A scalar type replacement with automatic differentation capability.
Definition: AutoDiffScalar.h:60
iterative scaling algorithm to equilibrate rows and column norms in matrices
Definition: TestIMU_Common.h:87
const int Dynamic
This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is stored in some runtime variable.
Definition: Constants.h:21
The matrix class, also used for vectors and row-vectors.
Definition: Matrix.h:127
double Scalar
Common scalar type.
Definition: FlexibleKalmanBase.h:48