From 8847214f239965f538e42a09d3d08ce8c700dea2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 19 Oct 1999 06:29:27 +0000 Subject: Update. 1999-10-18 Andreas Jaeger Added improved math testsuite: * math/libm-test.inc: New file, contains all tests from libm-test.c but in a different form. * math/libm-test.c: Removed. * sysdeps/generic/libm-test-ulps: New file: Fallback ulps file. * math/gen-libm-test.pl: New file: Preprocessor. * math/test-double.c: Adopted to new testsuite. * math/test-idouble.c: Likewise. * math/test-float.c: Likewise. * math/test-ifloat.c: Likewise. * math/test-ldouble.c: Likewise. * math/test-ildoubl.c: Likewise. * math/Makefile: Added rules to generate new suite. --- sysdeps/i386/libm-test-ulps | 920 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 920 insertions(+) create mode 100644 sysdeps/i386/libm-test-ulps (limited to 'sysdeps/i386') diff --git a/sysdeps/i386/libm-test-ulps b/sysdeps/i386/libm-test-ulps new file mode 100644 index 0000000000..07c59640fd --- /dev/null +++ b/sysdeps/i386/libm-test-ulps @@ -0,0 +1,920 @@ +# 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 -- cgit 1.4.1