[SciPy-user] Need very simple example showing how to return numpy array from C/C++ function

Nathan Bell wnbell at gmail.com
Fri Dec 28 19:57:45 EST 2007


On Dec 28, 2007 6:07 PM, Jeremy Conlin <jeremit0 at gmail.com> wrote:
>
> Now that it works, I wonder how this could be done without copying the data.
> Since a STL vector can also be accessed and treated like an array, could we
> exploit this to avoid copying?  I tried using the function
> PyArray_FromDimsAndData and passing a reference to the first element using
> the same syntax as for memcpy, but I got an error similar to the one I
> previously reported:

Ideally you could pluck out the contiguous memory chunk used by the
STL vector and hand that to numpy.  However I doubt this would work
because the vector probably needs to free its data to a different
allocator (I would assume numpy uses malloc and the STL uses some C++
weirdness).

> I think it would be great to have a simple example like this available to
> the community.  A page on the wiki would probably be best.  I could create
> such a page, but with my limited experience, I'm not sure I would be the
> best person.  I couldn't explain why all the elements in the *.i file are
> necessary.

Agreed.  I'd like to see if anyone else comes up with better ways of
interfacing C++ and scipy.

Matthieu, if you have time you might also include a pointer to these
wrappers for numpy's complex types:
http://projects.scipy.org/scipy/scipy/browser/trunk/scipy/sparse/sparsetools/complex_ops.h



-- 
Nathan Bell wnbell at gmail.com



More information about the SciPy-User mailing list