mirror of
https://github.com/boostorg/python.git
synced 2026-01-21 05:02:17 +00:00
31 lines
783 B
C++
31 lines
783 B
C++
#include <boost/numpy.hpp>
|
|
|
|
namespace p = boost::python;
|
|
namespace np = boost::numpy;
|
|
|
|
struct UnaryCallable
|
|
{
|
|
typedef double argument_type;
|
|
typedef double result_type;
|
|
|
|
double operator()(double r) const { return r * 2;}
|
|
};
|
|
|
|
struct BinaryCallable
|
|
{
|
|
typedef double first_argument_type;
|
|
typedef double second_argument_type;
|
|
typedef double result_type;
|
|
|
|
double operator()(double a, double b) const { return a * 2 + b * 3;}
|
|
};
|
|
|
|
BOOST_PYTHON_MODULE(ufunc_mod)
|
|
{
|
|
np::initialize();
|
|
p::class_<UnaryCallable, boost::shared_ptr<UnaryCallable> >("UnaryCallable")
|
|
.def("__call__", np::unary_ufunc<UnaryCallable>::make());
|
|
p::class_< BinaryCallable, boost::shared_ptr<BinaryCallable> >("BinaryCallable")
|
|
.def("__call__", np::binary_ufunc<BinaryCallable>::make());
|
|
}
|