[Numpy-discussion] SWIG Numpy and C++ extensions
David Froger
david.froger@gmail....
Tue Jul 31 15:04:06 CDT 2012
Hi,
> I'm looking at SWIG/numpy tutorials
They are these tutorials:
http://docs.scipy.org/doc/numpy/reference/swig.interface-file.html
http://www.scipy.org/Cookbook/SWIG_NumPy_examples
Reading numpy.i is also very instructive.
> 1- How do use "apply" for class functions %apply (bla) myobject::foo ?
%apply is specified on function/method arguments names and types only,
never on function names. So if for example you use:
%apply (int* ARGOUT_ARRAY1, int DIM1) {(int* rangevec, int n)}
it will apply on every functions that have arguments "int* ARGOUT_ARRAY1, int DIM1"
> 2-that's ok if your C++ deals with arrays but what if I actually want to receive the Numpy object so that I can manipulate it directly (or if for example the array isn't contiguous in memory)
>
> An"dummy"example of foo function I'd like to wrap:
>
> void FOO::fooNumpy(PyArrayObject *nparray) {
>
> int j;
> for(j=0;j<nparray->nd;j++) {
> printf("Ok array dim %i has length: %i\n",j,nparray->dimensions[j]);
> }
> }
I never do it with Swig, will try to make this example works!
David
More information about the NumPy-Discussion
mailing list