From 2ca725c594e0c186d928dc0823be7d8b5976112c Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 27 Feb 2015 17:48:37 +0000 Subject: Fix ldbl-96, ldbl-128ibm atanhl inaccuracy (bug 18046, bug 18047). The threshold in ldbl-96 atanhl for when to return the argument, 0x1p-28, is a bit too big, and that in ldbl-128ibm atanhl is much too big (the relevant condition being x^3/3 being < 0.5ulp of x), resulting in errors a bit above the limits of those considered acceptable in glibc in the ldbl-96 case, and in large errors in the ldbl-128ibm case. This patch changes those implementations to use more appropriate thresholds and adds tests around the thresholds for various formats. Tested for x86_64, x86 and powerpc. x86_64 and x86 ulps updated accordingly. [BZ #18046] [BZ #18047] * sysdeps/ieee754/ldbl-128ibm/e_atanhl.c (__ieee754_atanhl): Use 0x1p-56L as threshold for just returning the argument. * sysdeps/ieee754/ldbl-96/e_atanhl.c (__ieee754_atanhl): Use 0x1p-32L as threshold for just returning the argument. * math/auto-libm-test-in: Add more tests of atanh. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulp: Likewise. --- ChangeLog | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index b55d6d613a..8e6b5f16f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2015-02-27 Joseph Myers + + [BZ #18046] + [BZ #18047] + * sysdeps/ieee754/ldbl-128ibm/e_atanhl.c (__ieee754_atanhl): Use + 0x1p-56L as threshold for just returning the argument. + * sysdeps/ieee754/ldbl-96/e_atanhl.c (__ieee754_atanhl): Use + 0x1p-32L as threshold for just returning the argument. + * math/auto-libm-test-in: Add more tests of atanh. + * math/auto-libm-test-out: Regenerated. + * sysdeps/i386/fpu/libm-test-ulps: Update. + * sysdeps/x86_64/fpu/libm-test-ulp: Likewise. + 2015-02-27 Wilco Dijkstra wdijkstr@arm.com * string/bcopy.c (bcopy): Call memmove for performance. -- cgit 1.4.1