Integer behaviour in Python 2.6.4

Why does this happen?
type(2**31-1) <type 'long'>
It seems to have broken NumPy's RNG on Win32.

On Sun, Nov 1, 2009 at 8:22 PM, Sturla Molden <sturla@molden.no> wrote:
Why does this happen?
type(2**31-1) <type 'long'>
Does that not happen on non-Windows platforms? 2**31 can't be represented as a 32-bit signed integer, so it's automatically promoted to a long. -- Curt Hagenlocher curt@hagenlocher.org

Curt Hagenlocher skrev:
Does that not happen on non-Windows platforms? 2**31 can't be represented as a 32-bit signed integer, so it's automatically promoted to a long.
Yes you are right. I've now traced down the problem to an integer overflow in NumPy. It seems to have this Pyrex code: cdef long lo, hi, diff [...] diff = hi - lo - 1 :-D Sturla
participants (2)
-
Curt Hagenlocher
-
Sturla Molden