On 9/4/06, Paulo J. S. Silva <[EMAIL PROTECTED]> wrote:
However, around does set the sign bit when rounding -.5 to zero:
>>> around(-.5).tostring()
'\x00\x00\x00\x00\x00\x00\x00\x80'
so that
>>> around(-.5)
-0.0
on the other hand
>>> around(-.5) == 0.0
True
I didn't know -0.0 was part of the IEEE spec.
Chuck
Interesting, I was just reading about the round rule in IEEE standard
last Friday.
What numpy's "around" function does is called "round to even" (round is
take to make the next digit even), instead of "round up". According to
"What every computer scientist should know about floating-point
arithmetic" (do a Google search), the reason to prefer "round to even"
is exemplified by the following result from Reiser and Knuth:
Theorem
Let x and y be floating-point numbers, and define x0 = x, x1 = (x0 - y)
+ y, ..., xn = (xn-1 - y) + y. If + and - are exactly rounded using
round to even, then either xn = x for all n or xn = x1 for all n >= 1.
If you use "round up" the sequence xn can start increasing slowly "for
ever", and as the paper says:
"...This example suggests that when using the round up rule,
computations can gradually drift upward, whereas when using round to
even the theorem says this cannot happen."
Best,
Paulo
However, around does set the sign bit when rounding -.5 to zero:
>>> around(-.5).tostring()
'\x00\x00\x00\x00\x00\x00\x00\x80'
so that
>>> around(-.5)
-0.0
on the other hand
>>> around(-.5) == 0.0
True
I didn't know -0.0 was part of the IEEE spec.
Chuck
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion