[Numpy-discussion] numpy, swig and TNT-Arrays

Charles R Harris charlesr.harris at gmail.com
Tue Nov 11 05:13:47 EST 2008


On Tue, Nov 11, 2008 at 2:19 AM, Rolf Wester
<rolf.wester at ilt.fraunhofer.de>wrote:

> Charles R Harris wrote:
> > On Tue, Nov 11, 2008 at 1:24 AM, Rolf Wester
> > <rolf.wester at ilt.fraunhofer.de>wrote:
> >
> >> Hi all,
> >>
> >> I would like to wrap some C++ classes that use TNT-Arrays. Is it
> >> possible to pass numpy arrays to C++ functions that expect TNT-Arrays as
> >> function parameter? Does anybody know how the wrappers could be
> >> generated using swig? I would be very appreciative for any help.
> >>
> >> With kind regards
> >>
> >
> > IIRC, TNT does vectors and matrices, they have constructors, and they are
> > contiguous. I think you can make wrappers, but it isn't going to be
> anything
> > straight forward unless you can reuse the memory from a numpy array and I
> > don't recall that that sort of constructor is available.
> >
> > Is TNT still active? It looked pretty dead last time I looked several
> years
> > ago.
> >
> > Chuck
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Numpy-discussion mailing list
> > Numpy-discussion at scipy.org
> > http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
> TNT has constructors like:
>
> TNT::Array1D<double>(int n, double * data)
>
> which do not allocate a new C-array but that use "data" as their
> data-array.
>

I don't think there is any easy way to do what you want without writing some
code somewhere along the line. You can expose the C++ functions and TNT to
python, but to use numpy arrays you will need some way to get the data back
and forth between TNT arrays and numpy arrays. I suspect you will end up
just copying data into TNT arrays, calling your function,  and then copying
data back out of the result. Cython might be an alternative to swig for
that.

It would help to have a better idea of what you want to do. Do you just want
to wrap an existing bunch of functions that use TNT?

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20081111/8562b4b0/attachment.html>


More information about the NumPy-Discussion mailing list