# [NumPy-Tickets] [NumPy] #1882: power function in NumPy returns wrong values withing the dtype range

NumPy Trac numpy-tickets@scipy....
Mon Jun 27 23:55:32 CDT 2011

```#1882: power function in NumPy returns wrong values withing the dtype range
-------------------------+--------------------------------------------------
Reporter:  abx_numpy    |       Owner:  somebody
Type:  defect       |      Status:  new
Priority:  normal       |   Milestone:  Unscheduled
Component:  numpy.core   |     Version:  1.6.0
Keywords:  numpy.power  |
-------------------------+--------------------------------------------------
numpy.power(a,i) returns wrong values even when they are within the range
determined by dtype. Example:

>>> import math, sys
>>> import numpy as np
>>> a = range(41,56,2)
>>> b = np.array(a); b.dtype
dtype('int64')
>>> for x in a:
...   print x, ':', x**10 - math.pow(x,10)
...
41 : 0.0
43 : 0.0
45 : 0.0
47 : 0.0
49 : 0.0
51 : 0.0
53 : 0.0
55 : 0.0
>>> for x in b:
...   print x, ':', x**10 - np.power(x,10)
...
41 : 1
43 : 1
45 : 1
47 : 1
49 : 1
51 : -7
53 : -7
55 : -15
>>> # the resuls are wrong only for odd integers:
>>> c = np.array([56],dtype=np.int64)
>>> print c[0], ':', 56**10 - (np.power(c,10))[0]
(56, ':', 0)
>>> d = np.array([57],dtype=np.int64)
>>> print d[0], ':', 57**10 - (np.power(d,10))[0]
(57, ':', -15)
>>> # I am on 64-bit machine (MacBookPro, Intel, 10.6)
>>> 57**10 < sys.maxint
True
>>> sys.maxint - (2**63 - 1)
>>> 0L
>>> i = int(d[0])
>>> i**10 - d[0]**10
0
>>> i**10 - (d**10)[0]
-15

The last two outputs indicate that this is likely the ufunc problem.

--
Ticket URL: <http://projects.scipy.org/numpy/ticket/1882>
NumPy <http://projects.scipy.org/numpy>
My example project
```