[PATCH, ARMEL, FPA] revert-arm-ieee-word-endian.patch - correct newlib-1.18.0 soft FP breakage

Jeff Johnston jjohnstn@redhat.com
Fri Jun 18 17:02:00 GMT 2010


Patch has been applied minus the "this is rotten" comment.  If Ralf or 
any others find an issue with the patch later, we can deal with it then.

-- Jeff J.

On 06/18/2010 11:06 AM, Pavel Pisa wrote:
> On Thursday 17 June 2010 11:48:46 Pavel Pisa wrote:
>> I should find time to run paranoia FP test probably.
>> I will report results, when i find time.
>
> I have managed to run paranoia.c test on real
> ARM920T hardware with updated newlib-1.18.0
> and GCC-4.4.4 compiled with default soft-float
> parameters passing for system less environment.
> No problem has been detected.
>
> Double precision run
> ====================
>
> paranoia version 1.1 [cygnus]
> 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.000000 .
> Closest relative separation found is U1 = 1.1102230e-16 .
>
> Recalculating radix and precision
>   confirms closest relative separation U1 .
> Radix confirmed.
> The number of significant digits of the Radix is 53.000000 .
>
> Diagnosis resumes after milestone Number 30          Page: 1
>
> Subtraction appears to be normalized, as it should be.
> Checking for guard digit in *, /, and -.
>       *, /, and - appear to have guard digits, as they should.
>
> Diagnosis resumes after milestone Number 40          Page: 2
>
> Checking rounding on multiply, divide and add/subtract.
> Multiplication appears to round correctly.
> Division appears to round correctly.
> Addition/Subtraction appears to round correctly.
> Checking for sticky bit.
> Sticky bit apparently used correctly.
>
> Does Multiplication commute?  Testing on 20 random pairs.
>       No failures found in 20 integer pairs.
>
> Running test of square root(x).
> Testing if sqrt(X * X) == X for 20 Integers X.
> Test for sqrt monotonicity.
> sqrt has passed a test for Monotonicity.
> Testing whether sqrt is rounded or chopped.
> Square root appears to be correctly rounded.
>
> Diagnosis resumes after milestone Number 90          Page: 3
>
> Testing powers Z^i for small Integers Z and i.
> ... no discrepancies found.
>
> Seeking Underflow thresholds UfThold and E0.
> Smallest strictly positive number found is E0 = 4.94066e-324 .
> Since comparison denies Z = 0, evaluating (Z + Z) / Z should be safe.
> What the machine gets for (Z + Z) / Z is  2.00000000000000000e+00 .
> This is O.K., provided Over/Underflow has NOT just been signaled.
> Underflow is gradual; it incurs Absolute Error =
> (roundoff in UfThold)<  E0.
> The Underflow threshold is 2.22507385850720188e-308,  below which
> calculation may suffer larger Relative error than merely roundoff.
> Since underflow occurs below the threshold
> UfThold = (2.00000000000000000e+00) ^ (-1.02200000000000000e+03)
> only underflow should afflict the expression
> 	(2.00000000000000000e+00) ^ (-2.04400000000000000e+03);
> actually calculating yields: 0.00000000000000000e+00 .
> This computed value is O.K.
>
> Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065218e+00 as X ->  1.
> Accuracy seems adequate.
> Testing powers Z^Q at four nearly extreme values.
>   ... no discrepancies found.
>
>
> Diagnosis resumes after milestone Number 160          Page: 4
>
> Searching for Overflow threshold:
> This may generate an error.
> Can `Z = -Y' overflow?
> Trying it on Y = -inf .
> Seems O.K.
> Overflow threshold is V  = 1.79769313486231571e+308 .
> Overflow saturates at V0 = inf .
> No Overflow should be signaled for V * 1 = 1.79769313486231571e+308
>                             nor for V / 1 = 1.79769313486231571e+308 .
> Any overflow signal separating this * from the one
> above is a DEFECT.
>
>
> Diagnosis resumes after milestone Number 190          Page: 5
>
>
> What message and/or values does Division by Zero produce?
>      Trying to compute 1 / 0 produces ...  inf .
>
>      Trying to compute 0 / 0 produces ...  nan .
>
> Diagnosis resumes after milestone Number 220          Page: 6
>
>
>
> 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!
> END OF TEST.
>
>
>
> Single precision run
> ====================
>
> paranoia version 1.1 [cygnus]
> 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.000000 .
> Closest relative separation found is U1 = 5.9604645e-08 .
>
> Recalculating radix and precision
>   confirms closest relative separation U1 .
> Radix confirmed.
> The number of significant digits of the Radix is 24.000000 .
>
> Diagnosis resumes after milestone Number 30          Page: 1
>
> Subtraction appears to be normalized, as it should be.
> Checking for guard digit in *, /, and -.
>       *, /, and - appear to have guard digits, as they should.
>
> Diagnosis resumes after milestone Number 40          Page: 2
>
> Checking rounding on multiply, divide and add/subtract.
> Multiplication appears to round correctly.
> Division appears to round correctly.
> Addition/Subtraction appears to round correctly.
> Checking for sticky bit.
> Sticky bit apparently used correctly.
>
> Does Multiplication commute?  Testing on 20 random pairs.
>       No failures found in 20 integer pairs.
>
> Running test of square root(x).
> Testing if sqrt(X * X) == X for 20 Integers X.
> Test for sqrt monotonicity.
> sqrt has passed a test for Monotonicity.
> Testing whether sqrt is rounded or chopped.
> Square root appears to be correctly rounded.
>
> Diagnosis resumes after milestone Number 90          Page: 3
>
> Testing powers Z^i for small Integers Z and i.
> ... no discrepancies found.
>
> Seeking Underflow thresholds UfThold and E0.
> Smallest strictly positive number found is E0 = 1.4013e-45 .
> Since comparison denies Z = 0, evaluating (Z + Z) / Z should be safe.
> What the machine gets for (Z + Z) / Z is  2.00000000000000000e+00 .
> This is O.K., provided Over/Underflow has NOT just been signaled.
> Underflow is gradual; it incurs Absolute Error =
> (roundoff in UfThold)<  E0.
> The Underflow threshold is 1.17549449095213394e-38,  below which
> calculation may suffer larger Relative error than merely roundoff.
> Since underflow occurs below the threshold
> UfThold = (2.00000000000000000e+00) ^ (-1.26000000000000000e+02)
> only underflow should afflict the expression
> 	(2.00000000000000000e+00) ^ (-2.52000000000000000e+02);
> actually calculating yields: 0.00000000000000000e+00 .
> This computed value is O.K.
>
> Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905572891235352e+00 as X ->  1.
> Accuracy seems adequate.
> Testing powers Z^Q at four nearly extreme values.
>   ... no discrepancies found.
>
>
> Diagnosis resumes after milestone Number 160          Page: 4
>
> Searching for Overflow threshold:
> This may generate an error.
> Can `Z = -Y' overflow?
> Trying it on Y = -inf .
> Seems O.K.
> Overflow threshold is V  = 3.40282346638528860e+38 .
> Overflow saturates at V0 = inf .
> No Overflow should be signaled for V * 1 = 3.40282346638528860e+38
>                             nor for V / 1 = 3.40282346638528860e+38 .
> Any overflow signal separating this * from the one
> above is a DEFECT.
>
>
> Diagnosis resumes after milestone Number 190          Page: 5
>
>
> What message and/or values does Division by Zero produce?
>      Trying to compute 1 / 0 produces ...  inf .
>
>      Trying to compute 0 / 0 produces ...  nan .
>
> Diagnosis resumes after milestone Number 220          Page: 6
>
>
>
> 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!
> END OF TEST.
>
> Best wishes,
>
>                  Pavel Pisa
>
> ==================================================
>   PiKRON s.r.o.       Phone/Fax: +420 2 84684676
>   Kankovskeho 1235    Phone:     +420 2 84684676
>   182 00 Praha 8      WWW:   http://www.pikron.com/
>   Czech Republic      e-mail:  pikron@pikron.com
> ==================================================



More information about the Newlib mailing list