Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!pasteur!agate!ucbvax!CIM-VAX.HONEYWELL.COM!derstad
From: derstad@CIM-VAX.HONEYWELL.COM ("DAVE ERSTAD")
Newsgroups: comp.sys.apollo
Subject: Re:  Fortran 9.95 problem
Message-ID: <8811280001.AA27361@umix.cc.umich.edu>
Date: 27 Nov 88 22:49:00 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Organization: The Internet
Lines: 21


> Yes, I think the option is -frnd

The -frnd option affects a different, but related problem.  frnd forces
rounding to occur before comparing two floating pointer numbers (Otherwise,
a 64 bit quantity might be compared to an 80 bit quantity).

In this particular instance, a 64 bit quantity is being subtracted from
an 80 bit quantity, then compared to zero.  I actually did try the -frnd
switch to see if there was any difference, and there wasn't.  When the
comparcomparison to zero occurs, there 
comparison to zero occurs, the quantity does get rounded, but it is still
non-zero (since the mantissa bits getting chopped off are in a different
place than if you round the operands).

Put another way,
   round(a - b) != round(a) - round(b)

I admit I don't like the way spice implements these conditional branches
either, but on the other hand how many sites run spice or a variant without
any problems?