On Dec 30, 2009, at 8:49 AM, Dr. David Kirkby wrote: > Robert Bradshaw wrote: >> On Dec 29, 2009, at 9:59 PM, Peter Jeremy wrote: >> >>> On 2009-Dec-29 23:29:42 +0000, "Dr. David Kirkby" <david.kir...@onetel.net >>>> wrote: >>>> There are a few failures, but these couple just came up, and look >>>> rather odd, as this is only an error in the last decimal place, and >>>> so will be subject to rounding errors with different floating point >>>> processors. They do not really seem failures to me. >>> One of the claims for IEEE-754 arithmetic is that basic arithmetic >>> operations (+, -, *, /, sqrt) will give bit-for-bit identical >>> results on different implementations. >> >> I would have expected t2 to be IEEE-754 compliant, but maybe it >> isn't. >> >>>> ********************************************************************** >>>> File "/rootpool2/local/kirkby/sage-4.3/devel/sage/sage/symbolic/ >>>> pynac.pyx", line >>>> 1276: >>>> sage: py_exp(float(1)) >>>> Expected: >>>> 2.7182818284590451 >>>> Got: >>>> 2.7182818284590455 >>>> ********************************************************************** >>> As a correctly rounded IEEE-754 double precision constant, >>> e=0x4005BF0A8B145769 (0x2.B7E1 5162 8AED 2), this should convert >>> to 2.7182818284590451 (rounded to "sufficient" accuracy). >>> >>> 2.7182818284590455 is 1ULP high - this may reflect a rounding error >>> in either the exp() or double_to_ascii() implementation. >> >> It's probably not double_to_ascii, as (on t2) >> >>>>> float("2.7182818284590452353602874713526625") >> 2.7182818284590451 >> >> I bet Solaris has a completely different (and unfortunately not as >> accurate) implementation of exp in its libm. It could also be a bug >> in >> the compiler, as math.e is defined as > > I might be mistaken, but I believe the SPARC processor users 64 bits > for > floating point and the Intel chips use 80 internally, so it might be > an issue > with the processor. I've got no idea how that fits in with IEEE-754.
Yes, that could be the difference for exp. What's more worrisome is that the C compiler incorrectly resolves the literal floating point 2.7182818284590452354 . - Robert -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org