30 #ifndef TOON_FADBAD_INTEGATION_H
31 #define TOON_FADBAD_INTEGATION_H
39 #include <FADBAD++/fadiff.h>
44 inline std::ostream & operator<<( std::ostream & out, const F<P> & val ){
45 return out << val.val();
54 static const int value = numeric_limits<C>::is_specialized;
61 for(
int i = start; i < min(size, start+N); ++i)
62 result[i].diff(i,size);
69 for(
int i = 0; i < N; ++i)
70 r[i] = val[i].deriv(D);
74 template <
int N,
int D>
77 for(
int i = 0; i < D; ++i)
82 template <
int R,
int C>
85 for(
int r = 0; r < R; ++r)
86 for(
int c = 0; c < C; ++c)
87 result[r][c] = val[r][c].deriv(D);
106 fadbad::F<double> r = 0.0;
129 #endif // TOON_FADBAD_INTEGATION_H
SO2< fadbad::F< double > > make_left_fad_so2(const SO2< double > &r)
static const int value
Is C a field?
SE3< fadbad::F< double > > make_left_fad_se3(const SE3< double > &t)
SO3< fadbad::F< double > > make_left_fad_so3(const SO3< double > &r)
Matrix< N, D, double > get_jacobian(const Vector< N, fadbad::F< double > > &val)
Everything lives inside this namespace.
Vector< N, fadbad::F< double > > make_fad_vector(const Vector< N, double > &val, const int start=0, const int size=N)
Vector< N, double > get_derivative(const Vector< N, fadbad::F< double > > &val, const int D)
SE2< fadbad::F< double > > make_left_fad_se2(const SE2< double > &t)
SE3< fadbad::F< double > > make_fad_se3()
SO2< fadbad::F< double > > make_fad_so2()
SE2< fadbad::F< double > > make_fad_se2()
Vector< 1 > makeVector(double x1)
SO3< fadbad::F< double > > make_fad_so3()