As noted by one of our CompSci professors at UTC, Pentiums aren't the only
things to be worried about:
 
> I sent out a calculation which causes the Pentium to produce answer
> 256 when the "correct" answer is 0.  If you run the same computation
> on our IBM ES9000 (in either FORTRAN or C) you get the following
> results:
>
>  INTEGER     REAL         LONGINT   DOUBLE
>  4195835  4195835.000000  4195835  4195835.000000
>  3145727  3145727.000000  3145727  3145727.000000
>  1050108        1.000000  1050108        0.000000
>
> Bottom row should produce value 0
 
Of course the integer calculations would be wrong, but it misses the
boat on single-precision reals!  (The ES9000 is this machine, utcvm.utc.edu)
 
The calculation is:  4195835 - ( (4195835/3145727) * 3145727 )
 
Our HP960 does it correctly with both float and double, as did one
of our Suns.
 
Apparently it's a function of IEEE floating point versus the IBM's
goofy floating point format (wonder what a classic 3000 would say?)
 
[\] Jeff Kell, [log in to unmask]