aboutsummaryrefslogtreecommitdiff
path: root/math/auto-libm-test-in
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-02-26 21:06:34 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-02-26 21:06:34 +0000
commit1d9ab20c14211abbf45514e63c190dfeec27fa5e (patch)
treecbe705e320799863f477d32c3062f6260c0c72a2 /math/auto-libm-test-in
parentec0ce0d3be4ae21add09139c705852ed8bb114c7 (diff)
downloadglibc-1d9ab20c14211abbf45514e63c190dfeec27fa5e.tar
glibc-1d9ab20c14211abbf45514e63c190dfeec27fa5e.tar.gz
glibc-1d9ab20c14211abbf45514e63c190dfeec27fa5e.tar.bz2
glibc-1d9ab20c14211abbf45514e63c190dfeec27fa5e.zip
Fix ldbl-128/ldbl-128ibm acosl inaccuracy (bug 18038, bug 18039).
The ldbl-128 and ldbl-128ibm implementations of acosl have similar bugs, using a threshold of 0x1p-57L to determine when they just return pi/2. Since the result pi/2 - asinl (x) is roughly pi/2 - x for small x, the relevant cut-off is actually x being < 0.5ulp of 1. This patch fixes the implementations to use that cut-off and adds tests of small acos arguments. Tested for powerpc and mips64. Also tested for x86_64 and x86; no ulps updates needed. [BZ #18038] [BZ #18039] * sysdeps/ieee754/ldbl-128/e_acosl.c (__ieee754_acosl): Only return pi/2 for arguments below 0x1p-113L. * sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Only return pi/2 for arguments below 0x1p-106L. * math/auto-libm-test-in: Add more tests of acos. * math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'math/auto-libm-test-in')
-rw-r--r--math/auto-libm-test-in31
1 files changed, 31 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index bd85805224..19d5396d10 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -33,6 +33,37 @@ acos 0x0.ffffffffffffp0
acos -0x0.ffffffffffffp0
acos 0x0.ffffffffffffffffp0
acos -0x0.ffffffffffffffffp0
+acos 0x1p-5
+acos 0x1p-10
+acos 0x1p-15
+acos 0x1p-20
+acos 0x1p-25
+acos 0x1p-30
+acos 0x1p-35
+acos 0x1p-40
+acos 0x1p-45
+acos 0x1p-50
+acos 0x1p-55
+acos 0x1p-60
+acos 0x1p-65
+acos 0x1p-70
+acos 0x1p-75
+acos 0x1p-80
+acos 0x1p-85
+acos 0x1p-90
+acos 0x1p-95
+acos 0x1p-100
+acos 0x1p-105
+acos 0x1p-110
+acos 0x1p-115
+acos 0x1p-120
+acos -0x1p-5
+acos -0x1p-25
+acos -0x1p-45
+acos -0x1p-65
+acos -0x1p-85
+acos -0x1p-105
+acos -0x1p-125
acos min
acos -min
acos min_subnorm