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);