30      .def(bp::init<>(bp::arg(
"self"),
"Default constructor"))
 
   31      .def(bp::init<Scalar>(bp::args(
"self",
"value"),
 
   32                            std::string(
"Constructor from a ").
append(bp::type_id<Scalar>().
name()).
c_str()))
 
   33      .def(bp::init<AD>(bp::args(
"self",
"other"),
"Copy constructor"))
 
   34      .def(bp::self + bp::self)
 
   35      .def(bp::self - bp::self)
 
   36      .def(bp::self * bp::self)
 
   37      .def(bp::self / bp::self)
 
   38      .def(bp::self += bp::self)
 
   40#pragma GCC diagnostic push 
   41#pragma GCC diagnostic ignored "-Wself-assign-overloaded" 
   43      .def(bp::self /= bp::self)
 
   44      .def(bp::self -= bp::self) 
 
   46#pragma GCC diagnostic pop 
   48      .def(bp::self *= bp::self)
 
   50      .def(
"abs_me", &AD::abs_me, bp::arg(
"self"))
 
   51      .def(
"acos_me", &AD::acos_me, bp::arg(
"self"))
 
   52      .def(
"asin_me", &AD::asin_me, bp::arg(
"self"))
 
   53      .def(
"atan_me", &AD::atan_me, bp::arg(
"self"))
 
   54      .def(
"cos_me", &AD::cos_me, bp::arg(
"self"))
 
   55      .def(
"cosh_me", &AD::cosh_me, bp::arg(
"self"))
 
   56      .def(
"exp_me", &AD::exp_me, bp::arg(
"self"))
 
   57      .def(
"fabs_me", &AD::fabs_me, bp::arg(
"self"))
 
   58      .def(
"log_me", &AD::log_me, bp::arg(
"self"))
 
   59      .def(
"sin_me", &AD::sin_me, bp::arg(
"self"))
 
   60      .def(
"sign_me", &AD::sign_me, bp::arg(
"self"))
 
   61      .def(
"sinh_me", &AD::sinh_me, bp::arg(
"self"))
 
   62      .def(
"sqrt_me", &AD::sqrt_me, bp::arg(
"self"))
 
   63      .def(
"tan_me", &AD::tan_me, bp::arg(
"self"))
 
   64      .def(
"tanh_me", &AD::tanh_me, bp::arg(
"self"))
 
   65      .def(
"asinh_me", &AD::asinh_me, bp::arg(
"self"))
 
   66      .def(
"acosh_me", &AD::acosh_me, bp::arg(
"self"))
 
   67      .def(
"atanh_me", &AD::atanh_me, bp::arg(
"self"))
 
   68      .def(
"erf_me", &AD::erf_me, bp::args(
"self",
"complement"))
 
   69      .def(
"expm1_me", &AD::expm1_me, bp::arg(
"self"))
 
   70      .def(
"log1p_me", &AD::log1p_me, bp::arg(
"self"))
 
   72      .def(
"__str__",&print)
 
   73      .def(
"__repr__",&print)
 
   75      .def(
"__float__",&::CppAD::Value<Scalar>)
 
 
  109                     std::string(
"AD type corresponding to the scalar type ").append(bp::type_id<Scalar>().name()).c_str(),
 
  113      bp::def(
"Value",&::CppAD::Value<Scalar>,
 
  115              "Conversion from AD to Base type");
 
  117      eigenpy::registerNewType<AD>();
 
  118      eigenpy::registerCommonUfunc<AD>();
 
  120      eigenpy::registerCast<AD,double>(
false);
 
  121      eigenpy::registerCast<double,AD>(
true);
 
  122      eigenpy::registerCast<AD,float>(
false);
 
  123      eigenpy::registerCast<float,AD>(
true);
 
  124      eigenpy::registerCast<AD,long>(
false);
 
  125      eigenpy::registerCast<long,AD>(
true);
 
  126      eigenpy::registerCast<AD,int>(
false);
 
  127      eigenpy::registerCast<int,AD>(
true);