# [Numpy-tickets] [NumPy] #716: Inconsistent behavior, i686 vs x86_64

NumPy numpy-tickets@scipy....
Wed Apr 2 14:04:39 CDT 2008

```#716: Inconsistent behavior, i686 vs x86_64
---------------------------------+------------------------------------------
Reporter:  jamie@goonathon.net  |       Owner:  somebody
Type:  defect               |      Status:  new
Priority:  normal               |   Milestone:  1.0.5
Component:  Other                |     Version:  none
Severity:  normal               |    Keywords:
---------------------------------+------------------------------------------
Gentoo, numpy-1.0.4-r2.

Possible related to http://scipy.org/scipy/numpy/ticket/669

Simple example,
{{{
[either i686 or x86_64]
>>> numpy.uint64(418465321) / 8928000
46.871115703405017
>>> numpy.uint32(418465321) / 8928000
46
}}}

Example that actually bit me,
{{{
[i686]
>>> A = numpy.array([1, 2, 3, 4], numpy.uint8)
>>> B = numpy.array([2, 4, 6, 8], numpy.uint8)
>>> C = B - A
>>> S = C.sum()
>>> type(S)
<type 'numpy.uint32'>
>>> L = len(C)
>>> type(L)
<type 'int'>
>>> S/L
2

[x86_64]
>>> A = numpy.array([1, 2, 3, 4], numpy.uint8)
>>> B = numpy.array([2, 4, 6, 8], numpy.uint8)
>>> C = B - A
>>> S = C.sum()
>>> type(S)
<type 'numpy.uint64'>
>>> type(L)
<type 'int'>
>>> S/L
2.5
}}}

1) numpy.uint64 / int -> float
numpy.uint32 / int -> int

It seems like these should at least evaluate to the same type.

2) Should .sum() return a numpy.uint64, even on 32-bit platforms,
for the sake of consistency?

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