On Wed, Feb 11, 2009 at 12:29 PM, Robert Rohde rarohde@gmail.com wrote:
Yes Domas, haha, because no one would ever want to write about math or high precision scientific measurements in an encyclopedia.
Holy crud! You don't use floating point for this! If you need deterministic behaviour and high accuracy you need to confine yourself to integer mathematics.
Sure, *Write about* high precision scientific measurements in Wikipedia, but don't use Wikipedia to *make them*.
[snip]
Am I wrong in thinking that the server admins should care when different machines produce different output from the same code? In this case, the behavior suggests it may be as simple as ensuring that the servers have the same php.ini precision settings.
Is there any reason to think that this is related to to a PHP setting rather than being a result of differences in compiler decisions with respect to moving variables in in off the x87 stack and into memory or the use of SSE? Or some libc difference in how the FPU rounding mode is set?
At 12 digits you are beyond the expected precision of single precision floating point, and not far from what you get with doubles. On x86 the delivered precision can vary wildly depending on the precise sequence of calculations are register spills. For code compiled without -ffast-math the former should be stable for a single piece of code, but the latter is anyone's guess.