Hi Thanks for all your help!
I found the "strange" result was caused by my algorithm(CUDA). The swig part is very ok:) On Thu, May 20, 2010 at 11:18 PM, Bill Spotz <wfsp...@sandia.gov> wrote: > I tried the following: > > %module example > %{ > #define SWIG_FILE_WITH_INIT > //#include "example.h" > %} > %include "numpy.i" > > %init %{ > import_array(); > %} > > %apply (float* INPLACE_ARRAY1, int DIM1) {(float *a, int na), (float > *b, int nb)}; > > %inline > { > void update_incident_field(int k, float *a, int na, float *b, int nb) > { > for (i=0; i<na; i ++) > { > a[i] = a[i] + b[i] * k; > } > } > } > > $ swig -python example.i > > and the resulting example_wrap.c file looks OK for me. What strange > output did you get? > > On May 19, 2010, at 7:43 PM, Steven Nien wrote: > > > I want to pass 1 integer and 2 numpy array into the C function as > > followings: > > > > void update_incident_field(int k, float *a, int na, float *b, int > > nb) { > > for (i=0; i<na; i ++) { > > a[i] = a[i] + b[i] * k; > > } > > } > > > > But I don't know how to write the interface code (***.i) > > Can someone help me? > > > > Thanks! > > > > The swig interface code I written(did't work, strange output) > > > > %module example > > %{ > > #define SWIG_FILE_WITH_INIT > > #include "example.h" > > %} > > %include "numpy.i" > > > > %init %{ > > import_array(); > > %} > > > > %apply (float* INPLACE_ARRAY1, int DIM1) {(float *a, int na), (float > > *b, int nb)}; > > > > %include "example.h" > > > > > > > > <ATT00002.txt> > > ** Bill Spotz ** > ** Sandia National Laboratories Voice: (505)845-0170 ** > ** P.O. Box 5800 Fax: (505)284-0154 ** > ** Albuquerque, NM 87185-0370 Email: wfsp...@sandia.gov ** > > > > > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion