Sebastian Haase wrote: > Hi, > I just ran into more problems with my SWIG > typemaps. > In the C api the current enum for > NPY_INT is 5 > NPY_LONG is 7 > > to match overloaded function I need to check these type values. > > On 64bit all works fine: > my 32bit int function matches NPY_INT - which is "int" in C/C++ > my 64bit int function matches NPY_LONG - which is "long" in C/C++ > As you noted below, this is not always the case. You can't assume that 64-bit means "long"
Let me assume that you are trying to write functions for each of the "data-types". You can proceed in a couple of ways: 1) Use the basic c-types 2) Use "bit-width" types (npy_int32, npy_int64, etc...) The advantage of the former is that it avoids any confusion in terms of what kind of c-type it matches. This is really only important if you are trying to interface with external code that uses basic c-types. The advantage of the latter is that you don't have to write a redundant routine (i.e. on 32-bit linux the int and long routines should be identical machine code), but you will have to be careful in matching to a c-type should you need to call some external routine. The current system gives you as many choices as possible (you can either match external code using the c-types) or you can write to a particular bit-width. This is accomplished through comprehensive checks defined in the arrayobject.h file. -Travis ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion