Hallo! > First, my plan is to add to numpy.i, typemaps for signatures like the > following: > > %typemap(argout) (double** ARGOUT_ARRAY1, int* DIM1) > > It is important to note that even though the same argument *names* are > used, this is a different typemap signature than > > %typemap(argout) (double* ARGOUT_ARRAY1, int DIM1) > > and thus can have (logically) different implementations. For the > latter, the typemap allocates a new numpy array and passes the buffer > pointer and dimension in; for the former, the buffer pointer and > dimension will be obtained from the wrapped function and used to build a > new numpy array.
Hm ... maybe it is more clear for users then, if the new typemap has a different name ? In example ARRAY_VIEW1, or something else with "VIEW" (although it's not really a view ?) ? > As for having a COPY version of the first typemap signature (in addition > to the non-copy, or "view" version), I currently do not plan to do [...] > The example Georg gives in his link below is not a counter-example to > this. He provides two methods, > > void getBigData(double **mtx, int *rows, int *cols) > void getBigDataCopy(double **cpmtx, int *cprows, int *cpcols) > > but in addition to the same argument types, they have the exact same > implementation. The only thing that is different is the names of the > arguments, which is clearly so that we can apply different swig typemaps > to the two methods. I submit that you will not find a class written by > someone else that will be designed this way. You will only find it if Yes this copy method was only for demonstration - I also did not use this method for my "real" code. One can simply call .copy() in python ... LG Georg _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion