Age | Commit message (Collapse) | Author | |
---|---|---|---|
2013-12-19 | Fix x86/x86_64 expm1 inaccuracy near 0 in directed rounding modes (bug 16293). | Joseph Myers | |
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. | |||
2013-01-02 | Update copyright notices with scripts/update-copyrights. | Joseph Myers | |
2012-08-02 | Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}. | Marek Polacek | |
2012-07-06 | Fix expm1 spurious underflow exceptions (bug 6778). | Joseph Myers | |
2012-02-09 | Replace FSF snail mail address with URLs. | Paul Eggert | |
2012-02-07 | Remove __ELF__ conditionals | Marek Polacek | |
2009-10-19 | Correct errno handling in expm1. | Andreas Schwab | |
2005-05-04 | * intl/Makefile (tst-gettext[45].out): Pass also $(run-program-prefix)cvs/fedora-glibc-20050504T1818 | Ulrich Drepper | |
as argument to the scripts. * intl/tst-gettext2.sh: Use mkdir -p instead of test -d + mkdir. * intl/tst-gettext4.sh: Likewise. Use run_program_prefix argument. * intl/tst-gettext5.sh: Likewise. * intl/tst-translit.sh: Add mkdir -p. * sysdeps/unix/sysv/linux/i386/sysdep.h (SETUP_PIC_REG): Use .ifndef/.endif to allow use of this macro more than once per .S file. (LOAD_PIC_REG): New macro. * sysdeps/unix/sysv/linux/i386/makecontext.S: Add call frame information. * sysdeps/unix/sysv/linux/i386/getcontext.S: Likewise. * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise. * sysdeps/i386/fpu/s_asinh.S: Use LOAD_PIC_REG macro. Add call frame information. * sysdeps/i386/fpu/e_log10f.S: Likewise. * sysdeps/i386/fpu/s_expm1.S: Likewise. * sysdeps/i386/fpu/e_acoshf.S: Likewise. * sysdeps/i386/fpu/e_log2l.S: Likewise. * sysdeps/i386/fpu/s_log1pf.S: Likewise. * sysdeps/i386/fpu/s_lrint.S: Likewise. * sysdeps/i386/fpu/s_llrint.S: Likewise. * sysdeps/i386/fpu/s_ilogbf.S: Likewise. * sysdeps/i386/fpu/s_cbrtl.S: Likewise. * sysdeps/i386/fpu/s_asinhf.S: Likewise. * sysdeps/i386/fpu/e_log.S: Likewise. * sysdeps/i386/fpu/e_atanhf.S: Likewise. * sysdeps/i386/fpu/s_lrintl.S: Likewise. * sysdeps/i386/fpu/e_atanhl.S: Likewise. * sysdeps/i386/fpu/e_scalb.S: Likewise. * sysdeps/i386/fpu/s_log1p.S: Likewise. * sysdeps/i386/fpu/s_nearbyintl.S: Likewise. * sysdeps/i386/fpu/s_frexpl.S: Likewise. * sysdeps/i386/fpu/s_log1pl.S: Likewise. * sysdeps/i386/fpu/s_nearbyintf.S: Likewise. * sysdeps/i386/fpu/s_cbrt.S: Likewise. * sysdeps/i386/fpu/s_expm1l.S: Likewise. * sysdeps/i386/fpu/s_lrintf.S: Likewise. * sysdeps/i386/fpu/e_acosh.S: Likewise. * sysdeps/i386/fpu/s_cexp.S: Likewise. * sysdeps/i386/fpu/s_ilogbl.S: Likewise. * sysdeps/i386/fpu/s_expm1f.S: Likewise. * sysdeps/i386/fpu/e_powl.S: Likewise. * sysdeps/i386/fpu/e_powf.S: Likewise. * sysdeps/i386/fpu/e_scalbf.S: Likewise. * sysdeps/i386/fpu/e_logl.S: Likewise. * sysdeps/i386/fpu/e_acoshl.S: Likewise. * sysdeps/i386/fpu/s_frexp.S: Likewise. * sysdeps/i386/fpu/e_pow.S: Likewise. * sysdeps/i386/fpu/e_logf.S: Likewise. * sysdeps/i386/fpu/e_log2.S: Likewise. * sysdeps/i386/fpu/s_frexpf.S: Likewise. * sysdeps/i386/fpu/s_cexpl.S: Likewise. * sysdeps/i386/fpu/s_llrintf.S: Likewise. * sysdeps/i386/fpu/s_ilogb.S: Likewise. * sysdeps/i386/fpu/e_scalbl.S: Likewise. * sysdeps/i386/fpu/e_atanh.S: Likewise. * sysdeps/i386/fpu/e_log10.S: Likewise. * sysdeps/i386/fpu/s_cbrtf.S: Likewise. * sysdeps/i386/fpu/s_cexpf.S: Likewise. * sysdeps/i386/fpu/s_llrintl.S: Likewise. * sysdeps/i386/fpu/e_log10l.S: Likewise. * sysdeps/i386/fpu/s_nearbyint.S: Likewise. * sysdeps/i386/fpu/s_asinhl.S: Likewise. * sysdeps/i386/fpu/e_log2f.S: Likewise. * sysdeps/i386/addmul_1.S: Various fixes to cfi handling. * sysdeps/i386/mul_1.S: Likewise. * sysdeps/i386/strtok.S: Likewise. * sysdeps/i386/sub_n.S: Likewise. * sysdeps/i386/submul_1.S: Likewise. * sysdeps/i386/i586/addmul_1.S: Likewise. * sysdeps/i386/i586/memcpy.S: Likewise. * sysdeps/i386/i586/mul_1.S: Likewise. * sysdeps/i386/i586/rshift.S: Likewise. * sysdeps/i386/i586/sub_n.S: Likewise. * sysdeps/i386/i586/submul_1.S: Likewise. * sysdeps/i386/i686/memcmp.S: Likewise. * sysdeps/i386/i686/memmove.S: Likewise. * sysdeps/unix/sysv/linux/i386/clone.S: Likewise. * sysdeps/unix/sysv/linux/i386/mmap.S: Likewise. * sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise. * sysdeps/unix/sysv/linux/i386/setcontext.S: Likewise. | |||
2004-12-22 | (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. | Ulrich Drepper | |
2007-07-12 | 2.5-18.1 | Jakub Jelinek | |
2001-07-06 | Update to LGPL v2.1. | Andreas Jaeger | |
2001-07-06 Paul Eggert <eggert@twinsun.com> * manual/argp.texi: Remove ignored LGPL copyright notice; it's not appropriate for documentation anyway. * manual/libc-texinfo.sh: "Library General Public License" -> "Lesser General Public License". 2001-07-06 Andreas Jaeger <aj@suse.de> * All files under GPL/LGPL version 2: Place under LGPL version 2.1. | |||
1999-07-14 | Update. | Ulrich Drepper | |