Jason Newton wrote: > I just wanted to follow up on the C++ side of OP email - Cython has quite > a > few difficulties working with C++ code at the moment. It's really more of > a C solution most of the time and you must split things up into a mostly C > call interface (that is the C code Cython can call) and limit > exposure/complications with templates and complex C++11+ constructs. > This may change in the longer term but in the near, that is the state. > > I used to use Boost.Python but I'm getting my feet wet with Pybind (which > is basically the same api but works more as you expect it to with it's > signature/type plumbing (including std::shared_ptr islanding), with some > other C++11 based improvements, and is header only + submodule friendly!). > I also remembered ndarray thanks to Neal's post but I haven't figured out > how to leverage it better than pybind, at the moment. I'd be interested > to see ndarray gain support for pybind interoperability... > > -Jason > > On Wed, Aug 31, 2016 at 1:08 PM, David Morris <otha...@othalan.net> wrote: > >> On Wed, Aug 31, 2016 at 2:28 PM, Michael Bieri <mibi...@gmail.com> wrote: >> >>> Hi all >>> >>> There are several ways on how to use C/C++ code from Python with NumPy, >>> as given in http://docs.scipy.org/doc/numpy/user/c-info.html . >>> Furthermore, there's at least pybind11. >>> >>> I'm not quite sure which approach is state-of-the-art as of 2016. How >>> would you do it if you had to make a C/C++ library available in Python >>> right now? >>> >>> In my case, I have a C library with some scientific functions on >>> matrices and vectors. You will typically call a few functions to >>> configure the computation, then hand over some pointers to existing >>> buffers containing vector data, then start the computation, and finally >>> read back the data. The library also can use MPI to parallelize. >>> >> >> I have been delighted with Cython for this purpose. Great integration >> with NumPy (you can access numpy arrays directly as C arrays), very >> python like syntax and amazing performance. >> >> Good luck, >> >> David >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@scipy.org >> https://mail.scipy.org/mailman/listinfo/numpy-discussion >> >>
pybind11 looks very nice. My problem is that the numpy API exposed by pybind11 is fairly weak at this point, as far as I can see from the docs. ndarray exposes a lot of functionality through the Array object, including convenient indexing and slicing. AFAICT, the interface in pybind11 is pretty low level - just pointers. There is also some functionality exposed by pybind11 using eigen. Personally, I find eigen rather baroque, and only use it when I see no alternative. _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion