Charles R Harris wrote: > On Tue, Nov 11, 2008 at 2:19 AM, Rolf Wester > <[EMAIL PROTECTED]>wrote: > >> Charles R Harris wrote: >>> On Tue, Nov 11, 2008 at 1:24 AM, Rolf Wester >>> <[EMAIL PROTECTED]>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 >>> [email protected] >>> 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 > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Numpy-discussion mailing list > [email protected] > http://projects.scipy.org/mailman/listinfo/numpy-discussion
It's my own code so I have the choice how to do it. Until now I used the typemaps defined in numpy.i, so I had either to use the 1-dimensional arrays even in case of multidimensional data or to copy the data. I wondered wether there is a more elegant way of using numpy arrays on the python side and TNT::Arrays on the C++ side without having to explicitely write extra code. Rolf -- ------------------------------------ # Dr. Rolf Wester # Fraunhofer Institut f. Lasertechnik # Steinbachstrasse 15, D-52074 Aachen, Germany. # Tel: + 49 (0) 241 8906 401, Fax: +49 (0) 241 8906 121 # EMail: [EMAIL PROTECTED] # WWW: http://www.ilt.fraunhofer.de _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
