# [Numpy-tickets] [NumPy] #492: integer overflow on plus and sum (at least)

NumPy numpy-tickets@scipy....
Thu Apr 5 17:28:24 CDT 2007

```#492: integer overflow on plus and sum (at least)
------------------------+---------------------------------------------------
Reporter:  socha       |       Owner:  somebody
Type:  defect      |      Status:  new
Priority:  normal      |   Milestone:  1.0.2 Release
Component:  numpy.core  |     Version:  none
Severity:  normal      |    Keywords:
------------------------+---------------------------------------------------
There are several places (at least) where integer operations overflow,
instead of upgrading the size of the result to accommodate larger values.
Here are some examples.

{{{
C:\Documents and Settings\socha>python
Python 2.4.3 - Enthought Edition 1.0.0 (#69, Aug  2 2006, 12:09:59) [MSC
v.1310 32 bit (Intel)] on win32
>>> import numpy
>>> numpy.__version__
'1.0.2'
>>> from numpy import array
>>> a = array([127,127], dtype='int8')
>>> a+a
array([-2, -2], dtype=int8)                           <== overflow (bad!)
>>> a.sum()
254                                                   <== correct value
>>> a.sum().dtype
dtype('int32')                                        <== correctly

>>> b = array([1250000000,1250000000], dtype='int32')
>>> b+b
>>> b.sum()
-1794967296                                           <== overflow
>>> b.sum().dtype
type to available int64 type
>>>
>>> from numpy import int64                           <== int64 exists
>>> c = array([1250000000,1250000000], dtype='int64')
>>> c
array([1250000000, 1250000000], dtype=int64)
>>> c.sum()
2500000000                                            <== correct value
>>> c + c
array([2500000000, 2500000000], dtype=int64)          <== correct value
>>>

>>> f = array([8750000000000000000, 8750000000000000000], dtype=int64)
>>> f+f
array([-946744073709551616, -946744073709551616], dtype=int64)    <==
>>> f.sum()
-946744073709551616                                               <==
>>>
}}}

- David Socha & Daniel Terhorst, UrbanSim Project, http://www.urbansim.org

--
Ticket URL: <http://projects.scipy.org/scipy/numpy/ticket/492>
NumPy <http://projects.scipy.org/scipy/numpy>
The fundamental package needed for scientific computing with Python.
```