pinocchio  2.1.3
taylor-expansion.hpp
1 //
2 // Copyright (c) 2018 INRIA
3 //
4 
5 #ifndef __pinocchio_math_taylor_expansion_hpp__
6 #define __pinocchio_math_taylor_expansion_hpp__
7 
8 #include "pinocchio/math/fwd.hpp"
9 #include <limits>
10 
11 namespace pinocchio
12 {
13 
20  template<typename Scalar>
22  {
29  template<int degree>
30  static Scalar precision()
31  {
32  static Scalar value = std::pow(std::numeric_limits<Scalar>::epsilon(),Scalar(1)/Scalar(degree+1));
33  return value;
34  }
35  }; // struct TaylorSeriesExpansion
36 
37 #ifdef PINOCCHIO_WITH_CPPAD_SUPPORT
38 
39  template<typename Scalar>
40  struct TaylorSeriesExpansion< CppAD::AD<Scalar> > : TaylorSeriesExpansion<Scalar>
41  {
43  using Base::precision;
44  };
45 
46 #if defined(PINOCCHIO_WITH_CPPADCG_SUPPORT) && defined(PINOCCHIO_WITH_CXX11_SUPPORT)
47 
48  template<typename Scalar>
49  struct TaylorSeriesExpansion< CppAD::cg::CG<Scalar> > : TaylorSeriesExpansion<Scalar>
50  {
52  using Base::precision;
53  };
54 
55 #endif
56 #endif
57 
58 }
59 
60 #endif // ifndef __pinocchio_math_taylor_expansion_hpp__
Helper struct to retrieve some useful information for a Taylor series expansion according to the a gi...
Source from #include <cppad/example/cppad_eigen.hpp>
Definition: cppad.hpp:98
static Scalar precision()
Computes the expected tolerance of the argument of a Taylor series expansion for a certain degree acc...
Main pinocchio namespace.
Definition: treeview.dox:24