Fernando Perez wrote: > I understand why this happens, but I wonder if it should be in any way > 'fixed' (if that is even feasible without introducing other problems): > > In [28]: x = 999999 > > In [29]: y = numpy.array([x]) > > In [30]: z = y[0] > > In [31]: x==z > Out[31]: True > > In [32]: x > Out[32]: 999999 > > In [33]: z > Out[33]: 999999 > > In [34]: x*x > Out[34]: 999998000001L > > In [35]: z*z > Warning: overflow encountered in long_scalars > Out[35]: -729379967 > > I am sure it will be, to say the least, pretty surprising (and I can > imagine subtle bugs being caused by this).
I think we decided long ago that an int32 really is an array of 32-bit integers and behaves like one. That's precisely why one uses int32 arrays rather than object arrays. There are algorithms that do need the wraparound, and the Python int behavior is always available through object arrays. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco ------------------------------------------------------------------------- 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