summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorPaul Zimmermann <Paul.Zimmermann@inria.fr>2020-03-30 15:55:55 +0200
committerCarlos O'Donell <carlos@redhat.com>2020-03-31 21:48:54 -0400
commita9d42c09a327540a99f2eac25a98fd2ad6d0b540 (patch)
tree2868b4c24e993154324f514af46329e43b2c7d1e /sysdeps
parent49c3c37651e2d2ec4ff8ce21252bbbc08a9d6639 (diff)
downloadglibc-a9d42c09a327540a99f2eac25a98fd2ad6d0b540.tar.gz
glibc-a9d42c09a327540a99f2eac25a98fd2ad6d0b540.tar.xz
glibc-a9d42c09a327540a99f2eac25a98fd2ad6d0b540.zip
math: Add inputs that yield larger errors for float type (x86_64)
The corner cases included were generated using exhaustive search
for all float/binary32 values on x86_64 (comparing to MPFR for
correct rounding to nearest).

For the j0/j1/y0 functions, only cases with ulp error <= 9 were
included.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps35
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps88
2 files changed, 64 insertions, 59 deletions
diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
index d293214fbc..670a8c370a 100644
--- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
+++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
@@ -766,7 +766,7 @@ ldouble: 2
 
 Function: "cosh":
 double: 1
-float: 1
+float: 2
 float128: 1
 ldouble: 2
 
@@ -1125,6 +1125,7 @@ ldouble: 5
 
 Function: "exp":
 double: 1
+float: 1
 float128: 1
 ldouble: 1
 
@@ -1250,7 +1251,7 @@ ldouble: 1
 
 Function: "j0":
 double: 2
-float: 2
+float: 5
 float128: 2
 ldouble: 2
 
@@ -1270,13 +1271,13 @@ Function: "j0_upward":
 double: 3
 float: 3
 float128: 5
-ldouble: 4
+ldouble: 6
 
 Function: "j1":
 double: 2
-float: 2
+float: 5
 float128: 4
-ldouble: 1
+ldouble: 5
 
 Function: "j1_downward":
 double: 3
@@ -1575,13 +1576,13 @@ ldouble: 5
 
 Function: "tgamma_downward":
 double: 6
-float: 5
+float: 7
 float128: 5
 ldouble: 5
 
 Function: "tgamma_towardzero":
 double: 6
-float: 5
+float: 7
 float128: 5
 ldouble: 5
 
@@ -1607,37 +1608,37 @@ Function: "y0_towardzero":
 double: 3
 float: 3
 float128: 3
-ldouble: 5
+ldouble: 6
 
 Function: "y0_upward":
 double: 3
 float: 5
 float128: 3
-ldouble: 3
+ldouble: 5
 
 Function: "y1":
 double: 3
 float: 2
-float128: 2
-ldouble: 2
+float128: 5
+ldouble: 3
 
 Function: "y1_downward":
 double: 3
-float: 4
-float128: 4
+float: 5
+float128: 5
 ldouble: 7
 
 Function: "y1_towardzero":
 double: 3
-float: 2
-float128: 2
+float: 4
+float128: 6
 ldouble: 5
 
 Function: "y1_upward":
 double: 7
 float: 3
-float128: 5
-ldouble: 7
+float128: 6
+ldouble: 9
 
 Function: "yn":
 double: 3
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 7dc9252bc9..196e60d0b9 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -73,7 +73,7 @@ ldouble: 1
 
 Function: "asinh":
 double: 1
-float: 1
+float: 2
 float128: 3
 ldouble: 3
 
@@ -761,6 +761,7 @@ ldouble: 1
 
 Function: "cos":
 double: 1
+float: 1
 float128: 1
 ldouble: 1
 
@@ -804,7 +805,7 @@ float: 1
 
 Function: "cosh":
 double: 1
-float: 1
+float: 2
 float128: 1
 ldouble: 2
 
@@ -1135,7 +1136,7 @@ ldouble: 1
 
 Function: "erfc":
 double: 3
-float: 2
+float: 3
 float128: 2
 ldouble: 3
 
@@ -1158,11 +1159,13 @@ float128: 5
 ldouble: 5
 
 Function: "exp":
+float: 1
 float128: 1
 ldouble: 1
 
 Function: "exp10":
 double: 2
+float: 1
 float128: 2
 ldouble: 1
 
@@ -1269,22 +1272,22 @@ ldouble: 4
 
 Function: "gamma":
 double: 4
-float: 4
+float: 7
 ldouble: 4
 
 Function: "gamma_downward":
 double: 5
-float: 4
+float: 7
 ldouble: 7
 
 Function: "gamma_towardzero":
 double: 5
-float: 4
+float: 6
 ldouble: 7
 
 Function: "gamma_upward":
 double: 5
-float: 5
+float: 6
 ldouble: 6
 
 Function: "hypot":
@@ -1309,7 +1312,7 @@ ldouble: 1
 
 Function: "j0":
 double: 2
-float: 2
+float: 8
 float128: 2
 ldouble: 2
 
@@ -1320,26 +1323,26 @@ float128: 4
 ldouble: 4
 
 Function: "j0_towardzero":
-double: 3
-float: 2
+double: 4
+float: 5
 float128: 2
 ldouble: 5
 
 Function: "j0_upward":
-double: 3
-float: 2
+double: 4
+float: 5
 float128: 5
-ldouble: 4
+ldouble: 6
 
 Function: "j1":
-double: 1
-float: 2
+double: 2
+float: 9
 float128: 4
-ldouble: 1
+ldouble: 5
 
 Function: "j1_downward":
 double: 3
-float: 3
+float: 5
 float128: 4
 ldouble: 4
 
@@ -1381,25 +1384,25 @@ ldouble: 5
 
 Function: "lgamma":
 double: 4
-float: 4
+float: 7
 float128: 5
 ldouble: 4
 
 Function: "lgamma_downward":
 double: 5
-float: 4
+float: 7
 float128: 8
 ldouble: 7
 
 Function: "lgamma_towardzero":
 double: 5
-float: 4
+float: 6
 float128: 5
 ldouble: 7
 
 Function: "lgamma_upward":
 double: 5
-float: 5
+float: 6
 float128: 8
 ldouble: 6
 
@@ -1562,6 +1565,7 @@ float: 3
 
 Function: "sin":
 double: 1
+float: 1
 float128: 1
 ldouble: 1
 
@@ -1719,37 +1723,37 @@ ldouble: 4
 
 Function: "tgamma":
 double: 5
-float: 5
+float: 8
 float128: 4
 ldouble: 5
 
 Function: "tgamma_downward":
 double: 5
-float: 5
+float: 7
 float128: 5
 ldouble: 5
 
 Function: "tgamma_towardzero":
 double: 5
-float: 5
+float: 7
 float128: 5
 ldouble: 5
 
 Function: "tgamma_upward":
 double: 5
-float: 5
+float: 8
 float128: 4
 ldouble: 5
 
 Function: "y0":
-double: 2
-float: 1
+double: 3
+float: 8
 float128: 3
 ldouble: 1
 
 Function: "y0_downward":
 double: 3
-float: 4
+float: 6
 float128: 4
 ldouble: 5
 
@@ -1757,37 +1761,37 @@ Function: "y0_towardzero":
 double: 3
 float: 3
 float128: 3
-ldouble: 5
+ldouble: 6
 
 Function: "y0_upward":
 double: 3
-float: 5
+float: 6
 float128: 3
-ldouble: 3
+ldouble: 5
 
 Function: "y1":
-double: 3
-float: 2
-float128: 2
-ldouble: 2
+double: 6
+float: 9
+float128: 5
+ldouble: 3
 
 Function: "y1_downward":
 double: 3
 float: 2
-float128: 4
+float128: 5
 ldouble: 7
 
 Function: "y1_towardzero":
-double: 3
-float: 2
-float128: 2
+double: 4
+float: 5
+float128: 6
 ldouble: 5
 
 Function: "y1_upward":
 double: 7
-float: 2
-float128: 5
-ldouble: 7
+float: 9
+float128: 6
+ldouble: 9
 
 Function: "yn":
 double: 3