Gael Varoquaux wrote: > On Wed, Jul 25, 2007 at 04:44:08PM +0200, Stefan van der Walt wrote: >> On Wed, Jul 25, 2007 at 03:41:37PM +0200, Gael Varoquaux wrote: >>> On Wed, Jul 25, 2007 at 06:38:55AM -0700, Ray Schumacher wrote: >>>> The codeGenerator is magic, if you ask me: >>>> http://starship.python.net/crew/theller/ctypes/old/codegen.html > >>> Can it wrap code passing around arrays ? If so it really does magic that >>> I don't understand. > >> If your array is contiguous, it really is only a matter of passing >> along a pointer and dimensions. > >> By writing your C-functions in the form > >> void func(double* data, int rows, int cols, double* out) { } > >> wrapping becomes trivial. > > Yes, I have done this many times. It is trivial and very convenient. I > was just wondering if the code generator could detect this pattern. I don't see either how to magically generate those functions, since C has no concept of arrays (I mean outside a serie of contiguous bytes): if you see the declaration int f(double* in, int rows, int cols), the compiler does not know that it means a double array of size rows * cols, and that the in(i, j) is given by in[i*rows+j]. Actually, you don't know either without reading the source code or code conventions :).
Now, if you have always the same convention, I think it is conceptually possible to automatically generate the wrappers, a bit like swig does with typemaps for example (maybe f2py can do it for Fortran code ? I have never used f2py, but I think Fortran has a concept of arrays and matrices ?). David _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion