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.38777878E-17 Recalculating radix and precision confirms closest relative separation . Radix confirmed. The number of significant digits of radix 2. is 56.00 Test for extra-precise subexpressions: Subexpressions do not appear to be calculated with extra precision. 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 appears to be correctly rounded. Division appears to be correctly rounded. Add/subtract appears to be correctly rounded. checking for sticky bit: Sticky bit used incorrectly or not at all. 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 appears to be correctly rounded. 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 . %MTH-F-UNDEXP, undefined exponentiation user PC 00005EEA %TRACE-F-TRACEBACK, symbolic stack dump follows module name routine name line rel PC abs PC 0000CD28 0000CD28 0003300B 0003300B PWRCMP PWRCMP 32 0000001A 00005EEA POWER POWER 57 0000008B 00006D83 DPARA$MAIN DPARA$MAIN 257 000004B2 00004CB2 CVSA3_CBU.PARANOIA> run dpara Is this a program restart after failure (1) or a start from scratch (0) ? 1 Restarting from milestone 90. To continue diagnosis, press return. Diagnosis resumes after milestone # 90, ... page 9 Testing powers z^i for small integers z and i : No discrepancies found. Seeking underflow threshold and min positive number: Smallest strictly positive number found is minpos = 2.93873588E-39 Since comparison denies MINPOS = 0, evaluating ( MINPOS + MINPOS ) / MINPOS should be safe; what the machine gets for ( MINPOS + MINPOS ) / MINPOS is 0.2000000E+01 This is O.K. provided over/underflow has not just been signaled. FLAW: x = 0.40407618E-38 is unequal to z = 0.29387359E-38 , yet x-z yields 0.0000000E+00 Should this not signal underflow, this is a SERIOUS DEFECT that causes confusion when innocent statements like if (x.eq.z) then ... else ... ( f(x)-f(z) )/(x-z) ... encounter division by zero although actually x/z = 1 + 0.37500000E+00 The underflow threshold is 0.29387359E-38 , below which calculation may suffer larger relative error than merely roundoff. SERIOUS DEFECT: range is too narrow; ulpmin^ 4 underflows. To continue diagnosis, press return. Diagnosis resumes after milestone # 130, ... page 10 since underflow occurs below the threshold = ( 2.00000000E+00)^( -1.28000000E+02) , only underflow should afflict the expression ( 2.00000000E+00)^( -2.56000000E+02) ; actually calculating it yields 0.00000000E+00 This computed value is O.K. Testing x^((x+1)/(x-1)) vs. exp(2) = 0.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 11 Searching for overflow threshold: %SYSTEM-F-FLTOVF_F, arithmetic fault, floating overflow at PC=00006244, PSL=03C0 0020 %TRACE-F-TRACEBACK, symbolic stack dump follows module name routine name line rel PC abs PC OVERF OVERF 104 0000026C 00006244 DPARA$MAIN DPARA$MAIN 276 000004D3 00004CD3 CVSA3_CBU.PARANOIA> run dpara Is this a program restart after failure (1) or a start from scratch (0) ? 1 Restarting from milestone 161. Can " z = -y " overflow? trying it on y = -8.50705917E+37 Seems O.K. Overflow threshold is v = 1.70141183E+38 There is no saturation value because the system traps on overflow. No overflow should be signaled for v*1 = 1.70141183E+38 nor for v/1 = 1.70141183E+38 Any overflow signal separating this * from one above is a DEFECT. To continue diagnosis, press return. Diagnosis resumes after milestone # 190, ... page 12 What messages and/or values does division by zero produce? About to compute 1/0... %SYSTEM-F-FLTDIV_F, arithmetic fault, floating divide by zero at PC=0000A894, PS L=03C00020 %TRACE-F-TRACEBACK, symbolic stack dump follows module name routine name line rel PC abs PC ZEROS ZEROS 52 00000074 0000A894 DPARA$MAIN DPARA$MAIN 282 000004E4 00004CE4 CVSA3_CBU.PARANOIA> run dpara Is this a program restart after failure (1) or a start from scratch (0) ? 1 Restarting from milestone 211. About to compute 0/0... %SYSTEM-F-FLTDIV_F, arithmetic fault, floating divide by zero at PC=0000A8F0, PS L=03C00020 %TRACE-F-TRACEBACK, symbolic stack dump follows module name routine name line rel PC abs PC ZEROS ZEROS 59 000000D0 0000A8F0 DPARA$MAIN DPARA$MAIN 282 000004E4 00004CE4 CVSA3_CBU.PARANOIA> run dpara Is this a program restart after failure (1) or a start from scratch (0) ? 1 Restarting from milestone 212. To continue diagnosis, press return. Diagnosis resumes after milestone # 220, ... page 13 The number of SERIOUS DEFECTs discovered = 1 The number of FLAWs discovered = 1 The arithmetic diagnosed has unacceptable Serious Defects. End of Test.

Tue Aug 8 13:05:00 GMT+0200 1995