Fix ldbl-128ibm asinhl inaccuracy (bug 18020).
commit137cef7d433407bd2ded8bcc5bea70e5858df47a
authorJoseph Myers <joseph@codesourcery.com>
Wed, 25 Feb 2015 11:13:41 +0000 (25 11:13 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 25 Feb 2015 11:13:41 +0000 (25 11:13 +0000)
treedeb0a6e04c5e7220d1e4eebcf59ab9d792a8eca6
parentcb43bb0d68f001fc3d6e054d712ab8794b5fd1de
Fix ldbl-128ibm asinhl inaccuracy (bug 18020).

The ldbl-128ibm implementation of asinhl uses cut-offs of 0x1p28 and
0x1p-29 to determine when to use simpler formulas that avoid possible
overflow / underflow.  Both those cut-offs are inappropriate for this
format, resulting in large errors.  This patch changes the code to use
more appropriate cut-offs of 0x1p56 and 0x1p-56, adding tests around
the cut-offs for various floating-point formats.

Tested for powerpc.  Also tested for x86_64 and x86 and updated ulps.

[BZ #18020]
* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use 2**56 and
2**-56 not 2**28 and 2**-29 as thresholds for simpler formulas.
* math/auto-libm-test-in: Add more tests of asinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
ChangeLog
NEWS
math/auto-libm-test-in
math/auto-libm-test-out
sysdeps/i386/fpu/libm-test-ulps
sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
sysdeps/x86_64/fpu/libm-test-ulps