diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/Implies | 4 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_nextafterl.c | 2 | ||||
-rw-r--r-- | sysdeps/i386/libm-test-ulps | 920 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_gammaf_r.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_lgammaf_r.c | 2 |
5 files changed, 7 insertions, 924 deletions
diff --git a/sysdeps/i386/Implies b/sysdeps/i386/Implies index ac22f59f78..3a32442d63 100644 --- a/sysdeps/i386/Implies +++ b/sysdeps/i386/Implies @@ -1,4 +1,4 @@ wordsize-32 -ieee754/flt-32 -ieee754/dbl-64 ieee754/ldbl-96 +ieee754/dbl-64 +ieee754/flt-32 diff --git a/sysdeps/i386/fpu/s_nextafterl.c b/sysdeps/i386/fpu/s_nextafterl.c index 4596c6b93c..bca7181c50 100644 --- a/sysdeps/i386/fpu/s_nextafterl.c +++ b/sysdeps/i386/fpu/s_nextafterl.c @@ -100,3 +100,5 @@ static char rcsid[] = "$NetBSD: $"; return x; } weak_alias (__nextafterl, nextafterl) +strong_alias (__nextafterl, __nexttowardl) +weak_alias (__nextafterl, nexttowardl) diff --git a/sysdeps/i386/libm-test-ulps b/sysdeps/i386/libm-test-ulps deleted file mode 100644 index 07c59640fd..0000000000 --- a/sysdeps/i386/libm-test-ulps +++ /dev/null @@ -1,920 +0,0 @@ -# Begin of automatic generation - -# acos -Test "acos (0.7) == 0.7953988301841435554": -ildouble: 1149 -ldouble: 1149 - -# asin -Test "asin (0.7) == 0.7753974966107530637": -double: 1 -ildouble: 1147 -ldouble: 1147 - -# asinh -Test "asinh (-0) == -0": -idouble: 0 -ifloat: 0 -ildouble: 0 -Test "asinh (0.7) == 0.652666566082355786": -ildouble: 656 -ldouble: 656 - -# atan -Test "atan (0.7) == 0.6107259643892086165": -ildouble: 549 -ldouble: 549 - -# atan2 -Test "atan2 (0.4, 0.0003) == 1.5700463269355215718": -ildouble: 1 -ldouble: 1 -Test "atan2 (0.7, 1) == 0.6107259643892086165": -ildouble: 549 -ldouble: 549 - -# atanh -Test "atanh (-0) == -0": -idouble: 0 -ifloat: 0 -ildouble: 0 -Test "atanh (0.7) == 0.8673005276940531944": -double: 1 -idouble: 1 -ildouble: 1605 -ldouble: 1605 - -# cabs -Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118": -float: 1 -ifloat: 1 -Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118": -float: 1 -ifloat: 1 -Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118": -float: 1 -ifloat: 1 -Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118": -float: 1 -ifloat: 1 -Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508": -double: 1 -idouble: 1 -ildouble: 560 -ldouble: 560 -Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118": -float: 1 -ifloat: 1 - -# cbrt -Test "cbrt (-0.001) == -0.1": -ildouble: 716 -ldouble: 716 -Test "cbrt (-27.0) == -3.0": -ildouble: 1 -ldouble: 1 -Test "cbrt (0.7) == 0.8879040017426007084": -double: 1 -idouble: 1 -ildouble: 346 -ldouble: 346 -Test "cbrt (0.970299) == 0.99": -ildouble: 306 -ldouble: 306 - -# cos -Test "cos (0.7) == 0.7648421872844884262": -double: 1 -idouble: 1 -ildouble: 529 -ldouble: 529 -Test "cos (M_PI_6l * 2.0) == 0.5": -double: 1 -float: 0.5 -idouble: 1 -ifloat: 0.5 -Test "cos (M_PI_6l * 4.0) == -0.5": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 0.5 -ldouble: 0.5 -Test "cos (pi/2) == 0": -double: 0.2758 -float: 0.3667 -idouble: 0.2758 -ifloat: 0.3667 -ildouble: 0.25 -ldouble: 0.25 - -# cosh -Test "cosh (0.7) == 1.255169005630943018": -ildouble: 309 -ldouble: 309 - -# erfc -Test "erfc (0.7) == 0.32219880616258152702": -double: 1 -idouble: 1 -Test "erfc (1.2) == 0.089686021770364619762": -float: 1 -ifloat: 1 -Test "erfc (2.0) == 0.0046777349810472658379": -double: 1 -idouble: 1 -Test "erfc (4.1) == 0.67000276540848983727e-8": -double: 24 -float: 12 -idouble: 24 -ifloat: 12 - -# exp -Test "exp (0.7) == 2.0137527074704765216": -ildouble: 412 -ldouble: 412 - -# exp10 -Test "exp10 (-1) == 0.1": -ildouble: 818 -ldouble: 818 -Test "exp10 (0.7) == 5.0118723362727228500": -double: 1 -idouble: 1 -ildouble: 1182 -ldouble: 1182 -Test "exp10 (3) == 1000": -ildouble: 8 -ldouble: 8 - -# exp2 -Test "exp2 (0.7) == 1.6245047927124710452": -ildouble: 462 -ldouble: 462 - -# expm1 -Test "expm1 (-0) == -0": -idouble: 0 -ifloat: 0 -ildouble: 0 -Test "expm1 (0.7) == 1.0137527074704765216": -ildouble: 825 -ldouble: 825 - -# fmod -Test "fmod (-6.5, -2.3) == -1.9": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 4096 -ldouble: 4096 -Test "fmod (-6.5, 2.3) == -1.9": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 4096 -ldouble: 4096 -Test "fmod (6.5, -2.3) == 1.9": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 4096 -ldouble: 4096 -Test "fmod (6.5, 2.3) == 1.9": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 4096 -ldouble: 4096 - -# hypot -Test "hypot (-0.7, -12.4) == 12.41974234837422060118": -float: 1 -ildouble: 406 -ldouble: 406 -Test "hypot (-0.7, 12.4) == 12.41974234837422060118": -float: 1 -ildouble: 406 -ldouble: 406 -Test "hypot (-12.4, -0.7) == 12.41974234837422060118": -float: 1 -ildouble: 406 -ldouble: 406 -Test "hypot (-12.4, 0.7) == 12.41974234837422060118": -float: 1 -ildouble: 406 -ldouble: 406 -Test "hypot (0.7, -12.4) == 12.41974234837422060118": -float: 1 -ildouble: 406 -ldouble: 406 -Test "hypot (0.7, 1.2) == 1.3892443989449804508": -double: 1 -ildouble: 560 -ldouble: 560 -Test "hypot (0.7, 12.4) == 12.41974234837422060118": -float: 1 -ildouble: 406 -ldouble: 406 -Test "hypot (12.4, -0.7) == 12.41974234837422060118": -float: 1 -ildouble: 406 -ldouble: 406 -Test "hypot (12.4, 0.7) == 12.41974234837422060118": -float: 1 -ildouble: 406 -ldouble: 406 - -# j0 -Test "j0 (10.0) == -0.24593576445134833520": -float: 1 -ifloat: 1 -Test "j0 (2.0) == 0.22389077914123566805": -float: 1 -ifloat: 1 -Test "j0 (8.0) == 0.17165080713755390609": -float: 1 -ifloat: 1 - -# j1 -Test "j1 (10.0) == 0.043472746168861436670": -float: 1 -ifloat: 1 -Test "j1 (2.0) == 0.57672480775687338720": -double: 1 -idouble: 1 -Test "j1 (8.0) == 0.23463634685391462438": -float: 1 -ifloat: 1 - -# jn -Test "jn (0, 10.0) == -0.24593576445134833520": -float: 1 -ifloat: 1 -Test "jn (0, 2.0) == 0.22389077914123566805": -float: 1 -ifloat: 1 -Test "jn (0, 8.0) == 0.17165080713755390609": -float: 1 -ifloat: 1 -Test "jn (1, 10.0) == 0.043472746168861436670": -float: 1 -ifloat: 1 -Test "jn (1, 2.0) == 0.57672480775687338720": -double: 1 -idouble: 1 -Test "jn (1, 8.0) == 0.23463634685391462438": -float: 1 -ifloat: 1 -Test "jn (10, 0.1) == 0.26905328954342155795e-19": -double: 4 -float: 2 -idouble: 4 -ifloat: 2 -Test "jn (10, 0.7) == 0.75175911502153953928e-11": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -Test "jn (10, 10.0) == 0.20748610663335885770": -float: 1 -ifloat: 1 -Test "jn (3, 0.1) == 0.000020820315754756261429": -double: 1 -idouble: 1 -Test "jn (3, 0.7) == 0.0069296548267508408077": -double: 2 -idouble: 2 -Test "jn (3, 10.0) == 0.058379379305186812343": -float: 1 -ifloat: 1 - -# lgamma -Test "lgamma (0.7) == 0.26086724653166651439": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "lgamma (1.2) == -0.853740900033158497197e-1": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 - -# log -Test "log (0.7) == -0.35667494393873237891": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2341 -ldouble: 2341 -Test "log (e) == 1": -float: 0.5 -ifloat: 0.5 - -# log10 -Test "log10 (0.7) == -0.15490195998574316929": -double: 1 -idouble: 1 -ildouble: 2033 -ldouble: 2033 -Test "log10 (e) == log10(e)": -float: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 - -# log1p -Test "log1p (-0.3) == -0.35667494393873237891": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 585 -ldouble: 585 - -# log2 -Test "log2 (0.7) == -0.51457317282975824043": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1688 -ldouble: 1688 - -# pow -Test "pow (-0, 1) == -0": -idouble: 0 -ifloat: 0 -ildouble: 0 -Test "pow (-0, 11) == -0": -idouble: 0 -ifloat: 0 -ildouble: 0 -Test "pow (-0, 27) == -0": -idouble: 0 -ifloat: 0 -ildouble: 0 -Test "pow (0.7, 1.2) == 0.65180494056638638188": -ildouble: 725 -ldouble: 725 - -# sin -Test "sin (0.7) == 0.64421768723769105367": -ildouble: 627 -ldouble: 627 - -# sincos -Test "sincos (0.7, &sin_res, &cos_res) puts 0.64421768723769105367 in sin_res": -ildouble: 627 -ldouble: 627 -Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res": -double: 1 -idouble: 1 -ildouble: 528 -ldouble: 528 -Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": -double: 1 -float: 0.5 -idouble: 1 -ifloat: 0.5 -Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 -Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": -double: 0.2758 -float: 0.3667 -idouble: 0.2758 -ifloat: 0.3667 -ildouble: 0.25 -ldouble: 0.25 - -# sinh -Test "sinh (-0) == -0": -idouble: 0 -ifloat: 0 -ildouble: 0 -Test "sinh (0.7) == 0.75858370183953350346": -float: 1 -ifloat: 1 -ildouble: 1028 -ldouble: 1029 - -# sqrt -Test "sqrt (0.7) == 0.83666002653407554798": -ildouble: 489 -ldouble: 489 -Test "sqrt (15239.9025) == 123.45": -ildouble: 325 -ldouble: 325 - -# tan -Test "tan (0.7) == 0.84228838046307944813": -ildouble: 1401 -ldouble: 1401 -Test "tan (pi/4) == 1": -double: 0.5 -idouble: 0.5 - -# tanh -Test "tanh (-0) == -0": -idouble: 0 -ifloat: 0 -ildouble: 0 -Test "tanh (0.7) == 0.60436777711716349631": -ildouble: 521 -ldouble: 521 - -# tgamma -Test "tgamma (-0.5) == -2 sqrt (pi)": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "tgamma (0.5) == sqrt (pi)": -float: 1 -ifloat: 1 -Test "tgamma (0.7) == 1.29805533264755778568": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# y0 -Test "y0 (0.1) == -1.5342386513503668441": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "y0 (0.7) == -0.19066492933739506743": -double: 2 -idouble: 2 -Test "y0 (1.0) == 0.088256964215676957983": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "y0 (1.5) == 0.38244892379775884396": -float: 1 -ifloat: 1 -Test "y0 (10.0) == 0.055671167283599391424": -float: 1 -ifloat: 1 -Test "y0 (8.0) == 0.22352148938756622053": -float: 1 -ifloat: 1 - -# y1 -Test "y1 (0.1) == -6.4589510947020269877": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "y1 (0.7) == -1.1032498719076333697": -double: 1 -idouble: 1 -Test "y1 (1.0) == -0.78121282130028871655": -double: 1 -idouble: 1 -Test "y1 (1.5) == -0.41230862697391129595": -float: 1 -ifloat: 1 -Test "y1 (10.0) == 0.24901542420695388392": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -Test "y1 (2.0) == -0.10703243154093754689": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "y1 (8.0) == -0.15806046173124749426": -float: 2 -ifloat: 2 - -# yn -Test "yn (0, 0.1) == -1.5342386513503668441": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (0, 0.7) == -0.19066492933739506743": -double: 2 -idouble: 2 -Test "yn (0, 1.0) == 0.088256964215676957983": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (0, 1.5) == 0.38244892379775884396": -float: 1 -ifloat: 1 -Test "yn (0, 10.0) == 0.055671167283599391424": -float: 1 -ifloat: 1 -Test "yn (0, 8.0) == 0.22352148938756622053": -float: 1 -ifloat: 1 -Test "yn (1, 0.1) == -6.4589510947020269877": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (1, 0.7) == -1.1032498719076333697": -double: 1 -idouble: 1 -Test "yn (1, 1.0) == -0.78121282130028871655": -double: 1 -idouble: 1 -Test "yn (1, 1.5) == -0.41230862697391129595": -float: 1 -ifloat: 1 -Test "yn (1, 10.0) == 0.24901542420695388392": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -Test "yn (1, 2.0) == -0.10703243154093754689": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (1, 8.0) == -0.15806046173124749426": -float: 2 -ifloat: 2 -Test "yn (10, 0.1) == -0.11831335132045197885e19": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "yn (10, 0.7) == -0.42447194260703866924e10": -double: 6 -float: 3 -idouble: 6 -ifloat: 3 -Test "yn (10, 1.0) == -0.12161801427868918929e9": -float: 1 -ifloat: 1 -Test "yn (10, 10.0) == -0.35981415218340272205": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (10, 2.0) == -129184.54220803928264": -float: 1 -ifloat: 1 -Test "yn (3, 0.1) == -5099.3323786129048894": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (3, 0.7) == -15.819479052819633505": -double: 2 -idouble: 2 -Test "yn (3, 10.0) == -0.25136265718383732978": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# Maximal error of functions: -Function "acos": -ildouble: 1149 -ldouble: 1149 - -Function "asin": -double: 1 -ildouble: 1147 -ldouble: 1147 - -Function "asinh": -ildouble: 656 -ldouble: 656 - -Function "atan": -ildouble: 549 -ldouble: 549 - -Function "atan2": -ildouble: 549 -ldouble: 549 - -Function "atanh": -double: 1 -idouble: 1 -ildouble: 1605 -ldouble: 1605 - -Function "cabs": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 560 -ldouble: 560 - -Function "cacos": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -ildouble: 329 -ldouble: 329 - -Function "cacosh": -double: 1 -float: 4 -idouble: 1 -ifloat: 4 -ildouble: 328 -ldouble: 328 - -Function "casin": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -ildouble: 603 -ldouble: 603 - -Function "casinh": -double: 5 -float: 6 -idouble: 5 -ifloat: 6 -ildouble: 892 -ldouble: 892 - -Function "catan": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 474 -ldouble: 474 - -Function "catanh": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 447 -ldouble: 447 - -Function "cbrt": -double: 1 -idouble: 1 -ildouble: 716 -ldouble: 716 - -Function "ccos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1901 -ldouble: 1901 - -Function "ccosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1467 -ldouble: 1467 - -Function "cexp": -float: 1 -ifloat: 1 -ildouble: 1067 -ldouble: 1067 - -Function "clog": -ildouble: 1 -ldouble: 1 - -Function "clog10": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 1402 -ldouble: 1402 - -Function "cos": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 529 -ldouble: 529 - -Function "cosh": -ildouble: 309 -ldouble: 309 - -Function "cpow": -double: 1.103 -float: 4 -idouble: 1.103 -ifloat: 4 -ildouble: 2 -ldouble: 2 - -Function "csin": -ildouble: 966 -ldouble: 966 - -Function "csinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 477 -ldouble: 477 - -Function "csqrt": -double: 1 -idouble: 1 -ildouble: 237 -ldouble: 237 - -Function "ctan": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 690 -ldouble: 690 - -Function "ctanh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 3074 -ldouble: 3074 - -Function "erfc": -double: 24 -float: 12 -idouble: 24 -ifloat: 12 - -Function "exp": -ildouble: 412 -ldouble: 412 - -Function "exp10": -double: 1 -idouble: 1 -ildouble: 1182 -ldouble: 1182 - -Function "exp2": -ildouble: 462 -ldouble: 462 - -Function "expm1": -ildouble: 825 -ldouble: 825 - -Function "fmod": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -ildouble: 4096 -ldouble: 4096 - -Function "hypot": -double: 1 -float: 1 -ildouble: 560 -ldouble: 560 - -Function "j0": -float: 1 -ifloat: 1 - -Function "j1": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function "jn": -double: 4 -float: 2 -idouble: 4 -ifloat: 2 - -Function "lgamma": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 - -Function "log": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2341 -ldouble: 2341 - -Function "log10": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 2033 -ldouble: 2033 - -Function "log1p": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 585 -ldouble: 585 - -Function "log2": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 1688 -ldouble: 1688 - -Function "pow": -ildouble: 725 -ldouble: 725 - -Function "sin": -ildouble: 627 -ldouble: 627 - -Function "sincos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -ildouble: 627 -ldouble: 627 - -Function "sinh": -float: 1 -ifloat: 1 -ildouble: 1028 -ldouble: 1029 - -Function "sqrt": -ildouble: 489 -ldouble: 489 - -Function "tan": -double: 0.5 -idouble: 0.5 -ildouble: 1401 -ldouble: 1401 - -Function "tanh": -ildouble: 521 -ldouble: 521 - -Function "tgamma": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function "y0": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 - -Function "y1": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 - -Function "yn": -double: 6 -float: 3 -idouble: 6 -ifloat: 3 - -# end of automatic generation diff --git a/sysdeps/ieee754/flt-32/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c index 926905e7cd..f0cd43840b 100644 --- a/sysdeps/ieee754/flt-32/e_gammaf_r.c +++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c @@ -44,6 +44,9 @@ __ieee754_gammaf_r (float x, int *signgamp) *signgamp = 0; return (x - x) / (x - x); } + if (hx == 0xff800000) + /* x == -Inf. According to ISO this is NaN. */ + return x - x; /* XXX FIXME. */ return __ieee754_expf (__ieee754_lgammaf_r (x, signgamp)); diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c index f744d5320e..5ebebb77af 100644 --- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c +++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c @@ -162,8 +162,6 @@ static float zero= 0.0000000000e+00; /* purge off +-inf, NaN, +-0, and negative arguments */ *signgamp = 1; - if ((unsigned int)hx==0xff800000) - return x-x; ix = hx&0x7fffffff; if(ix>=0x7f800000) return x*x; if(ix==0) return one/fabsf(x); |