Next: PASCAL Version (using
Up: Linux 1.1.68 (niespx
Previous: C Version
Diagnosis resumes after milestone # 7, ... page 5
Program is now RUNNING tests on small integers:
-1, 0, 1/2 , 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K.
Searching for radix and precision...
Radix = 2.
Closest relative separation found is 1.11022302E-16
Recalculating radix and precision
confirms closest relative separation .
Radix confirmed.
The number of significant digits of radix 2. is 53.00
Test for extra-precise subexpressions:
Some subexpressions appear to be calculated extra-precicely
with about .1100000E+02 extra base b digits, i.e.
roughly .3311330E+01 extra significant decimals.
That feature is not tested further by this program.
To continue diagnosis, press return.
Diagnosis resumes after milestone # 30, ... page 6
Subtraction appears to be normalized as it should.
Checking for guard digits in multiply divide and subtract.
These operations appear to have guard digits as they should.
To continue diagnosis, press return.
Diagnosis resumes after milestone # 40, ... page 7
Checking for rounding in multiply, divide and add/subtract:
Multiplication is neither chopped nor correctly rounded.
Division is neither chopped nor correctly rounded.
Add/subtract neither chopped nor correctly rounded.
Sticky bit used incorrectly or not at all.
FLAW: lack(s) of guard digits or failure(s) to correctly round or chop
(noted above) count as one flaw in the final tally below.
Does multiplication commute? Testing if x*y = y*x for 20 random pairs:
No failure found in 20 randomly chosen pairs.
Running tests of square root...
Testing if sqrt(x*x) = x for 20 integers x.
Found no discrepancies.
Sqrt has passed a test for monotonicity.
Testing whether sqrt is rounded or chopped:
Square root is neither chopped nor correctly rounded.
Observed errors run from -.5000000E+00 to .5000000E+00 ulps.
To continue diagnosis, press return.
Diagnosis resumes after milestone # 90, ... page 8
Testing powers z^i for small integers z and i :
Start with 0.**0 .
No discrepancies found.
Seeking underflow threshold and min positive number:
Smallest strictly positive number found is minpos = 4.94065646-324
Since comparison denies MINPOS = 0,
evaluating ( MINPOS + MINPOS ) / MINPOS should be safe;
what the machine gets for ( MINPOS + MINPOS ) / MINPOS is
.2000000E+01
This is O.K. provided over/underflow has not just been signaled.
Underflow is gradual; it incurs absolute error =
(roundoff in underflow threshold) < minpos.
The underflow threshold is .22250739-307 , below which
calculation may suffer larger relative error than merely roundoff.
To continue diagnosis, press return.
Diagnosis resumes after milestone # 130, ... page 9
since underflow occurs below the threshold =
( 2.00000000E+00)^( -1.02200000E+03) ,
only underflow should afflict the expression
( 2.00000000E+00)^( -2.04400000E+03) ;
actually calculating it yields
.00000000E+01
This computed value is O.K.
Testing x^((x+1)/(x-1)) vs. exp(2) = .73890561E+01 as x -> 1.
Accuracy seems adequate.
Testing powers z^q at four nearly extreme values:
No discrepancies found.
To continue diagnosis, press return.
Diagnosis resumes after milestone # 160, ... page 10
Searching for overflow threshold:
Is this a program restart after failure (1)
or a start from scratch (0) ?
Restarting from milestone 161.
Can " z = -y " overflow? trying it on y = -8.98846567+307
Seems O.K.
Overflow threshold is v = 1.79769313+308
There is no saturation value because
the system traps on overflow.
No overflow should be signaled for v*1 =
1.79769313+308
nor for v/1 =
1.79769313+308
Any overflow signal separating this * from one above is a DEFECT.
To continue diagnosis, press return.
Diagnosis resumes after milestone # 190, ... page 11
What messages and/or values does division by zero produce?
About to compute 1/0...
Is this a program restart after failure (1)
or a start from scratch (0) ?
Restarting from milestone 211.
About to compute 0/0...
Is this a program restart after failure (1)
or a start from scratch (0) ?
Restarting from milestone 212.
To continue diagnosis, press return.
Diagnosis resumes after milestone # 220, ... page 12
The number of FLAWs discovered = 1
The arithmetic diagnosed seems Satisfactory though flawed.
End of Test.