aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/fpu
AgeCommit message (Collapse)Author
2013-12-08Move tests of lgamma from libm-test.inc to auto-libm-test-in.Joseph Myers
2013-12-05Fix tgamma errno setting on underflow (bug 6810).Joseph Myers
2013-12-05Move TEST_f_f tests for [l-y]* functions from libm-test.inc to ↵Joseph Myers
auto-libm-test-in.
2013-12-04Fix Bessel function error handling (bug 6807, bug 15901).Joseph Myers
2013-12-03Fix exp missing underflows (bug 15268, bug 15425).Joseph Myers
2013-12-03Fix erfc errno setting on underflow (bug 6786).Joseph Myers
2013-12-03Move TEST_f_f tests for [e-j]* functions from libm-test.inc to ↵Joseph Myers
auto-libm-test-in.
2013-11-30Move TEST_f_f tests for [a-c]* functions from libm-test.inc to ↵Joseph Myers
auto-libm-test-in.
2013-11-29Fix x86 sqrt rounding (bug 14032).Joseph Myers
2013-11-28Fix dbl-64 e_sqrt.c for non-default rounding modes (bug 16271).Joseph Myers
2013-11-16Fix spurious "inexact" exceptions from x86 pow with NaN argument (bug 16167).Joseph Myers
2013-09-03Fix lgammaf spurious underflow (bug 15427).Joseph Myers
2013-09-02Fix spurious jnf underflows (bug 14155).Joseph Myers
2013-08-21Fix typos.Ondřej Bílka
2013-07-05Update x86 and x86_64 ulps on AMD FX-8350 with GCC 4.8.1.Jeroen Albers
2013-07-03Update i386 ULPs.Allan McRae
* sysdeps/i386/fpu/libm-test-ulps: Update.
2013-07-02Regenerate x86 and x86_64 ulps.Joseph Myers
2013-06-12Set/restore rounding mode only when neededSiddhesh Poyarekar
The most common use case of math functions is with default rounding mode, i.e. rounding to nearest. Setting and restoring rounding mode is an unnecessary overhead for this, so I've added support for a context, which does the set/restore only if the FP status needs a change. The code is written such that only x86 uses these. Other architectures should be unaffected by it, but would definitely benefit if the set/restore has as much overhead relative to the rest of the code, as the x86 bits do. Here's a summary of the performance improvement due to these improvements; I've only mentioned functions that use the set/restore and have benchmark inputs for x86_64: Before: cos(): ITERS:4.69335e+08: TOTAL:28884.6Mcy, MAX:4080.28cy, MIN:57.562cy, 16248.6 calls/Mcy exp(): ITERS:4.47604e+08: TOTAL:28796.2Mcy, MAX:207.721cy, MIN:62.385cy, 15543.9 calls/Mcy pow(): ITERS:1.63485e+08: TOTAL:28879.9Mcy, MAX:362.255cy, MIN:172.469cy, 5660.86 calls/Mcy sin(): ITERS:3.89578e+08: TOTAL:28900Mcy, MAX:704.859cy, MIN:47.583cy, 13480.2 calls/Mcy tan(): ITERS:7.0971e+07: TOTAL:28902.2Mcy, MAX:1357.79cy, MIN:388.58cy, 2455.55 calls/Mcy After: cos(): ITERS:6.0014e+08: TOTAL:28875.9Mcy, MAX:364.283cy, MIN:45.716cy, 20783.4 calls/Mcy exp(): ITERS:5.48578e+08: TOTAL:28764.9Mcy, MAX:191.617cy, MIN:51.011cy, 19071.1 calls/Mcy pow(): ITERS:1.70013e+08: TOTAL:28873.6Mcy, MAX:689.522cy, MIN:163.989cy, 5888.18 calls/Mcy sin(): ITERS:4.64079e+08: TOTAL:28891.5Mcy, MAX:6959.3cy, MIN:36.189cy, 16062.8 calls/Mcy tan(): ITERS:7.2354e+07: TOTAL:28898.9Mcy, MAX:1295.57cy, MIN:380.698cy, 2503.7 calls/Mcy So the improvements are: cos: 27.9089% exp: 22.6919% pow: 4.01564% sin: 19.1585% tan: 1.96086% The downside of the change is that it will have an adverse performance impact on non-default rounding modes, but I think the tradeoff is justified.
2013-05-31Link extra-libs consistently with libc and ld.so.Joseph Myers
2013-05-24Test drem and pow10 in libm-test.inc.Joseph Myers
2013-05-24Use same tests for isfinite/finite, lgamma/gamma.Joseph Myers
2013-05-22Don't include expected results in libm-test test names.Joseph Myers
2013-05-19Handle sincos with generic libm-test logic.Joseph Myers
2013-05-12Convert TEST_ff_f tests from code to data.Joseph Myers
2013-05-08Improve tgamma accuracy (bugs 2546, 2560, 5159, 15426).Joseph Myers
2013-05-01Fix catan, catanh spurious underflows (bug 15423).Joseph Myers
2013-04-30Fix catan, catanh inaccuracy from atan2 denominators near 0 (bug 15416).Joseph Myers
2013-04-27Fix catan, catanh spurious overflows (bug 15409).Joseph Myers
2013-04-27Update i386 libm-test ULPsAllan McRae
2013-04-24Fix catan, catanh inaccuracy through use of log (bug 15394).Joseph Myers
2013-04-11libm-test.inc: Fix tests where cos(PI/2) != 0.Carlos O'Donell
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.
2013-04-03Refer to two GCC PRs.Thomas Schwinge
2013-04-02Fix cacosh inaccuracy and spurious exceptions (bug 15327).Joseph Myers
2013-03-30Fix casinh inaccuracy for imaginary part < 1.0, real part small (bug 10357).Joseph Myers
2013-03-27Fix casinh inaccuracy near i, imaginary part > 1 (bug 15307).Joseph Myers
2013-03-21On 32-bit x86, disable certain tests involving sNaN values.Thomas Schwinge
Follow-up to commit 495ded2c8c1eb8c0ac4b54add2dd397852e19cba.
2013-03-21Fix Bessel function spurious overflows for ldbl-128 / ldbl-128ibm (bug 15285).Joseph Myers
2013-03-21Fix casinh inaccuracy for argument with imaginary part 1 (bug 15287).Joseph Myers
2013-03-16Fix y1l spurious overflows for ldbl-96 (bug 15283).Joseph Myers
2013-02-21Remove remaining bounded-pointers support from i386 .S files.Joseph Myers
2013-02-19Remove some bounded-pointers support from i386 .S files.Joseph Myers
2013-02-14Remove bp-sym.h and BP_SYM uses from C code.Joseph Myers
2013-01-31Fix casinh spurious underflows away from [-i,i] (bug 15062).Joseph Myers
2013-01-18Fix application of the exception maskSiddhesh Poyarekar
Fixes BZ #14496.
2013-01-17Fix cacos real-part inaccuracy for result real part near 0 (bug 15023).Joseph Myers
2013-01-07Fix casinh, casin overflow (bug 14996).Joseph Myers
2013-01-04Fix casinh, casin inaccuracy from cancellation (bug 14994).Joseph Myers
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2012-11-28Fix powl inaccuracy for x86_64 and x86 (bug 13881).Joseph Myers
2012-11-22Update i386 libm-test ULPsAndreas Schwab