Subject: Paranoia says i386 floating point support is (mostly) excellent
To: None <current-users@netbsd.org>
From: John Kohl <jtk@kolvir.blrc.ma.us>
List: current-users
Date: 09/19/1994 21:58:15
I ran the paranoia.c floating point test suite from Kahan (available
via netlib@ornl.gov, I believe), and its final diagnosis when compiled:
	cc paranoia.c -lm
	cc -O6 paranoia.c -lm
was:

No failures, defects nor flaws have been discovered.
Rounding appears to conform to the proposed IEEE standard P754,
except for possibly Double Rounding during Gradual Underflow.
The arithmetic diagnosed appears to be Excellent!

and for 
	cc -DSingle paranoia.c -lm
it was:

No failures, defects nor flaws have been discovered.
Rounding appears to conform to the proposed IEEE standard P754.
The arithmetic diagnosed appears to be Excellent!

Unfortunately, single-precision -O (cc -O -DSingle paranoia.c -lm) is
broken somehow:

	Searching for Radix and Precision.
	Radix = 1073741824.000000 .
	Closest relative separation found is U1 = 8.6736174e-19 .

	Recalculating radix and precision
	 gets better closest relative separation U1 = 4.9670534e-09 .
	MYSTERY: recalculated Radix = 0.0000000e+00 .

	FLAW:  Radix is not as good as 2 or 10.
	FAILURE:  (1-U1)-1/2 < 1/2 is FALSE, prog. fails?.
	The number of significant digits of the Radix is 0.000000 .
	FAILURE:  Precision test appears to be inconsistent...
	   PLEASE NOTIFY KARPINKSI!
	        U1 = 4.9670534e-09, Z1 - U1 = -4.9670533e-09
	        U2 = 2.2204460e-16, Z2 - U2 = 0.0000000e+00

... and it goes downhill from there.  I suspect this is a gcc issue of
some sort...I don't have 2.6.0 to test---does someone else wanna give it
a try?

Mostly a good show, folks!  This is the first i386 unix I've seen which
gets this high a rating on most items!

==John