6 #ifndef __math_sincos_hpp__ 7 #define __math_sincos_hpp__ 9 #include "pinocchio/fwd.hpp" 27 template<
typename Scalar>
28 void SINCOS(
const Scalar & a, Scalar * sa, Scalar * ca)
34 template<
typename Scalar>
37 static void run(
const Scalar & a, Scalar * sa, Scalar * ca)
39 (*sa) = std::sin(a); (*ca) = std::cos(a);
47 static void run(
const double & a,
double * sa,
double * ca)
53 #else // if sincos specialization does not exist 54 (*sa) = std::sin(a); (*ca) = std::cos(a);
63 static void run(
const float & a,
float * sa,
float * ca)
69 #else // if sincosf specialization does not exist 70 (*sa) = std::sin(a); (*ca) = std::cos(a);
79 static void run(
const long double & a,
long double * sa,
long double * ca)
83 #else // if sincosl specialization does not exist 84 (*sa) = std::sin(a); (*ca) = std::cos(a);
89 #ifdef PINOCCHIO_WITH_CPPAD_SUPPORT 92 template<
typename Scalar>
95 static void run(
const CppAD::AD<Scalar> & a, CppAD::AD<Scalar> * sa, CppAD::AD<Scalar> * ca)
97 (*sa) = CppAD::sin(a); (*ca) = CppAD::cos(a);
105 #endif //#ifndef __math_sincos_hpp__
void SINCOS(const Scalar &a, Scalar *sa, Scalar *ca)
Computes sin/cos values of a given input scalar.
Source from #include <cppad/example/cppad_eigen.hpp>
Main pinocchio namespace.