Date : Mon, 18 Feb 1985 13:08:00 PST
From : Eldridge.es@XEROX.ARPA
Subject: Floating-point benchmark
The February issue of BYTE magazine contains an article on the accuracy
of floating-point operations. Included in the article is a program to
display some of the features of the floating-point implementation of a
compiler. The program is called GUARD. It is actually an excerpt from
a larger program called PARANOIA. Below is a list of the results of
GUARD for several popular compilers/interpreter.
Please refer to the BYTE article "PARANOIA: A FLOATING-POINT BENCHMARK"
for a complete explaination of the terms. If anyone has the complete
PARANOIA program, I am interested in getting a copy.
~~~~~~~~~~
Turbo Pascal V2.00B PC-DOS
Turbo Pascal V2.00B MS-DOS
Turbo Pascal V1.00 CP/M-80 Z80
Radix = 2
Precision = 40
Width = 1.0995116278E+12
Closest relative separation found is UlpOne = 9.0949470177E-13
Add/Subtract lack guard digit, cancellation obscured.
~~~~~~~~~~
Pascal MT+86 Ver 3.0 March 8, 1982
Radix = 2
Precision = 53
Width = 9.00719925474099E15
Closest relative separation found is UlpOne = 1.11022302462515E-16
Add/Subtract has a guard digit as it should.
~~~~~~~~~~
Pascal MT+ V5.5 CP/M-80
Radix = 2
Precision = 24
Width = 1.67772E7
Closest relative separation found is UlpOne = 5.96046E-8
Add/Subtract lack guard digit, cancellation obscured.
~~~~~~~~~~
JRT Pascal Ver 3.0
Radix = 10
Precision = 14
Width = 1E14
Closest relative separation found is UlpOne = 1E-14
Add/Subtract lack guard digit, cancellation obscured.
~~~~~~~~~~
Pascal/Z Version 4.00
Radix = 2
Precision = 23
Width = 8.388607E6
Closest relative separation found is UlpOne = 1.192092E-7
Add/Subtract has a guard digit as it should.
~~~~~~~~~~
Microsoft BASIC Rev 5.2 CP/M-80
Radix = 2
Precision = 24
Width = 1.67772E7
Closest relative separation found is UlpOne = 5.96046E-8
Add/Subtract has a guard digit as it should.
~~~~~~~~~~
Microsoft BASCOM Rev 5.23 CP/M-80
Radix = 2
Precision = 24
Width = 1.67772E7
Closest relative separation found is UlpOne = 5.96046E-8
Add/Subtract has a guard digit as it should.
~~~~~~~~~~
CBASICII Rev 2.08
Radix = 10
Precision = 14
Width = 1E14
Closest relative separation found is UlpOne = 1E-14
Add/Subtract lack guard digit, cancellation obscured.
~~~~~~~~~~
HP-41CX (in calculator language)
Radix = 10
Precision = 10
Width = 1E10
Closest relative separation found is UlpOne = 1E-10
Add/Subtract has a guard digit as it should.
~~~~~~~~~~