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