15 py::print(
"my_func(x:int={}, y:float={:.0f}, z:float={:.0f})"_s.format(x, y, z));
20 try { py::module::import(
"numpy"); }
21 catch (...) {
return; }
28 m.def(
"vectorized_func2",
36 [](std::complex<double> c) {
return c * std::complex<double>(2.f); }
43 m.def(
"selective_func", [](
py::array_t<std::complex<float>, py::array::c_style>) {
return "Complex float branch taken."; });
50 NonPODClass(
int v) :
value{v} {}
55 [](
double *a,
double b,
py::array_t<double> c,
const int &
d,
int &e, NonPODClass f,
const double g) {
56 return *a + b + c.at(0) + d + e + f.value + g;
61 struct VectorizeTestClass {
62 VectorizeTestClass(
int v) :
value{v} {};
63 float method(
int x,
float y) {
return y + (float) (x +
value); }
67 vtc .
def(py::init<int>())
76 .
value(
"f_trivial", py::detail::broadcast_trivial::f_trivial)
77 .value(
"c_trivial", py::detail::broadcast_trivial::c_trivial)
78 .value(
"non_trivial", py::detail::broadcast_trivial::non_trivial);
79 m.
def(
"vectorized_is_trivial", [](
85 std::vector<ssize_t> shape;
86 std::array<py::buffer_info, 3>
buffers {{ arg1.request(), arg2.request(), arg3.request() }};
double my_func(int x, float y, double z)
Binds C++ enumerations and enumeration classes to Python.
test_initializer numpy_vectorize("numpy_vectorize", test_submodule_numpy_vectorize)
test_initializer buffers("buffers", test_submodule_buffers)
detail::vectorize_helper< Return(*)(Args...), Return, Args... > vectorize(Return(*f)(Args ...))
broadcast_trivial broadcast(const std::array< buffer_info, N > &buffers, ssize_t &ndim, std::vector< ssize_t > &shape)
void print(Args &&...args)
#define TEST_SUBMODULE(name, variable)
bool typename Extra class_ & def(const char *name_, Func &&f, const Extra &... extra)