diff options
| author | Aurelien Jarno <aurelien@aurel32.net> | 2015-12-13 22:55:34 +0100 |
|---|---|---|
| committer | Aurelien Jarno <aurelien@aurel32.net> | 2015-12-20 16:36:45 +0100 |
| commit | 5537f466d620552e7f24d52a9b97ced736d2abb1 (patch) | |
| tree | e42c28925b9cb4b816e358b9d5cfb62d9e105af7 | |
| parent | 83d776f979342f923b5c3d2a5b43afab841c6086 (diff) | |
| download | glibc-5537f466d620552e7f24d52a9b97ced736d2abb1.tar.xz glibc-5537f466d620552e7f24d52a9b97ced736d2abb1.zip | |
i386: move ULPs to i686/multiarch and regenerate new ones for i386
The i386 ULPs are actually the i686/multiarch ones. The i686/multiarch
float ULPs are more precise as the SSE2 version (when available) uses
double for the cosf and sinf functions.
On the other hand the higher precision of the x86 FPU improves the
precision for a few other math functions.
* sysdeps/i386/fpu/libm-test-ulps: Move to ....
* sysdeps/i386/i686/multiarch/fpu/libm-test-ulps: ...here.
* sysdeps/i386/fpu/libm-test-ulps: Regenerate.
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 126 | ||||
| -rw-r--r-- | sysdeps/i386/i686/fpu/multiarch/libm-test-ulps | 2176 |
3 files changed, 2252 insertions, 56 deletions
@@ -1,3 +1,9 @@ +2015-12-20 Aurelien Jarno <aurelien@aurel32.net> + + * sysdeps/i386/fpu/libm-test-ulps: Move to .... + * sysdeps/i386/i686/multiarch/fpu/libm-test-ulps: ...here. + * sysdeps/i386/fpu/libm-test-ulps: Regenerate. + 2015-12-19 Andrew Senkevich <andrew.senkevich@intel.com> * sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S: New file. diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index bbb644a591..84da4753eb 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -725,9 +725,9 @@ ldouble: 1 Function: Real part of "ccosh_downward": double: 1 -float: 2 +float: 1 idouble: 1 -ifloat: 2 +ifloat: 1 ildouble: 3 ldouble: 3 @@ -960,24 +960,32 @@ ildouble: 1 ldouble: 1 Function: "cos": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Function: "cos_downward": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 3 ldouble: 3 Function: "cos_towardzero": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 2 ldouble: 2 Function: "cos_upward": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 2 ldouble: 2 @@ -1021,9 +1029,7 @@ ildouble: 3 ldouble: 3 Function: Imaginary part of "cpow": -double: 1 float: 2 -idouble: 1 ifloat: 2 ildouble: 4 ldouble: 4 @@ -1085,9 +1091,7 @@ ildouble: 1 ldouble: 1 Function: Imaginary part of "csin": -double: 1 float: 1 -idouble: 1 ifloat: 1 Function: Real part of "csin_downward": @@ -1127,22 +1131,18 @@ double: 3 float: 2 idouble: 3 ifloat: 2 -ildouble: 3 -ldouble: 3 +ildouble: 2 +ldouble: 2 Function: Imaginary part of "csin_upward": double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 3 -ldouble: 3 +ildouble: 2 +ldouble: 2 Function: Real part of "csinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 ildouble: 1 ldouble: 1 @@ -1156,9 +1156,9 @@ ldouble: 1 Function: Real part of "csinh_downward": double: 1 -float: 2 +float: 1 idouble: 1 -ifloat: 2 +ifloat: 1 ildouble: 3 ldouble: 3 @@ -1172,9 +1172,9 @@ ldouble: 3 Function: Real part of "csinh_towardzero": double: 1 -float: 2 +float: 1 idouble: 1 -ifloat: 2 +ifloat: 1 ildouble: 3 ldouble: 3 @@ -1191,16 +1191,16 @@ double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 3 -ldouble: 3 +ildouble: 2 +ldouble: 2 Function: Imaginary part of "csinh_upward": double: 3 float: 2 idouble: 3 ifloat: 2 -ildouble: 3 -ldouble: 3 +ildouble: 2 +ldouble: 2 Function: Real part of "csqrt": double: 1 @@ -1282,33 +1282,33 @@ ldouble: 1 Function: Real part of "ctan_downward": double: 1 -float: 2 +float: 1 idouble: 1 -ifloat: 2 +ifloat: 1 ildouble: 5 ldouble: 5 Function: Imaginary part of "ctan_downward": double: 2 -float: 2 +float: 1 idouble: 2 -ifloat: 2 +ifloat: 1 ildouble: 4 ldouble: 4 Function: Real part of "ctan_towardzero": double: 3 -float: 1 +float: 2 idouble: 3 -ifloat: 1 +ifloat: 2 ildouble: 5 ldouble: 5 Function: Imaginary part of "ctan_towardzero": double: 2 -float: 1 +float: 3 idouble: 2 -ifloat: 1 +ifloat: 3 ildouble: 4 ldouble: 4 @@ -1362,17 +1362,17 @@ ldouble: 4 Function: Real part of "ctanh_towardzero": double: 2 -float: 1 +float: 3 idouble: 2 -ifloat: 1 +ifloat: 3 ildouble: 4 ldouble: 4 Function: Imaginary part of "ctanh_towardzero": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 ildouble: 3 ldouble: 3 @@ -1526,9 +1526,7 @@ ldouble: 2 Function: "exp_upward": double: 1 -float: 1 idouble: 1 -ifloat: 1 ildouble: 1 ldouble: 1 @@ -1564,9 +1562,9 @@ ldouble: 4 Function: "gamma": double: 3 -float: 3 +float: 2 idouble: 3 -ifloat: 3 +ifloat: 2 ildouble: 4 ldouble: 4 @@ -1580,9 +1578,9 @@ ldouble: 7 Function: "gamma_towardzero": double: 4 -float: 4 +float: 2 idouble: 4 -ifloat: 4 +ifloat: 2 ildouble: 7 ldouble: 7 @@ -1716,9 +1714,9 @@ ldouble: 5 Function: "lgamma": double: 3 -float: 3 +float: 2 idouble: 3 -ifloat: 3 +ifloat: 2 ildouble: 4 ldouble: 4 @@ -1732,9 +1730,9 @@ ldouble: 7 Function: "lgamma_towardzero": double: 4 -float: 4 +float: 2 idouble: 4 -ifloat: 4 +ifloat: 2 ildouble: 7 ldouble: 7 @@ -1913,46 +1911,62 @@ ildouble: 2 ldouble: 2 Function: "sin": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Function: "sin_downward": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 3 ldouble: 3 Function: "sin_towardzero": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 2 ldouble: 2 Function: "sin_upward": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 3 ldouble: 3 Function: "sincos": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Function: "sincos_downward": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 3 ldouble: 3 Function: "sincos_towardzero": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 2 ldouble: 2 Function: "sincos_upward": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 3 ldouble: 3 @@ -2055,25 +2069,25 @@ ldouble: 5 Function: "tgamma_downward": double: 3 -float: 4 +float: 3 idouble: 3 -ifloat: 4 +ifloat: 3 ildouble: 5 ldouble: 5 Function: "tgamma_towardzero": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 +double: 3 +float: 3 +idouble: 3 +ifloat: 3 ildouble: 5 ldouble: 5 Function: "tgamma_upward": -double: 4 -float: 4 -idouble: 4 -ifloat: 4 +double: 3 +float: 3 +idouble: 3 +ifloat: 3 ildouble: 5 ldouble: 5 @@ -2135,9 +2149,9 @@ ldouble: 5 Function: "y1_upward": double: 1 -float: 3 +float: 2 idouble: 1 -ifloat: 3 +ifloat: 2 ildouble: 7 ldouble: 7 diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps new file mode 100644 index 0000000000..bbb644a591 --- /dev/null +++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps @@ -0,0 +1,2176 @@ +# Begin of automatic generation + +# Maximal error of functions: +Function: "acos": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "acos_downward": +ildouble: 2 +ldouble: 2 + +Function: "acos_towardzero": +ildouble: 2 +ldouble: 2 + +Function: "acos_upward": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 + +Function: "acosh": +double: 1 +idouble: 1 +ildouble: 4 +ldouble: 2 + +Function: "acosh_downward": +double: 1 +idouble: 1 +ildouble: 6 +ldouble: 4 + +Function: "acosh_towardzero": +double: 1 +idouble: 1 +ildouble: 6 +ldouble: 4 + +Function: "acosh_upward": +double: 1 +idouble: 1 +ildouble: 4 +ldouble: 3 + +Function: "asin": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "asin_downward": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 + +Function: "asin_towardzero": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "asin_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "asinh": +double: 1 +idouble: 1 +ildouble: 3 +ldouble: 3 + +Function: "asinh_downward": +double: 1 +float: 1 +idouble: 1 +ildouble: 5 +ldouble: 5 + +Function: "asinh_towardzero": +double: 1 +float: 1 +idouble: 1 +ildouble: 4 +ldouble: 4 + +Function: "asinh_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 5 +ldouble: 5 + +Function: "atan": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "atan2": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "atan2_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "atan2_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "atan2_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "atan_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "atan_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "atan_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "atanh": +double: 1 +idouble: 1 +ildouble: 3 +ldouble: 3 + +Function: "atanh_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 3 +ldouble: 4 + +Function: "atanh_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 5 +ldouble: 3 + +Function: "atanh_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 5 +ldouble: 5 + +Function: "cabs": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "cabs_downward": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "cabs_towardzero": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "cabs_upward": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "cacos": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "cacos": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Real part of "cacos_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "cacos_downward": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Real part of "cacos_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "cacos_towardzero": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Real part of "cacos_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "cacos_upward": +double: 4 +float: 4 +idouble: 4 +ifloat: 4 +ildouble: 5 +ldouble: 5 + +Function: Real part of "cacosh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "cacosh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "cacosh_downward": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "cacosh_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Real part of "cacosh_towardzero": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "cacosh_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Real part of "cacosh_upward": +double: 4 +float: 4 +idouble: 4 +ifloat: 4 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "cacosh_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: "carg": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "carg_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "carg_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "carg_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "casin": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "casin": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Real part of "casin_downward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "casin_downward": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Real part of "casin_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "casin_towardzero": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Real part of "casin_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "casin_upward": +double: 4 +float: 4 +idouble: 4 +ifloat: 4 +ildouble: 5 +ldouble: 5 + +Function: Real part of "casinh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "casinh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "casinh_downward": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "casinh_downward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "casinh_towardzero": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "casinh_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Real part of "casinh_upward": +double: 4 +float: 4 +idouble: 4 +ifloat: 4 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "casinh_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "catan": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "catan_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "catan_downward": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4 +ldouble: 4 + +Function: Real part of "catan_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "catan_towardzero": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4 +ldouble: 4 + +Function: Real part of "catan_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "catan_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "catanh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "catanh_downward": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "catanh_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "catanh_towardzero": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "catanh_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "catanh_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "catanh_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "cbrt": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +Function: "cbrt_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 4 +ldouble: 4 + +Function: "cbrt_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +Function: "cbrt_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 4 +ldouble: 4 + +Function: Real part of "ccos": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "ccos": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 |
