complex number support

This commit is contained in:
Wenzel Jakob
2015-07-28 16:12:20 +02:00
parent d4258bafef
commit 43398a8548
6 changed files with 88 additions and 28 deletions

View File

@@ -15,14 +15,19 @@ double my_func(int x, float y, double z) {
return x*y*z;
}
std::complex<double> my_func3(std::complex<double> c) {
return c * std::complex<double>(2.f);
}
void init_ex10(py::module &m) {
// Vectorize all arguments (though non-vector arguments are also allowed)
m.def("vectorized_func", py::vectorize(my_func));
// Vectorize a lambda function with a capture object (e.g. to exclude some arguments from the vectorization)
m.def("vectorized_func2",
[](py::array_dtype<int> x, py::array_dtype<float> y, float z) {
return py::vectorize([z](int x, float y) { return my_func(x, y, z); })(x, y);
}
);
// Vectorize all arguments (complex numbers)
m.def("vectorized_func3", py::vectorize(my_func3));
}