Go to the documentation of this file.
5 #ifndef __pinocchio_autodiff_cppad_hpp__
6 #define __pinocchio_autodiff_cppad_hpp__
9 #define PINOCCHIO_WITH_CPPAD_SUPPORT
16 #define EIGEN_MATRIXBASE_PLUGIN <pinocchio/autodiff/cppad/math/eigen_plugin.hpp>
18 #include <boost/mpl/int.hpp>
19 #include <cppad/cppad.hpp>
20 #include <Eigen/Dense>
30 template<
typename Scalar>
31 struct constant_pi<
CppAD::AD<Scalar>> : constant_pi<Scalar>
38 return ADScalar(constant_pi<Scalar>::get(
n));
41 #if BOOST_VERSION >= 107700
42 template<
class T, T value>
43 static inline ADScalar get(
const std::integral_constant<T, value> &
n)
45 return ADScalar(constant_pi<Scalar>::get(
n));
48 template<
class T, T value>
49 static inline ADScalar get(
const boost::integral_constant<T, value> &
n)
51 return ADScalar(constant_pi<Scalar>::get(
n));
65 template<
typename Scalar>
68 #if EIGEN_VERSION_AT_LEAST(3, 2, 90)
71 static inline Scalar run(
const CppAD::AD<Scalar> & x)
73 return CppAD::Value(
x);
83 struct NumTraits<
CppAD::AD<Base>>
85 typedef CppAD::AD<Base>
Real;
102 RequireInitialization = 1,
113 return CppAD::numeric_limits<CppAD::AD<Base>>::epsilon();
120 return 100. * CppAD::numeric_limits<CppAD::AD<Base>>::epsilon();
126 return CppAD::numeric_limits<CppAD::AD<Base>>
::min();
132 return CppAD::numeric_limits<CppAD::AD<Base>>
::max();
138 return CppAD::numeric_limits<CppAD::AD<Base>>::digits10;
150 const AD<Base> &
conj(
const AD<Base> & x)
155 const AD<Base> &
real(
const AD<Base> & x)
162 AD<Base>
imag(
const AD<Base> & )
164 return CppAD::AD<Base>(0.);
167 AD<Base>
abs2(
const AD<Base> & x)
172 template<
typename Scalar>
173 AD<Scalar>
min(
const AD<Scalar> & x,
const AD<Scalar> & y)
180 template<
typename Scalar>
181 AD<Scalar>
max(
const AD<Scalar> & x,
const AD<Scalar> & y)
191 template<
class Scalar>
202 template<
typename Scalar>
211 return ADScalar(Base::template precision<degree>());
215 template<
typename Scalar,
typename ADScalar>
220 return scalar_cast<Scalar>(CppAD::Value(
value));
227 #include "pinocchio/autodiff/cppad/spatial/log.hxx"
232 #endif // #ifndef __pinocchio_autodiff_cppad_hpp__
static ADScalar precision()
AD< Base > imag(const AD< Base > &)
bool isfinite(const AD< Scalar > &x)
static CppAD::AD< Base > lowest(void)
static ADScalar get(const mpl::int_< N > &n)
if_then_else_impl< LhsType, RhsType, ThenType, ElseType >::ReturnType if_then_else(const ComparisonOperators op, const LhsType &lhs_value, const RhsType &rhs_value, const ThenType &then_value, const ElseType &else_value)
AD< Base > abs2(const AD< Base > &x)
static Scalar cast(const CppAD::AD< ADScalar > &value)
static CppAD::AD< Base > dummy_precision(void)
static CppAD::AD< Base > epsilon(void)
CppAD::AD< Scalar > ADScalar
CppAD::AD< Base > NonInteger
CppAD::AD< Scalar > ADScalar
static int digits10(void)
static Scalar run(const CppAD::AD< Scalar > &x)
const AD< Base > & conj(const AD< Base > &x)
const AD< Base > & real(const AD< Base > &x)
static ADScalar get(const boost::integral_constant< T, value > &n)
static CppAD::AD< Base > highest(void)
AD< Scalar > min(const AD< Scalar > &x, const AD< Scalar > &y)
AD< Scalar > max(const AD< Scalar > &x, const AD< Scalar > &y)
CppAD::AD< Base > Literal
TaylorSeriesExpansion< Scalar > Base
#define EIGEN_DEVICE_FUNC
Cast scalar type from type FROM to type TO.
Main pinocchio namespace.
pinocchio
Author(s):
autogenerated on Fri Nov 1 2024 02:41:43