Next: Integer Multiplication
Up: Tipical pitfalls with floating
Previous: Insignificant Digits
  Contents
Mathematically equivalent expressions may give different values in
floating point, depending on the order of evaluation. For example
%{}
program test
real :: x=12345.6, y=45678.9, z=98765432.1
real :: w1, w2
w1 = x*y/z
w2 = y*(x*(1.0/z))
print*, w1-w2
end program test
Mathematically, the difference between w1 and w2 should be zero, but
on Alpha ... it is about .
Adrian Sandu
2001-08-26