[COMMITTED] Regenerate sparc ULPs.
Commit Message
* 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(-)
Comments
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.
@@ -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]
@@ -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