98 .def(bp::init<>(bp::arg(
"self"),
"Default constructor"))
99 .def(bp::init<Scalar>(bp::args(
"self",
"value"),
100 std::string(
"Constructor from a ").append(bp::type_id<Scalar>().name()).c_str()))
101 .def(bp::init<CG>(bp::args(
"self",
"other"),
"Copy constructor"))
102 .def(
"isIdenticalZero", &CG::isIdenticalZero, bp::arg(
"self"))
103 .def(
"isIdenticalOne", &CG::isIdenticalOne, bp::arg(
"self"))
104 .def(
"isValueDefined", &CG::isValueDefined, bp::arg(
"self"))
105 .def(
"isParameter", &CG::isParameter, bp::arg(
"self"))
106 .def(
"isVariable", &CG::isVariable, bp::arg(
"self"))
108 .def(bp::self + bp::self)
109 .def(bp::self - bp::self)
110 .def(bp::self * bp::self)
111 .def(bp::self / bp::self)
112 .def(bp::self += bp::self)
114#pragma GCC diagnostic push
115#pragma GCC diagnostic ignored "-Wself-assign-overloaded"
117 .def(bp::self /= bp::self)
118 .def(bp::self -= bp::self)
120#pragma GCC diagnostic pop
122 .def(bp::self *= bp::self)
123 .add_property(
"value",
124 bp::make_function(&CG::getValue,
125 bp::return_value_policy<bp::copy_const_reference>()),
127 .def(
"__str__",&print)
128 .def(
"__repr__",&print)
129 .add_property(
"__float__",
130 bp::make_function(&CG::getValue,
131 bp::return_value_policy<bp::copy_const_reference>()),
161 static void expose(
const std::string & class_name =
"CG")
164 bp::class_<CG>(class_name.c_str(),
165 std::string(
"CG type corresponding to the scalar type ").append(bp::type_id<Scalar>().name()).c_str(),
169 eigenpy::registerNewType<CG>();
170 eigenpy::registerCommonUfunc<CG>();
172 eigenpy::registerCast<CG,double>(
false);
173 eigenpy::registerCast<double,CG>(
true);
174 eigenpy::registerCast<CG,float>(
false);
175 eigenpy::registerCast<float,CG>(
true);
176 eigenpy::registerCast<CG,long>(
false);
177 eigenpy::registerCast<long,CG>(
true);
178 eigenpy::registerCast<CG,int>(
false);
179 eigenpy::registerCast<int,CG>(
true);