
On Fri, Aug 23, 2013 at 8:59 AM, Chris Barker - NOAA Federal < chris.barker@noaa.gov> wrote:
On Aug 22, 2013, at 11:57 PM, David Cournapeau <cournape@gmail.com> wrote:
npy_long is indeed just an alias to C long,
Which means it's likely broken on 32 bit platforms and 64 bit MSVC.
np.long is an alias to python's long:
But python's long is an unlimited type--it can't be mapped to a c type at all.
arch -32 python -c "import numpy as np; print np.dtype(np.int); print np.dtype(np.long)" int32 int64
So this is giving us a 64 bit int--not a bad compromise, but not a python long--I've got to wonder why the alias is there at all.
arch -64 python -c "import numpy as np; print np.dtype(np.int); print np.dtype(np.long)" int64 int64
Same thing on 64 bit.
So while np.long is an alias to python long--it apparently is translated internally as 64 bit -- everywhere?
So apparently there is no way to get a "platform long". ( or, for that matter, a platform anything else, it's just that there is more consistancy among common platforms for the others)
I use 'bBhHiIlLqQ' for the C types. Long varies between 32 & 64 bit, depending on the platform and 64 bit convention chosen. The C int is always 32 bits as far as I know. Chuck