Message ID | 20140413.231141.1503644473158925927.davem@davemloft.net |
---|---|
State | New |
Headers | show |
Hi, on s390 test-ldouble / test-ildoubl shows the same ULP for y1(0x2p+0) (see https://www.sourceware.org/ml/libc-alpha/2014-04/msg00271.html). Please test the posted patch. Bye. On 04/14/2014 05:11 AM, David Miller wrote: > > > * sysdeps/sparc/fpu/libm-test-ulps: Update. > --- > > This doesn't fix all the ULP issues during the testsuite on sparc, > some are not accepted by the maximum ULP limits encoded into libm-test.inc > > For example, for test-float and test-ifloat y1_upward gets a ULP of 10, > and for test-ldouble and test-ildoubl y1_upward gets a ULP of 10 and > y1_downward gets a ULP of 13. > > I see that we use an upper limit of 13 for IBM long double in the > inexact cases... should we use something similar for 128-bit IEEE > cases as well? > > ChangeLog | 4 + > sysdeps/sparc/fpu/libm-test-ulps | 1048 +++++++++++++++++++++++++++++++++++++- > 2 files changed, 1037 insertions(+), 15 deletions(-) > > diff --git a/ChangeLog b/ChangeLog > index a42e08e..431c7c0 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,7 @@ > +2014-04-13 David S. Miller <davem@davemloft.net> > + > + * sysdeps/sparc/fpu/libm-test-ulps: Update. > + > 2014-04-12 Allan McRae <allan@archlinux.org> > > [BZ #16838] > diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps > index 80e4283..3ce8a7c 100644 > --- a/sysdeps/sparc/fpu/libm-test-ulps > +++ b/sysdeps/sparc/fpu/libm-test-ulps > @@ -61,18 +61,112 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "asinh_downward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: "asinh_towardzero": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: "asinh_upward": > +double: 2 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > Function: "atan2": > float: 1 > ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "atan2_downward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 1 > +ldouble: 1 > + > +Function: "atan2_towardzero": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: "atan2_upward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +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": > float: 1 > ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "atanh_downward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "atanh_towardzero": > +float: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "atanh_upward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > Function: Real part of "cacos": > double: 1 > float: 2 > @@ -105,6 +199,74 @@ ifloat: 2 > ildouble: 2 > ldouble: 2 > > +Function: Real part of "cacosh_downward": > +double: 5 > +float: 3 > +idouble: 5 > +ifloat: 3 > +ildouble: 5 > +ldouble: 5 > + > +Function: Imaginary part of "cacosh_downward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "cacosh_towardzero": > +double: 5 > +float: 3 > +idouble: 5 > +ifloat: 3 > +ildouble: 5 > +ldouble: 5 > + > +Function: Imaginary part of "cacosh_towardzero": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +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: 3 > +ldouble: 3 > + > +Function: "carg_downward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 1 > +ldouble: 1 > + > +Function: "carg_towardzero": > +float: 1 > +ifloat: 1 > + > +Function: "carg_upward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 1 > +ldouble: 1 > + > Function: Real part of "casin": > double: 1 > float: 1 > @@ -121,6 +283,54 @@ ifloat: 2 > ildouble: 2 > ldouble: 2 > > +Function: Real part of "casin_downward": > +double: 3 > +float: 1 > +idouble: 3 > +ifloat: 1 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "casin_downward": > +double: 5 > +float: 3 > +idouble: 5 > +ifloat: 3 > +ildouble: 5 > +ldouble: 5 > + > +Function: Real part of "casin_towardzero": > +double: 3 > +float: 1 > +idouble: 3 > +ifloat: 1 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "casin_towardzero": > +double: 5 > +float: 3 > +idouble: 5 > +ifloat: 3 > +ildouble: 5 > +ldouble: 5 > + > +Function: Real part of "casin_upward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 3 > +ldouble: 3 > + > +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: 2 > @@ -137,6 +347,54 @@ ifloat: 1 > ildouble: 2 > ldouble: 2 > > +Function: Real part of "casinh_downward": > +double: 5 > +float: 3 > +idouble: 5 > +ifloat: 3 > +ildouble: 5 > +ldouble: 5 > + > +Function: Imaginary part of "casinh_downward": > +double: 3 > +float: 1 > +idouble: 3 > +ifloat: 1 > +ildouble: 3 > +ldouble: 3 > + > +Function: Real part of "casinh_towardzero": > +double: 5 > +float: 3 > +idouble: 5 > +ifloat: 3 > +ildouble: 5 > +ldouble: 5 > + > +Function: Imaginary part of "casinh_towardzero": > +double: 3 > +float: 1 > +idouble: 3 > +ifloat: 1 > +ildouble: 3 > +ldouble: 3 > + > +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: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > Function: Real part of "catan": > float: 1 > ifloat: 1 > @@ -151,6 +409,54 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: Real part of "catan_downward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "catan_downward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Real part of "catan_towardzero": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "catan_towardzero": > +double: 2 > +float: 1 > +idouble: 2 > +ifloat: 1 > +ildouble: 3 > +ldouble: 3 > + > +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: 3 > +float: 3 > +idouble: 3 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > Function: Real part of "catanh": > double: 1 > float: 1 > @@ -165,6 +471,54 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: Real part of "catanh_downward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "catanh_downward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "catanh_towardzero": > +double: 2 > +float: 1 > +idouble: 2 > +ifloat: 1 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "catanh_towardzero": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "catanh_upward": > +double: 4 > +float: 3 > +idouble: 4 > +ifloat: 3 > +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 > @@ -173,6 +527,28 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "cbrt_downward": > +double: 2 > +float: 1 > +idouble: 2 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "cbrt_towardzero": > +double: 2 > +idouble: 2 > +ildouble: 1 > +ldouble: 1 > + > +Function: "cbrt_upward": > +double: 3 > +float: 1 > +idouble: 3 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > Function: Real part of "ccos": > double: 1 > float: 1 > @@ -189,21 +565,117 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: Real part of "ccos_downward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "ccos_downward": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "ccos_towardzero": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "ccos_towardzero": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "ccos_upward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "ccos_upward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > Function: Real part of "ccosh": > double: 1 > float: 1 > idouble: 1 > -ifloat: 1 > -ildouble: 1 > -ldouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: Imaginary part of "ccosh": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: Real part of "ccosh_downward": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "ccosh_downward": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "ccosh_towardzero": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > > -Function: Imaginary part of "ccosh": > +Function: Imaginary part of "ccosh_towardzero": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "ccosh_upward": > double: 1 > -float: 1 > +float: 2 > idouble: 1 > -ifloat: 1 > -ildouble: 1 > -ldouble: 1 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "ccosh_upward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > > Function: Real part of "cexp": > double: 2 > @@ -240,8 +712,8 @@ double: 2 > float: 2 > idouble: 2 > ifloat: 2 > -ildouble: 1 > -ldouble: 1 > +ildouble: 2 > +ldouble: 2 > > Function: Imaginary part of "clog10": > double: 1 > @@ -251,6 +723,102 @@ ifloat: 1 > ildouble: 2 > ldouble: 2 > > +Function: Real part of "clog10_downward": > +double: 3 > +float: 3 > +idouble: 3 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "clog10_downward": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "clog10_towardzero": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "clog10_towardzero": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "clog10_upward": > +double: 4 > +float: 3 > +idouble: 4 > +ifloat: 3 > +ildouble: 4 > +ldouble: 4 > + > +Function: Imaginary part of "clog10_upward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Real part of "clog_downward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "clog_downward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "clog_towardzero": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "clog_towardzero": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "clog_upward": > +double: 2 > +float: 1 > +idouble: 2 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "clog_upward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > Function: "cos": > float: 1 > ifloat: 1 > @@ -353,6 +921,54 @@ Function: Imaginary part of "csin": > ildouble: 1 > ldouble: 1 > > +Function: Real part of "csin_downward": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "csin_downward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Real part of "csin_towardzero": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "csin_towardzero": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Real part of "csin_upward": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "csin_upward": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > Function: Real part of "csinh": > float: 1 > ifloat: 1 > @@ -367,6 +983,54 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: Real part of "csinh_downward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "csinh_downward": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "csinh_towardzero": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "csinh_towardzero": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > +Function: Real part of "csinh_upward": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "csinh_upward": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > Function: Real part of "csqrt": > double: 1 > float: 1 > @@ -383,6 +1047,54 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: Real part of "csqrt_downward": > +double: 3 > +float: 3 > +idouble: 3 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "csqrt_downward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "csqrt_towardzero": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Imaginary part of "csqrt_towardzero": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: Real part of "csqrt_upward": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 3 > +ldouble: 3 > + > +Function: Imaginary part of "csqrt_upward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > Function: Real part of "ctan": > double: 1 > float: 1 > @@ -543,9 +1255,27 @@ ifloat: 3 > ildouble: 5 > ldouble: 5 > > -Function: "erf": > -double: 1 > -idouble: 1 > +Function: "erf": > +double: 1 > +idouble: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "erf_downward": > +float: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "erf_towardzero": > +float: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "erf_upward": > +float: 1 > +ifloat: 1 > ildouble: 1 > ldouble: 1 > > @@ -557,6 +1287,30 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "erfc_downward": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > +Function: "erfc_towardzero": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > +Function: "erfc_upward": > +double: 2 > +float: 2 > +idouble: 2 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > Function: "exp10": > double: 1 > idouble: 1 > @@ -655,12 +1409,54 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "gamma_downward": > +double: 2 > +float: 1 > +idouble: 2 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: "gamma_towardzero": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: "gamma_upward": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > Function: "hypot": > double: 1 > idouble: 1 > ildouble: 1 > ldouble: 1 > > +Function: "hypot_downward": > +double: 1 > +idouble: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "hypot_towardzero": > +double: 1 > +idouble: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "hypot_upward": > +double: 1 > +idouble: 1 > +ildouble: 1 > +ldouble: 1 > + > Function: "j0": > double: 2 > float: 2 > @@ -669,6 +1465,30 @@ ifloat: 2 > ildouble: 2 > ldouble: 2 > > +Function: "j0_downward": > +double: 2 > +float: 3 > +idouble: 2 > +ifloat: 3 > +ildouble: 4 > +ldouble: 4 > + > +Function: "j0_towardzero": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: "j0_upward": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 5 > +ldouble: 5 > + > Function: "j1": > double: 1 > float: 2 > @@ -677,6 +1497,30 @@ ifloat: 2 > ildouble: 4 > ldouble: 4 > > +Function: "j1_downward": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 4 > +ldouble: 4 > + > +Function: "j1_towardzero": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 4 > +ldouble: 4 > + > +Function: "j1_upward": > +double: 3 > +float: 5 > +idouble: 3 > +ifloat: 5 > +ildouble: 3 > +ldouble: 3 > + > Function: "jn": > double: 4 > float: 4 > @@ -693,6 +1537,30 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "lgamma_downward": > +double: 2 > +float: 1 > +idouble: 2 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: "lgamma_towardzero": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: "lgamma_upward": > +double: 1 > +float: 3 > +idouble: 1 > +ifloat: 3 > +ildouble: 2 > +ldouble: 2 > + > Function: "log": > float: 1 > ifloat: 1 > @@ -713,10 +1581,44 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "log1p_downward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "log1p_towardzero": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "log1p_upward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > + > Function: "log2": > ildouble: 1 > ldouble: 1 > > +Function: "log_downward": > +float: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "log_upward": > +float: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > Function: "pow": > float: 1 > ifloat: 1 > @@ -729,6 +1631,26 @@ idouble: 1 > ildouble: 1 > ldouble: 1 > > +Function: "pow10_downward": > +double: 1 > +idouble: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: "pow10_towardzero": > +double: 1 > +idouble: 1 > +ildouble: 2 > +ldouble: 2 > + > +Function: "pow10_upward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > Function: "pow_downward": > float: 1 > ifloat: 1 > @@ -791,6 +1713,30 @@ ifloat: 1 > ildouble: 1 > ldouble: 1 > > +Function: "sincos_downward": > +double: 1 > +float: 2 > +idouble: 1 > +ifloat: 2 > +ildouble: 2 > +ldouble: 2 > + > +Function: "sincos_towardzero": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "sincos_upward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 2 > +ldouble: 2 > + > Function: "sinh_downward": > double: 1 > idouble: 1 > @@ -847,6 +1793,30 @@ Function: "tanh": > ildouble: 1 > ldouble: 1 > > +Function: "tanh_downward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "tanh_towardzero": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > +Function: "tanh_upward": > +double: 1 > +float: 1 > +idouble: 1 > +ifloat: 1 > +ildouble: 1 > +ldouble: 1 > + > Function: "tgamma": > double: 4 > float: 3 > @@ -863,6 +1833,30 @@ ifloat: 1 > ildouble: 3 > ldouble: 3 > > +Function: "y0_downward": > +double: 3 > +float: 2 > +idouble: 3 > +ifloat: 2 > +ildouble: 4 > +ldouble: 4 > + > +Function: "y0_towardzero": > +double: 3 > +float: 3 > +idouble: 3 > +ifloat: 3 > +ildouble: 3 > +ldouble: 3 > + > +Function: "y0_upward": > +double: 3 > +float: 4 > +idouble: 3 > +ifloat: 4 > +ildouble: 3 > +ldouble: 3 > + > Function: "y1": > double: 3 > float: 2 > @@ -871,12 +1865,36 @@ ifloat: 2 > ildouble: 2 > ldouble: 2 > > +Function: "y1_downward": > +double: 3 > +float: 7 > +idouble: 3 > +ifloat: 7 > +ildouble: 4 > +ldouble: 4 > + > +Function: "y1_towardzero": > +double: 3 > +float: 3 > +idouble: 3 > +ifloat: 3 > +ildouble: 6 > +ldouble: 6 > + > +Function: "y1_upward": > +double: 7 > +float: 5 > +idouble: 7 > +ifloat: 5 > +ildouble: 5 > +ldouble: 5 > + > Function: "yn": > double: 3 > float: 2 > idouble: 3 > ifloat: 2 > -ildouble: 4 > -ldouble: 4 > +ildouble: 5 > +ldouble: 5 > > # end of automatic generation >
From: Stefan Liebler <stli@linux.vnet.ibm.com> Date: Mon, 14 Apr 2014 10:56:24 +0200 > on s390 test-ldouble / test-ildoubl shows the same ULP for y1(0x2p+0) > (see https://www.sourceware.org/ml/libc-alpha/2014-04/msg00271.html). > > Please test the posted patch. Yep, it clears the long-double cases for me. I still have a large ULP of 10 for test-float's y1_upward().
On Sun, 13 Apr 2014, David Miller wrote: > For example, for test-float and test-ifloat y1_upward gets a ULP of 10, > and for test-ldouble and test-ildoubl y1_upward gets a ULP of 10 and > y1_downward gets a ULP of 13. > > I see that we use an upper limit of 13 for IBM long double in the > inexact cases... should we use something similar for 128-bit IEEE > cases as well? No. That increased limit is an allowance for IBM long double not being an IEEE type and the underlying arithmetic operations having errors of up to 3 ulps. If you get larger errors for an IEEE type, the implementations of the relevant libm functions should be fixed to reduce error accumulation.
On Mon, 14 Apr 2014, David Miller wrote: > From: Stefan Liebler <stli@linux.vnet.ibm.com> > Date: Mon, 14 Apr 2014 10:56:24 +0200 > > > on s390 test-ldouble / test-ildoubl shows the same ULP for y1(0x2p+0) > > (see https://www.sourceware.org/ml/libc-alpha/2014-04/msg00271.html). > > > > Please test the posted patch. > > Yep, it clears the long-double cases for me. > > I still have a large ULP of 10 for test-float's y1_upward(). I'm going to guess that this doesn't appear on x86_64 because of the x86_64 implementation of trig functions using double precision internally so having smaller error accumulation than the generic flt-32 versions. Saving / restoring the rounding mode in y1f would seem a reasonable solution.
From: "Joseph S. Myers" <joseph@codesourcery.com> Date: Wed, 23 Apr 2014 14:51:09 +0000 > On Sun, 13 Apr 2014, David Miller wrote: > >> For example, for test-float and test-ifloat y1_upward gets a ULP of 10, >> and for test-ldouble and test-ildoubl y1_upward gets a ULP of 10 and >> y1_downward gets a ULP of 13. >> >> I see that we use an upper limit of 13 for IBM long double in the >> inexact cases... should we use something similar for 128-bit IEEE >> cases as well? > > No. That increased limit is an allowance for IBM long double not being an > IEEE type and the underlying arithmetic operations having errors of up to > 3 ulps. If you get larger errors for an IEEE type, the implementations of > the relevant libm functions should be fixed to reduce error accumulation. Ok, right now it's just y1_upward() giving me an error of 10 ULPs for float.
From: "Joseph S. Myers" <joseph@codesourcery.com> Date: Wed, 23 Apr 2014 15:07:11 +0000 > On Mon, 14 Apr 2014, David Miller wrote: > >> From: Stefan Liebler <stli@linux.vnet.ibm.com> >> Date: Mon, 14 Apr 2014 10:56:24 +0200 >> >> > on s390 test-ldouble / test-ildoubl shows the same ULP for y1(0x2p+0) >> > (see https://www.sourceware.org/ml/libc-alpha/2014-04/msg00271.html). >> > >> > Please test the posted patch. >> >> Yep, it clears the long-double cases for me. >> >> I still have a large ULP of 10 for test-float's y1_upward(). > > I'm going to guess that this doesn't appear on x86_64 because of the > x86_64 implementation of trig functions using double precision internally > so having smaller error accumulation than the generic flt-32 versions. > Saving / restoring the rounding mode in y1f would seem a reasonable > solution. I'll look into this, thanks Joseph.
diff --git a/ChangeLog b/ChangeLog index a42e08e..431c7c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2014-04-13 David S. Miller <davem@davemloft.net> + + * sysdeps/sparc/fpu/libm-test-ulps: Update. + 2014-04-12 Allan McRae <allan@archlinux.org> [BZ #16838] diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps index 80e4283..3ce8a7c 100644 --- a/sysdeps/sparc/fpu/libm-test-ulps +++ b/sysdeps/sparc/fpu/libm-test-ulps @@ -61,18 +61,112 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "asinh_downward": +double: 1 +float: 2 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "asinh_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "asinh_upward": +double: 2 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: "atan2": float: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Function: "atan2_downward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 1 +ldouble: 1 + +Function: "atan2_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: "atan2_upward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +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": float: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Function: "atanh_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "atanh_towardzero": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "atanh_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: Real part of "cacos": double: 1 float: 2 @@ -105,6 +199,74 @@ ifloat: 2 ildouble: 2 ldouble: 2 +Function: Real part of "cacosh_downward": +double: 5 +float: 3 +idouble: 5 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "cacosh_downward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "cacosh_towardzero": +double: 5 +float: 3 +idouble: 5 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "cacosh_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +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: 3 +ldouble: 3 + +Function: "carg_downward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 1 +ldouble: 1 + +Function: "carg_towardzero": +float: 1 +ifloat: 1 + +Function: "carg_upward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 1 +ldouble: 1 + Function: Real part of "casin": double: 1 float: 1 @@ -121,6 +283,54 @@ ifloat: 2 ildouble: 2 ldouble: 2 +Function: Real part of "casin_downward": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "casin_downward": +double: 5 +float: 3 +idouble: 5 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Real part of "casin_towardzero": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "casin_towardzero": +double: 5 +float: 3 +idouble: 5 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Real part of "casin_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +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: 2 @@ -137,6 +347,54 @@ ifloat: 1 ildouble: 2 ldouble: 2 +Function: Real part of "casinh_downward": +double: 5 +float: 3 +idouble: 5 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "casinh_downward": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +Function: Real part of "casinh_towardzero": +double: 5 +float: 3 +idouble: 5 +ifloat: 3 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "casinh_towardzero": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +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: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 3 +ldouble: 3 + Function: Real part of "catan": float: 1 ifloat: 1 @@ -151,6 +409,54 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: Real part of "catan_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "catan_downward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "catan_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "catan_towardzero": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +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: 3 +float: 3 +idouble: 3 +ifloat: 3 +ildouble: 3 +ldouble: 3 + Function: Real part of "catanh": double: 1 float: 1 @@ -165,6 +471,54 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: Real part of "catanh_downward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "catanh_downward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "catanh_towardzero": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "catanh_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "catanh_upward": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +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 @@ -173,6 +527,28 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "cbrt_downward": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "cbrt_towardzero": +double: 2 +idouble: 2 +ildouble: 1 +ldouble: 1 + +Function: "cbrt_upward": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: Real part of "ccos": double: 1 float: 1 @@ -189,21 +565,117 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: Real part of "ccos_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "ccos_downward": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "ccos_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "ccos_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "ccos_upward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "ccos_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + Function: Real part of "ccosh": double: 1 float: 1 idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Imaginary part of "ccosh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "ccosh_downward": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "ccosh_downward": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "ccosh_towardzero": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 2 +ldouble: 2 -Function: Imaginary part of "ccosh": +Function: Imaginary part of "ccosh_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "ccosh_upward": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 -ildouble: 1 -ldouble: 1 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "ccosh_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 Function: Real part of "cexp": double: 2 @@ -240,8 +712,8 @@ double: 2 float: 2 idouble: 2 ifloat: 2 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: Imaginary part of "clog10": double: 1 @@ -251,6 +723,102 @@ ifloat: 1 ildouble: 2 ldouble: 2 +Function: Real part of "clog10_downward": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "clog10_downward": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "clog10_towardzero": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "clog10_towardzero": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "clog10_upward": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 +ildouble: 4 +ldouble: 4 + +Function: Imaginary part of "clog10_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "clog_downward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "clog_downward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "clog_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "clog_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "clog_upward": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "clog_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + Function: "cos": float: 1 ifloat: 1 @@ -353,6 +921,54 @@ Function: Imaginary part of "csin": ildouble: 1 ldouble: 1 +Function: Real part of "csin_downward": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "csin_downward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "csin_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "csin_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Real part of "csin_upward": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "csin_upward": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 3 +ldouble: 3 + Function: Real part of "csinh": float: 1 ifloat: 1 @@ -367,6 +983,54 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: Real part of "csinh_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csinh_downward": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 2 +ldouble: 2 + +Function: Real part of "csinh_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csinh_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 3 +ldouble: 3 + +Function: Real part of "csinh_upward": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csinh_upward": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 2 +ldouble: 2 + Function: Real part of "csqrt": double: 1 float: 1 @@ -383,6 +1047,54 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: Real part of "csqrt_downward": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csqrt_downward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "csqrt_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Imaginary part of "csqrt_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: Real part of "csqrt_upward": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 3 +ldouble: 3 + +Function: Imaginary part of "csqrt_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + Function: Real part of "ctan": double: 1 float: 1 @@ -543,9 +1255,27 @@ ifloat: 3 ildouble: 5 ldouble: 5 -Function: "erf": -double: 1 -idouble: 1 +Function: "erf": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "erf_downward": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "erf_towardzero": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "erf_upward": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -557,6 +1287,30 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "erfc_downward": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 3 +ldouble: 3 + +Function: "erfc_towardzero": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 3 +ldouble: 3 + +Function: "erfc_upward": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 + Function: "exp10": double: 1 idouble: 1 @@ -655,12 +1409,54 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "gamma_downward": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "gamma_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "gamma_upward": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 2 +ldouble: 2 + Function: "hypot": double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Function: "hypot_downward": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "hypot_towardzero": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "hypot_upward": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + Function: "j0": double: 2 float: 2 @@ -669,6 +1465,30 @@ ifloat: 2 ildouble: 2 ldouble: 2 +Function: "j0_downward": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 4 +ldouble: 4 + +Function: "j0_towardzero": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: "j0_upward": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 5 +ldouble: 5 + Function: "j1": double: 1 float: 2 @@ -677,6 +1497,30 @@ ifloat: 2 ildouble: 4 ldouble: 4 +Function: "j1_downward": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 4 +ldouble: 4 + +Function: "j1_towardzero": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 4 +ldouble: 4 + +Function: "j1_upward": +double: 3 +float: 5 +idouble: 3 +ifloat: 5 +ildouble: 3 +ldouble: 3 + Function: "jn": double: 4 float: 4 @@ -693,6 +1537,30 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "lgamma_downward": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "lgamma_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + +Function: "lgamma_upward": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 2 +ldouble: 2 + Function: "log": float: 1 ifloat: 1 @@ -713,10 +1581,44 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "log1p_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "log1p_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "log1p_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + Function: "log2": ildouble: 1 ldouble: 1 +Function: "log_downward": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "log_upward": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: "pow": float: 1 ifloat: 1 @@ -729,6 +1631,26 @@ idouble: 1 ildouble: 1 ldouble: 1 +Function: "pow10_downward": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 + +Function: "pow10_towardzero": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 + +Function: "pow10_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + Function: "pow_downward": float: 1 ifloat: 1 @@ -791,6 +1713,30 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "sincos_downward": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 2 +ldouble: 2 + +Function: "sincos_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "sincos_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 + Function: "sinh_downward": double: 1 idouble: 1 @@ -847,6 +1793,30 @@ Function: "tanh": ildouble: 1 ldouble: 1 +Function: "tanh_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "tanh_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "tanh_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: "tgamma": double: 4 float: 3 @@ -863,6 +1833,30 @@ ifloat: 1 ildouble: 3 ldouble: 3 +Function: "y0_downward": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 4 +ldouble: 4 + +Function: "y0_towardzero": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 +ildouble: 3 +ldouble: 3 + +Function: "y0_upward": +double: 3 +float: 4 +idouble: 3 +ifloat: 4 +ildouble: 3 +ldouble: 3 + Function: "y1": double: 3 float: 2 @@ -871,12 +1865,36 @@ ifloat: 2 ildouble: 2 ldouble: 2 +Function: "y1_downward": +double: 3 +float: 7 +idouble: 3 +ifloat: 7 +ildouble: 4 +ldouble: 4 + +Function: "y1_towardzero": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 +ildouble: 6 +ldouble: 6 + +Function: "y1_upward": +double: 7 +float: 5 +idouble: 7 +ifloat: 5 +ildouble: 5 +ldouble: 5 + Function: "yn": double: 3 float: 2 idouble: 3 ifloat: 2 -ildouble: 4 -ldouble: 4 +ildouble: 5 +ldouble: 5 # end of automatic generation