[Webkit-unassigned] [Bug 115580] SunSpider 1.0: 3d-morph: use epsilon to check result

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat May 4 02:22:58 PDT 2013


--- Comment #10 from Cosmin Truta <ctruta at gmail.com>  2013-05-04 02:21:21 PST ---
Here is the discussion:

The results of some of the sin() calls differ rarely, and by not more than 1ULP.

The same is true for the terms of the final sum. Out of 120 terms, one of them differs by 2ULP, and 18 of them differ by 1ULP. Everything else is exact, even though the decimal representation in the attached output files confusingly shows otherwise.

The accumulation of errors in summing is insignificant everywhere except at the terms 29, 32, 89, 92 and 119. That's where the accumulated partial sum gets close to zero. Adding up approximate numbers with magnitudes >10, and then canceling them out, yield roundoff errors which, however small, differ in terms of their exponent, not mantissa, let alone ULPs. In fact, the mantissa at these particular locations is zero, and the exponent differences are significant.

As the error accumulate, the accumulated difference at term 118 is 66ULP, which is not a lot. It is, on the contrary, quite reasonable.

But that becomes very significant when term 119 wants to cancel out everything that had been summed before. 66ULP around the magnitude 8.271 becomes something wildly different when placed around the magnitude 0.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list