On Wed, 13 Nov 2024, Roger Heflin wrote:
On Wed, Nov 13, 2024 at 4:25?PM Patrick Dupre pdupre@gmx.com wrote:
How different are the values? How many significant figures match? 0? 5?
relatve difference: 2.7e-8 "noise" ~ 1e-35 values < 2e-23
What significant figure is it of the result? Heavy calculations are sensitive to the precision of the underlying cpu calculations and one cpu may pick a different underlying precision to use internally. Ie
Not if both CPUs are supposed to be using IEEE 64-bit floating point. The 80-bit double extended registers go mostly unused lately. Their use in double precision arithmetic is supposed to be discoverable: sizeof(double) != sizeof(double_t)
if one machine takes say 3 clock cycles to do a single or a double then you might as well use a double internally and if the other machine takes say 3 for a single and 6 for a double then on that machine the compiler optimization will choose the single (to be faster) and both may produce a different answer.
Not if both CPUs are supposed to be using IEEE 32-bit floating point. Again, discoverable: sizeof(float) != sizeof(float_t).
If rounding is indeed the issue, 'tis most likely in the libraries, e.g., one evaluates (x+y)+z and the other (x+z)+y . One might use exp(x)-1 and the other expm1(x) or expl(x)-1 .
OP might swap libraries to test the hypothesis.