5 #ifndef __pinocchio_codegen_ccpadcg_hpp__ 
    6 #define __pinocchio_codegen_ccpadcg_hpp__ 
    8 #define PINOCCHIO_WITH_CPPADCG_SUPPORT 
   13 #include <boost/mpl/int.hpp> 
   14 #include <cppad/cg/support/cppadcg_eigen.hpp> 
   26         template<
typename Scalar>
 
   27         struct constant_pi<
CppAD::cg::CG<Scalar>> : constant_pi<Scalar>
 
   34             return CGScalar(constant_pi<Scalar>::get(
n));
 
   37 #if BOOST_VERSION >= 107700 
   38           template<
class T, T value>
 
   39           static inline CGScalar get(
const std::integral_constant<T, value> & 
n)
 
   41             return CGScalar(constant_pi<Scalar>::get(
n));
 
   44           template<
class T, T value>
 
   45           static inline CGScalar get(
const boost::integral_constant<T, value> & 
n)
 
   47             return CGScalar(constant_pi<Scalar>::get(
n));
 
   61     template<
typename Scalar>
 
   64 #if EIGEN_VERSION_AT_LEAST(3, 2, 90) 
   67       static inline Scalar run(
const CppAD::cg::CG<Scalar> & x)
 
   74     template<
typename Scalar>
 
   77 #if EIGEN_VERSION_AT_LEAST(3, 2, 90) 
   80       static inline Scalar run(
const CppAD::AD<CppAD::cg::CG<Scalar>> & x)
 
   82         return CppAD::Value(
x).getValue();
 
   93     template<
class Scalar>
 
  103   template<
typename Scalar>
 
  112       return CGScalar(Base::template precision<degree>());
 
  116   template<
typename NewScalar, 
typename Scalar>
 
  119     static NewScalar 
cast(
const CppAD::cg::CG<Scalar> & cg_value)
 
  121       return static_cast<NewScalar
>(cg_value.getValue());
 
  127 #endif // #ifndef __pinocchio_codegen_ccpadcg_hpp__