about summary refs log tree commit diff
path: root/sysdeps/i386/fpu/libm-test-ulps
Commit message (Collapse)AuthorAgeFilesLines
* Move tests of sincos from libm-test.inc to auto-libm-test-in.Joseph Myers2013-12-191-0/+6
| | | | | | | | | | | | | | | | | | | | This patch moves tests of sincos to auto-libm-test-in, adding the required support to gen-auto-libm-tests. Tested x86_64 and x86 and ulps updated accordingly. (auto-libm-test-out diffs omitted below.) * math/auto-libm-test-in: Add tests of sincos. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (sincos_test_data): Use AUTO_TESTS_fFF_11. * math/gen-auto-libm-tests.c (func_calc_method): Add value mpfr_f_11. (func_calc_desc): Add mpfr_f_11 union field. (test_functions): Add sincos. (calc_generic_results): Handle mpfr_f_11. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Disable libm-test test name beautification for M_* constants.Joseph Myers2013-12-191-0/+3
| | | | | | | | | | | | | | | | | | | | | math/gen-libm-test.pl has code to beautify names of various constants, transforming the source form in libm-test.inc into the version appearing in test names in libm-test-ulps files. This has become decreasingly relevant over time for the M_* constants, first as I changed the test names so only the arguments and not the expected results appeared in them, then as tests have moved to auto-libm-test-* so that automatically generated hex float constants get used instead of M_* in test inputs. This patch removes the beautification for all M_* constants. Tested x86_64 and x86 and ulps updated accordingly. Even the one case where this affected the name in the ulps files will disappear once complex function tests are moved to auto-libm-test-*. * math/gen-libm-test.pl (%beautify): Remove M_* constants. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Fix x86/x86_64 expm1 inaccuracy near 0 in directed rounding modes (bug 16293).Joseph Myers2013-12-191-0/+375
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug 16293 is inaccuracy of x86/x86_64 versions of expm1, near 0 in directed rounding modes, that arises from frndint rounding the exponent to 1 or -1 instead of 0, resulting in large cancellation error. This inaccuracy in turn affects other functions such as sinh that use expm1. This patch fixes the problem by setting round-to-nearest mode temporarily around the affected calls to frndint. I don't think this is needed for other uses of frndint, such as in exp itself, as only for expm1 is the cancellation error significant. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Set round-to-nearest mode when using frndint. * sysdeps/i386/fpu/s_expm1.S (__expm1): Likewise. * sysdeps/i386/fpu/s_expm1f.S (__expm1f): Likewise. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Likewise. * math/auto-libm-test-in: Add more tests of expm1. Do not expect sinh test to fail. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (TEST_COND_x86_64): Remove macro. (TEST_COND_x86): Likewise. (expm1_tonearest_test_data): New array. (expm1_test_tonearest): New function. (expm1_towardzero_test_data): New array. (expm1_test_towardzero): New function. (expm1_downward_test_data): New array. (expm1_test_downward): New function. (expm1_upward_test_data): New array. (expm1_test_upward): New function. (main): Run the new test functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Move tests of jn and yn from libm-test.inc to auto-libm-test-in.Joseph Myers2013-12-181-2/+378
| | | | | | | | | | | | | | | | | | | | | | | | | This patch moves tests of jn and yn to auto-libm-test-in, adding the required support for gen-auto-libm-tests (and adding a missing assertion there and fixing logic that was broken for functions with integer arguments). Tested x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add tests of jn and yn. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (jn_test_data): Use AUTO_TESTS_if_f. (yn_test_data): Likewise. * math/gen-auto-libm-tests.c (func_calc_method): Add value mpfr_if_f. (func_calc_desc): Add mpfr_if_f union field. (FUNC_mpfr_if_f): New macro. (test_functions): Add jn and yn. (calc_generic_results): Assert type of second input for mpfr_ff_f. Handle mpfr_if_f. (output_for_one_input_case): Disable all checking for arguments fitting floating-point types in case of an integer argument. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Fix ldbl-128 logl for subnormals (bug 16338).Joseph Myers2013-12-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | This patch fixes bug 16338, ldbl-128 logl not handling subnormals (with consequent inaccuracy for lgammal as well). The fix is simply to use __frexpl when determining the exponent, as done already in log2l and log10l. Given the lack of testing of small arguments to any of the log* functions, appropriate tests are added for all of them. Tested x86_64 and x86 and ulps updated accordingly, and spot tests also run for mips64 to confirm the ldbl-128 fix. Note that while this fixes lgammal inaccuracy for small positive arguments, I suspect that there will still be problems with spurious underflows in that case. * sysdeps/ieee754/ldbl-128/e_logl.c (__ieee754_logl): Use __frexpl to determine exponent and adjust argument to have exponent of -1. * math/auto-libm-test-in: Add more tests of log, log10, log1p and log2. * math/auto-libm-test-out: Regenerated. * sysdeps/x86_64/fpu/libm-test-ulps: Update.
* Move tests of atan2, hypot and pow from libm-test.inc to auto-libm-test-in.Joseph Myers2013-12-161-0/+120
|
* Move tests of lgamma from libm-test.inc to auto-libm-test-in.Joseph Myers2013-12-081-0/+68
|
* Fix tgamma errno setting on underflow (bug 6810).Joseph Myers2013-12-051-0/+3
|
* Move TEST_f_f tests for [l-y]* functions from libm-test.inc to ↵Joseph Myers2013-12-051-3/+1980
| | | | auto-libm-test-in.
* Fix Bessel function error handling (bug 6807, bug 15901).Joseph Myers2013-12-041-0/+3
|
* Fix exp missing underflows (bug 15268, bug 15425).Joseph Myers2013-12-031-0/+32
|
* Fix erfc errno setting on underflow (bug 6786).Joseph Myers2013-12-031-0/+3
|
* Move TEST_f_f tests for [e-j]* functions from libm-test.inc to ↵Joseph Myers2013-12-031-0/+158
| | | | auto-libm-test-in.
* Move TEST_f_f tests for [a-c]* functions from libm-test.inc to ↵Joseph Myers2013-11-301-0/+549
| | | | auto-libm-test-in.
* Fix lgammaf spurious underflow (bug 15427).Joseph Myers2013-09-031-0/+52
|
* Fix spurious jnf underflows (bug 14155).Joseph Myers2013-09-021-2/+18
|
* Update x86 and x86_64 ulps on AMD FX-8350 with GCC 4.8.1.Jeroen Albers2013-07-051-2/+390
|
* Update i386 ULPs.Allan McRae2013-07-031-0/+80
| | | | * sysdeps/i386/fpu/libm-test-ulps: Update.
* Regenerate x86 and x86_64 ulps.Joseph Myers2013-07-021-760/+86
|
* Test drem and pow10 in libm-test.inc.Joseph Myers2013-05-241-0/+9
|
* Use same tests for isfinite/finite, lgamma/gamma.Joseph Myers2013-05-241-0/+12
|
* Don't include expected results in libm-test test names.Joseph Myers2013-05-221-1800/+1800
|
* Handle sincos with generic libm-test logic.Joseph Myers2013-05-191-9/+9
|
* Convert TEST_ff_f tests from code to data.Joseph Myers2013-05-121-0/+4
|
* Improve tgamma accuracy (bugs 2546, 2560, 5159, 15426).Joseph Myers2013-05-081-6/+590
|
* Fix catan, catanh spurious underflows (bug 15423).Joseph Myers2013-05-011-0/+144
|
* Fix catan, catanh inaccuracy from atan2 denominators near 0 (bug 15416).Joseph Myers2013-04-301-0/+104
|
* Fix catan, catanh spurious overflows (bug 15409).Joseph Myers2013-04-271-0/+50
|
* Update i386 libm-test ULPsAllan McRae2013-04-271-0/+80
|
* Fix catan, catanh inaccuracy through use of log (bug 15394).Joseph Myers2013-04-241-0/+2
|
* libm-test.inc: Fix tests where cos(PI/2) != 0.Carlos O'Donell2013-04-111-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The value of PI is never exactly PI in any floating point representation, and the value of PI/2 is never PI/2. It is wrong to expect cos(M_PI_2l) to return 0, instead it will return an answer that is non-zero because M_PI_2l doesn't round to exactly PI/2 in the type used. That is to say that the correct answer is to do the following: * Take PI or PI/2. * Round to the floating point representation. * Take the rounded value and compute an infinite precision cos or sin. * Use the rounded result of the infinite precision cos or sin as the answer to the test. I used printf to do the type rounding, and Wolfram's Alpha to do the infinite precision cos calculations. The following changes bring x86-64 and x86 to 1/2 ulp for two tests. It shows that the x86 cos implementation is quite good, and that our test are flawed. Unfortunately given that the rounding errors are type dependent we need to fix this for each type. No regressions on x86-64 or x86. --- 2013-04-11 Carlos O'Donell <carlos@redhat.com> * math/libm-test.inc (cos_test): Fix PI/2 test. (sincos_test): Likewise. * sysdeps/x86_64/fpu/libm-test-ulps: Regenerate. * sysdeps/i386/fpu/libm-test-ulps: Regenerate.
* Fix cacosh inaccuracy and spurious exceptions (bug 15327).Joseph Myers2013-04-021-30/+692
|
* Fix casinh inaccuracy for imaginary part < 1.0, real part small (bug 10357).Joseph Myers2013-03-301-152/+1030
|
* Fix casinh inaccuracy near i, imaginary part > 1 (bug 15307).Joseph Myers2013-03-271-0/+340
|
* Fix Bessel function spurious overflows for ldbl-128 / ldbl-128ibm (bug 15285).Joseph Myers2013-03-211-0/+6
|
* Fix casinh inaccuracy for argument with imaginary part 1 (bug 15287).Joseph Myers2013-03-211-0/+678
|
* Fix y1l spurious overflows for ldbl-96 (bug 15283).Joseph Myers2013-03-161-0/+12
|
* Fix casinh spurious underflows away from [-i,i] (bug 15062).Joseph Myers2013-01-311-0/+180
|
* Fix cacos real-part inaccuracy for result real part near 0 (bug 15023).Joseph Myers2013-01-171-0/+6
|
* Fix casinh, casin overflow (bug 14996).Joseph Myers2013-01-071-0/+12
|
* Fix casinh, casin inaccuracy from cancellation (bug 14994).Joseph Myers2013-01-041-0/+41
|
* Fix powl inaccuracy for x86_64 and x86 (bug 13881).Joseph Myers2012-11-281-0/+9
|
* Update i386 libm-test ULPsAndreas Schwab2012-11-221-6/+12
|
* Correct tinyness handling in long-double and float y0/y1.David S. Miller2012-11-181-0/+25
| | | | | | | | | | | | | | | | | With help from Joseph Myers. * sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_y0f): Adjust tinyness cutoff to 2**-13. * sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Adjust tinyness cutoff to 2**-25. * sysdeps/ieee754/ldbl-128/e_j0l.c (U0): New constant. ( __ieee754_y0l): Avoid arithmetic underflow when 'x' is very small. * sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_y1l): Likewise. * math/libm-test.inc (y0_test): New tests. (y1_test): New tests. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Update. * sysdeps/sparc/fpu/libm-test-ulps: Update.
* Fix inaccuracy of clog, clog10 near |z| = 1 (bug 13629).Joseph Myers2012-09-251-0/+117
|
* Add optimized sincosf for SSE2 for x86 and x86-64Liubov Dmitrieva2012-09-251-13/+20
|
* Update i386 ULPs for recently added math testsAllan McRae2012-09-121-0/+8
|
* Update libm-test-ulpsAndreas Jaeger2012-09-031-0/+3
|
* Another ULPs update.Andreas Jaeger2012-08-141-0/+1
|
* Update i386 ULPsAndreas Jaeger2012-08-141-0/+2
|