I see the same "randomness", but at a different array size:

In [23]: numpy.__version__
Out[23]: '1.4.0'

In [24]: import numexpr

In [25]: numexpr.__version__
Out[25]: '1.4.1'

In [26]: x = zeros(8192)+0.01

In [27]: print evaluate('sum(x, axis=0)')
72.97

In [28]: print evaluate('sum(x, axis=0)')
66.92

In [29]: print evaluate('sum(x, axis=0)')
67.9

In [30]: x = zeros(8193)+0.01

In [31]: print evaluate('sum(x, axis=0)')
72.63

In [32]: print evaluate('sum(x, axis=0)')
71.74

In [33]: print evaluate('sum(x, axis=0)')
81.93

In [34]: x = zeros(8191)+0.01

In [35]: print evaluate('sum(x, axis=0)')
81.91

In [36]: print evaluate('sum(x, axis=0)')
81.91


Warren



On Mon, Jan 24, 2011 at 12:19 PM, John Salvatier
<jsalv...@u.washington.edu>wrote:

> Forgot to mention that I am using numexpr 1.4.1 and numpy 1.5.1
>
>
> On Mon, Jan 24, 2011 at 9:47 AM, John Salvatier <jsalv...@u.washington.edu
> > wrote:
>
>> Hello,
>>
>> I have discovered a strange bug with numexpr. numexpr.evaluate gives
>> randomized results on arrays larger than 2047 elements. The following
>> program demonstrates this:
>>
>> from numpy import *
>> from numexpr import evaluate
>>
>> def func(x):
>>
>>     return evaluate("sum(x, axis = 0)")
>>
>>
>> x = zeros(2048)+.01
>>
>> print evaluate("sum(x, axis = 0)")
>> print evaluate("sum(x, axis = 0)")
>>
>> For me this prints different results each time, for example:
>>
>> 11.67
>> 14.84
>>
>> If we set the size to 2047 I get consistent results.
>>
>> 20.47
>> 20.47
>>
>> Interestingly, if I do not add .01 to x, it consistently sums to 0.
>
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to