BTW, while looking into this, I checked netlib's paranoia (against gcc version 4.4.1 20090725 (Red Hat 4.4.1-2))
While on x86_64 it passed all tests with flying colors even with highest level of optimization, on i386 it failed quite miserably: =============================== gcc -O0 -o paranoia paranoia.c -lm <skipping some passed tests> 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 is neither chopped nor correctly rounded. Observed errors run from -5.0000000e-01 to 5.0000000e-01 ulps. Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065218e+00 as X -> 1. DEFECT: Calculated 7.38905609548934539e+00 for (1 + (-1.11022302462515654e-16) ^ (-1.80143985094819840e+16); differs from correct value by -3.44130679508225512e-09 . This much error may spoil financial calculations involving tiny interest rates. <deletia> ==================== Now trying with -O2 <deletia> Checking for guard digit in *, /, and -. SERIOUS DEFECT: - lacks Guard Digit, so cancellation is obscured. Checking rounding on multiply, divide and add/subtract. * is neither chopped nor correctly rounded. / is neither chopped nor correctly rounded. Addition/Subtraction neither rounds nor chops. 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. Running test of square root(x). Testing if sqrt(X * X) == X for 20 Integers X. Test for sqrt monotonicity. DEFECT: sqrt(X) is non-monotonic for X near 2.0000000e+00 . Testing whether sqrt is rounded or chopped. Square root is neither chopped nor correctly rounded. Observed errors run from -5.5000000e+00 to 5.0000000e-01 ulps. SERIOUS DEFECT: sqrt gets too many last digits wrong. Testing powers Z^i for small Integers Z and i. DEFECT: computing (1.30000000000000000e+01) ^ (1.70000000000000000e+01) yielded 8.65041591938133811e+18; which compared unequal to correct 8.65041591938133914e+18 ; they differ by -1.02400000000000000e+03 . Errors like this may invalidate financial calculations involving interest rates. Similar discrepancies have occurred 4 times. Seeking Underflow thresholds UfThold and E0. FAILURE: multiplication gets too many last digits wrong. Smallest strictly positive number found is E0 = 0 . FAILURE: Either accuracy deteriorates as numbers approach a threshold = 0.00000000000000000e+00 coming down from 0.00000000000000000e+00 or else multiplication gets too many last digits wrong. Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065041e+00 as X -> 1. DEFECT: Calculated 1.00000000000000000e+00 for (1 + (0.00000000000000000e+00) ^ (inf); differs from correct value by -6.38905609893065041e+00 . This much error may spoil financial calculations involving tiny interest rates. Searching for Overflow threshold: This may generate an error. Can `Z = -Y' overflow? Trying it on Y = -inf . finds a FLAW: -(-Y) differs from Y. Overflow threshold is V = -inf . Overflow saturates at V0 = inf . No Overflow should be signaled for V * 1 = -inf nor for V / 1 = -inf . Any overflow signal separating this * from the one above is a DEFECT. FAILURE: Comparisons involving +--inf, +-inf and +-0 are confused by Overflow. SERIOUS DEFECT: X / X differs from 1 when X = -inf instead, X / X - 1/2 - 1/2 = nan . SERIOUS DEFECT: X / X differs from 1 when X = 0.00000000000000000e+00 instead, X / X - 1/2 - 1/2 = nan . The number of FAILUREs encountered = 4. The number of SERIOUS DEFECTs discovered = 4. The number of DEFECTs discovered = 3. The number of FLAWs discovered = 2. The arithmetic diagnosed has unacceptable Serious Defects. Potentially fatal FAILURE may have spoiled this program's subsequent diagnoses. END OF TEST. =========================================== -mieee-fp does not seem to change anything.... FWIW. Dmitri. -- ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Octave-dev mailing list Octave-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/octave-dev