1 #ifndef CPPAD_CG_CPPADCG_EIGEN_INCLUDED 2 #define CPPAD_CG_CPPADCG_EIGEN_INCLUDED 18 # include <cppad/cg.hpp> 19 # include <Eigen/Dense> 31 template<
typename Base>
32 struct NumTraits<
CppAD::cg::CG<Base> > {
50 RequireInitialization = 1 ,
62 return CppAD::numeric_limits<CppAD::cg::CG<Base> >::epsilon();
70 return 100. * CppAD::numeric_limits<CppAD::cg::CG<Base> >::epsilon();
77 return CppAD::numeric_limits<CppAD::cg::CG<Base> >::min();
84 return CppAD::numeric_limits<CppAD::cg::CG<Base> >::max();
91 return CppAD::numeric_limits<CppAD::cg::CG<Base> >::digits10;
101 template <
typename Base>
102 struct NumTraits<
CppAD::AD<CppAD::cg::CG<Base> > > {
121 RequireInitialization = 1 ,
133 return CppAD::numeric_limits<CppAD::AD<CGBase> >::epsilon();
141 return 100. * CppAD::numeric_limits<CppAD::AD<CGBase> >::epsilon();
148 return CppAD::numeric_limits<CppAD::AD<CGBase> >::min();
155 return CppAD::numeric_limits<CppAD::AD<CGBase> >::max();
162 return CppAD::numeric_limits<CGBase>::digits10;
171 template<
typename Base,
typename BinOp>
172 struct ScalarBinaryOpTraits<
CppAD::AD<CppAD::cg::CG<Base> >, Base, BinOp> {
176 template<
typename Base,
typename BinOp>
177 struct ScalarBinaryOpTraits<Base,
CppAD::AD<CppAD::cg::CG<Base> >, BinOp> {
181 template<
typename Base,
typename BinOp>
186 template<
typename Base,
typename BinOp>
187 struct ScalarBinaryOpTraits<
CppAD::cg::CG<Base>,
CppAD::AD<CppAD::cg::CG<Base> >, BinOp> {
196 template<
typename Base,
typename BinOp>
197 struct ScalarBinaryOpTraits<
CppAD::cg::CG<Base>, Base, BinOp> {
201 template<
typename Base,
typename BinOp>
202 struct ScalarBinaryOpTraits<Base,
CppAD::cg::CG<Base>, BinOp> {
216 template <
class Base>
221 template <
class Base>
227 template <
class Base>
232 template <
class Base>
242 template <
class Base>
247 template <
class Base>
253 template <
class Base>
258 template <
class Base>
static CppAD::cg::CG< Base > highest()
static CppAD::AD< CGBase > dummy_precision()
static CppAD::cg::CG< Base > dummy_precision()
static CppAD::AD< CGBase > lowest()
static CppAD::AD< CGBase > epsilon()
static CppAD::cg::CG< Base > lowest()
static CppAD::AD< CGBase > highest()
static CppAD::cg::CG< Base > epsilon()