[CortexR4] COMMENT: ========================================= [CortexR4] COMMENT: Welcome to ESP - Embedded System Paranoia [CortexR4] COMMENT: Please let me know your experiences [CortexR4] COMMENT: and suggestions at lesh@oakcomp.co.uk or [CortexR4] COMMENT: L.Hatton@kent.ac.uk [CortexR4] COMMENT: [CortexR4] COMMENT: $Revision: 1.9 $ $Date: 2004/04/13 14:21:53 $ [CortexR4] COMMENT: This version will attempt divide by zero. [CortexR4] COMMENT: This version uses [CortexR4] COMMENT: This version uses [CortexR4] COMMENT: This version uses [CortexR4] COMMENT: This version uses single precision, nbits=32 [CortexR4] COMMENT: ========================================= [CortexR4] -------> Diagnosis resuming after Milestone 0, Page 1 [CortexR4] COMMENT: -1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 [CortexR4] PASSED : small integer tests are all OK. [CortexR4] COMMENT: Searching for Radix and Precision. [CortexR4] COMMENT: Radix = 2.0000000e+00 [CortexR4] COMMENT: Closest relative separation found is U1 = 5.9604645e-08 [CortexR4] COMMENT: Recalculating radix and precision [CortexR4] COMMENT: confirms closest relative separation U1. [CortexR4] COMMENT: Checking U1 for sanity... [CortexR4] COMMENT: U1 is a sensible value [CortexR4] COMMENT: Radix confirmed. [CortexR4] -------> Diagnosis resuming after Milestone 10, Page 2 [CortexR4] -------> Diagnosis resuming after Milestone 20, Page 3 [CortexR4] COMMENT: The number of significant digits of the [CortexR4] COMMENT: Radix is 2.4000000e+01 [CortexR4] -------> Diagnosis resuming after Milestone 25, Page 4 [CortexR4] -------> Diagnosis resuming after Milestone 30, Page 5 [CortexR4] COMMENT: Subtraction appears to be normalized, as it should be. [CortexR4] COMMENT: Checking for guard digit in *, / and -. [CortexR4] PASSED : *, /, and - appear to have guard digits, as they should. [CortexR4] -------> Diagnosis resuming after Milestone 35, Page 6 [CortexR4] COMMENT: Checking rounding on multiply, divide and add/subtract. [CortexR4] PASSED : Multiplication appears to round correctly. [CortexR4] -------> Diagnosis resuming after Milestone 40, Page 7 [CortexR4] PASSED : Division appears to round correctly. [CortexR4] -------> Diagnosis resuming after Milestone 45, Page 8 [CortexR4] PASSED : Addition/Subtraction appears to round correctly. [CortexR4] COMMENT: Checking for sticky bit. [CortexR4] [CortexR4] PASSED : Sticky bit apparently used correctly. [CortexR4] -------> Diagnosis resuming after Milestone 50, Page 9 [CortexR4] COMMENT: Testing multiplicative commutation [CortexR4] COMMENT: with random pairs, trials = 20 [CortexR4] PASSED : No failures found during these trials. [CortexR4] -------> Diagnosis resuming after Milestone 60, Page 10 [CortexR4] COMMENT: Running test of exp(log)). [CortexR4] COMMENT: random X, (exp(log(x)) - x) trials = 20 [CortexR4] -------> Diagnosis resuming after Milestone 64, Page 11 [CortexR4] COMMENT: Running test of difference of two squares). [CortexR4] COMMENT: integer X, (X**2-Y**2) - (X-Y)(X+Y) trials = 20 [CortexR4] -------> Diagnosis resuming after Milestone 65, Page 12 [CortexR4] COMMENT: Running transcendental test 1. [CortexR4] COMMENT: random X, (sin(X)**2+cos(X)**2) - 1.0 trials = 20 [CortexR4] -------> Diagnosis resuming after Milestone 66, Page 13 [CortexR4] COMMENT: Running transcendental test 2. [CortexR4] COMMENT: random X, sin(4X) identity trials = 20 [CortexR4] -------> Diagnosis resuming after Milestone 67, Page 14 [CortexR4] COMMENT: Running hyperbolic test 1. [CortexR4] COMMENT: random X, (cosh(X)**2-sinh(X)**2) - 1.0 trials = 20 [CortexR4] -------> Diagnosis resuming after Milestone 68, Page 15 [CortexR4] COMMENT: Running test of square root(x). [CortexR4] COMMENT: Testing integer X, sqrt(X * X) = X, trials = 20 [CortexR4] COMMENT: Test for sqrt monotonicity. [CortexR4] PASSED : sqrt has passed a test for Monotonicity. [CortexR4] -------> Diagnosis resuming after Milestone 70, Page 16 [CortexR4] -------> Diagnosis resuming after Milestone 80, Page 17 [CortexR4] COMMENT: Testing whether sqrt is rounded or chopped. [CortexR4] PASSED : Square root appears to be correctly rounded. [CortexR4] -------> Diagnosis resuming after Milestone 85, Page 18 [CortexR4] -------> Diagnosis resuming after Milestone 90, Page 19 [CortexR4] COMMENT: Testing powers Z^i for small Integers Z and i. [CortexR4] -------> Diagnosis resuming after Milestone 91, Page 20 [CortexR4] PASSED : ... no discrepancies found. [CortexR4] -------> Diagnosis resuming after Milestone 100, Page 21 [CortexR4] COMMENT: Seeking Underflow thresholds UfThold and E0. [CortexR4] -------> Diagnosis resuming after Milestone 110, Page 22 [CortexR4] COMMENT: Smallest strictly positive number found [CortexR4] COMMENT: is E0 = 1.4012985e-45 [CortexR4] COMMENT: Since comparison denies Z = 0, evaluating [CortexR4] COMMENT: (Z + Z) / Z should be safe. [CortexR4] COMMENT: (Z+Z)/Z is OK provided Over/Underflow [CortexR4] COMMENT: has NOT just been signaled. [CortexR4] COMMENT: Underflow is gradual; Absolute roundoff error in UfThold < E0. [CortexR4] COMMENT: The Underflow threshold is 1.1754945e-38 [CortexR4] COMMENT: Below this, a calculation may suffer larger Relative [CortexR4] COMMENT: error than merely roundoff. [CortexR4] -------> Diagnosis resuming after Milestone 120, Page 23 [CortexR4] COMMENT: Since underflow occurs below the threshold [CortexR4] COMMENT: UfThold = 2.0000000e+00 ^ -1.2600000e+02 [CortexR4] COMMENT: only underflow could affect this expression. [CortexR4] COMMENT: calculating yields: 0.0000000e+00 [CortexR4] PASSED : This computed value is O.K. [CortexR4] -------> Diagnosis resuming after Milestone 130, Page 24 [CortexR4] COMMENT: As X -> 1, Testing X^((X + 1) / (X - 1)) against exp(2). [CortexR4] COMMENT: exp(2) = 7.3890557e+00 [CortexR4] PASSED : Accuracy seems adequate. [CortexR4] -------> Diagnosis resuming after Milestone 140, Page 25 [CortexR4] COMMENT: Testing powers Z^Q at four nearly extreme values. [CortexR4] PASSED : ... no discrepancies found. [CortexR4] -------> Diagnosis resuming after Milestone 150, Page 26 [CortexR4] -------> Diagnosis resuming after Milestone 160, Page 27 [CortexR4] COMMENT: Searching for Overflow threshold: [CortexR4] COMMENT: This may generate an error. [CortexR4] COMMENT: Can `Z = -Y' overflow? [CortexR4] COMMENT: Trying it on Y = -Inf [CortexR4] PASSED : Seems O.K. [CortexR4] COMMENT: Overflow threshold is V = 3.4028235e+38 [CortexR4] COMMENT: Overflow saturates at V0 = +Inf [CortexR4] COMMENT: No overflow should be signalled for V*1 = 3.4028235e+38 [CortexR4] COMMENT: No overflow should be signalled for V/1 = 3.4028235e+38 [CortexR4] COMMENT: Any overflow separating V*1 from [CortexR4] COMMENT: V above is a DEFECT. [CortexR4] -------> Diagnosis resuming after Milestone 161, Page 28 [CortexR4] -------> Diagnosis resuming after Milestone 170, Page 29 [CortexR4] -------> Diagnosis resuming after Milestone 175, Page 30 [CortexR4] -------> Diagnosis resuming after Milestone 180, Page 31 [CortexR4] -------> Diagnosis resuming after Milestone 190, Page 32 [CortexR4] -------> Diagnosis resuming after Milestone 191, Page 33 [CortexR4] -------> Diagnosis resuming after Milestone 200, Page 34 [CortexR4] COMMENT: Trying to compute 1/0 gives +Inf [CortexR4] COMMENT: Trying to compute 0/0 gives Nan [CortexR4] -------> Diagnosis resuming after Milestone 210, Page 35 [CortexR4] COMMENT: ========================================= [CortexR4] COMMENT: Embedded System Paranoia SUMMARY [CortexR4] COMMENT: SINGLE PRECISION 32 bits [CortexR4] COMMENT: Closest separation = 5.9604645e-08 [CortexR4] COMMENT: [CortexR4] COMMENT: Number of FAILUREs encountered = 0 [CortexR4] COMMENT: Number of SERIOUS DEFECTs discovered = 0 [CortexR4] COMMENT: Number of DEFECTs discovered = 0 [CortexR4] COMMENT: Number of FLAWs discovered = 0 [CortexR4] COMMENT: [CortexR4] PASSED : No failures, defects nor flaws have been discovered. [CortexR4] COMMENT: Rounding appears to conform to IEEE standard P754 [CortexR4] . [CortexR4] PASSED : The arithmetic diagnosed seems Excellent. [CortexR4] COMMENT: [CortexR4] COMMENT: Rating ... [CortexR4] COMMENT: [CortexR4] COMMENT: =====> Excellent [CortexR4] COMMENT: Very good [CortexR4] COMMENT: Good [CortexR4] COMMENT: Acceptable [CortexR4] COMMENT: Unacceptable [CortexR4] COMMENT: Broken [CortexR4] COMMENT: [CortexR4] COMMENT: ----------------------------------------- [CortexR4] COMMENT: MATHS LIBRARY TESTS [CortexR4] COMMENT: (should all give zero) [CortexR4] COMMENT: [CortexR4] COMMENT: Basic identities [CortexR4] COMMENT: ln(1.0) = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: exp(0.0) - 2.718281828459045235360287 = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: Basic tests (Random over range 0<=X<=1) [CortexR4] COMMENT: Test, exp(log(X)) - X = [CortexR4] COMMENT: -2.9802322e-08 -> 3.7252903e-09 [CortexR4] COMMENT: [CortexR4] COMMENT: Transcendental identities [CortexR4] COMMENT: Test, sin(1.0) - 0.84147098480789650665250 = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: Test, cos(1.0) - 0.54030230586813971740094 = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: Test, asin(1.0) - (pi/2) = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: Test, acos(0.0) - (pi/2) = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: Test, atan(1.0) - (pi/4) = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: Transcendental tests (Random over range 0<=X<=1) [CortexR4] COMMENT: Test, sin**2(X)+cos**2(X)-1.0 = [CortexR4] COMMENT: -5.9604645e-08 -> 1.1920929e-07 [CortexR4] COMMENT: Test, sin(4X)-(8.0*cos**4(X)*tan(X))+(4.0*cos(X)*sin(X)) = [CortexR4] COMMENT: -4.7683716e-07 -> 4.7683716e-07 [CortexR4] COMMENT: [CortexR4] COMMENT: Hyperbolic identities [CortexR4] COMMENT: Test, sinh(0.0) = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: Test, cosh(0.0) - 1.0 = [CortexR4] COMMENT: 0.0000000e+00 [CortexR4] COMMENT: Hyperbolic tests (Random over range 0<=X<=1) [CortexR4] COMMENT: Test, cosh**2(X)-sinh**2(X)-1.0 = [CortexR4] COMMENT: -1.1920929e-07 -> 1.1920929e-07 [CortexR4] COMMENT: [CortexR4] COMMENT: END OF TEST. [CortexR4] COMMENT: =========================================