You're right, I got the same behavior. Interesting.<br><br><div class="gmail_quote">On Mon, Jan 24, 2011 at 11:35 AM, Warren Weckesser <span dir="ltr"><<a href="mailto:warren.weckesser@enthought.com">warren.weckesser@enthought.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br><br><div class="gmail_quote"><div class="im">On Mon, Jan 24, 2011 at 1:13 PM, John Salvatier <span dir="ltr"><<a href="mailto:jsalvati@u.washington.edu" target="_blank">jsalvati@u.washington.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">

Looks like this is related to issue 41 (<a href="http://code.google.com/p/numexpr/issues/detail?id=41&can=1" target="_blank">http://code.google.com/p/numexpr/issues/detail?id=41&can=1</a>).</blockquote></div><div>
<br><br>

That might not be the same issue.<br><br>You can fix the "randomness" by setting the number of threads to 1, as in input [6] here:<br><br>In [1]: import numexpr as ne<br><br>In [2]: x = zeros(8192)+0.01<br><br>

In [3]: ne.evaluate('sum(x, axis=0)')<br>
Out[3]: array(71.119999999999479)<br><br>In [4]: ne.evaluate('sum(x, axis=0)')<br>Out[4]: array(81.920000000005004)<br><br>In [5]: ne.evaluate('sum(x, axis=0)')<br>Out[5]: array(68.379999999998077)<br><br>


In [6]: ne.set_num_threads(1)<br><br>In [7]: ne.evaluate('sum(x, axis=0)')<br>Out[7]: array(81.920000000005004)<br><br>In [8]: ne.evaluate('sum(x, axis=0)')<br>Out[8]: array(81.920000000005004)<br><br>In [9]: ne.evaluate('sum(x, axis=0)')<br>


Out[9]: array(81.920000000005004)<br><font color="#888888"><br><br>Warren<br><br> <br></font></div><div><div></div><div class="h5"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
<div><div></div><div>

<br><br><div class="gmail_quote">On Mon, Jan 24, 2011 at 10:29 AM, John Salvatier <span dir="ltr"><<a href="mailto:jsalvati@u.washington.edu" target="_blank">jsalvati@u.washington.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">I also get the same issue with prod()<div><div></div><div><br><br><div class="gmail_quote">

On Mon, Jan 24, 2011 at 10:23 AM, Warren Weckesser <span dir="ltr"><<a href="mailto:warren.weckesser@enthought.com" target="_blank">warren.weckesser@enthought.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">I see the same "randomness", but at a different array size:<br><br>In [23]: numpy.__version__<br>


Out[23]: '1.4.0'<br>

<br>In [24]: import numexpr<br><br>In [25]: numexpr.__version__<br>Out[25]: '1.4.1'<br>

<br>In [26]: x = zeros(8192)+0.01<br><br>In [27]: print evaluate('sum(x, axis=0)')<br>72.97<br><br>In [28]: print evaluate('sum(x, axis=0)')<br>66.92<br><br>In [29]: print evaluate('sum(x, axis=0)')<br>






67.9<br><br>In [30]: x = zeros(8193)+0.01<br><br>In [31]: print evaluate('sum(x, axis=0)')<br>72.63<br><br>In [32]: print evaluate('sum(x, axis=0)')<br>71.74<br><br>In [33]: print evaluate('sum(x, axis=0)')<br>






81.93<br><br>In [34]: x = zeros(8191)+0.01<br><br>In [35]: print evaluate('sum(x, axis=0)')<br>81.91<br><br>In [36]: print evaluate('sum(x, axis=0)')<br>81.91<br><font color="#888888"><br><br>Warren<br><br>




<br><br></font><div class="gmail_quote"><div><div></div><div>

On Mon, Jan 24, 2011 at 12:19 PM, John Salvatier <span dir="ltr"><<a href="mailto:jsalvati@u.washington.edu" target="_blank">jsalvati@u.washington.edu</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">




<div><div></div><div>

Forgot to mention that I am using numexpr 1.4.1 and numpy 1.5.1<div><div></div><div><br><br><div class="gmail_quote">On Mon, Jan 24, 2011 at 9:47 AM, John Salvatier <span dir="ltr"><<a href="mailto:jsalvati@u.washington.edu" target="_blank">jsalvati@u.washington.edu</a>></span> wrote:<br>







<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">Hello, <div><br></div><div>I have discovered a strange bug with numexpr. numexpr.evaluate gives randomized results on arrays larger than 2047 elements. The following program demonstrates this: </div>







<div><br></div><blockquote style="margin:0pt 0pt 0pt 40px;border:medium none;padding:0px">
<div><div><div>from numpy import * </div><div>from numexpr import evaluate</div><div><br></div><div>def func(x):</div><div><br></div><div>    return evaluate("sum(x, axis = 0)")</div><div><br></div><div><br></div>








<div>x = zeros(2048)+.01</div><div><br></div><div>print evaluate("sum(x, axis = 0)")</div><div>print evaluate("sum(x, axis = 0)")</div></div></div><div><br></div></blockquote>For me this prints different results each time, for example:<blockquote style="margin:0pt 0pt 0pt 40px;border:medium none;padding:0px">








<div><div><div>11.67</div><div>14.84</div></div></div><div><br></div></blockquote>If we set the size to 2047 I get consistent results.<blockquote style="margin:0pt 0pt 0pt 40px;border:medium none;padding:0px">
<div><div>20.47</div><div>20.47</div></div><div><br></div></blockquote>Interestingly, if I do not add .01 to x, it consistently sums to 0.
</blockquote></div><br>
</div></div><br></div></div><div>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org" target="_blank">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></div></blockquote></div><br>
<br>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org" target="_blank">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div><br>
</div></div></blockquote></div><br>
</div></div><br>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org" target="_blank">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div></div></div><br>
<br>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div><br>