glibc/sysdeps/aarch64/libm-test-ulps
Wilco Dijkstra 19a8b9a300 [PATCH 1/7] sin/cos slow paths: avoid slow paths for small inputs
This series of patches removes the slow patchs from sin, cos and sincos.
Besides greatly simplifying the implementation, the new version is also much
faster for inputs up to PI (41% faster) and for large inputs needing range
reduction (27% faster).

ULP is ~0.55 with no errors found after testing 1.6 billion inputs across most
of the range with mpsin and mpcos.  The number of incorrectly rounded results
(ie. ULP >0.5) is at most ~2750 per million inputs between 0.125 and 0.5,
the average is ~850 per million between 0 and PI.

Tested on AArch64 and x86_64 with no regressions.

The first patch removes the slow paths for the cases where the input is small
and doesn't require range reduction.  Update ULP tables for sin, cos and sincos
on AArch64 and x86_64.

	* sysdeps/aarch64/libm-test-ulps: Update ULP for sin, cos, sincos.
	* sysdeps/ieee754/dbl-64/s_sin.c (__sin): Remove slow paths for small
	inputs.
	(__cos): Likewise.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update ULP for sin, cos, sincos.
2018-04-03 16:52:16 +01:00

2261 lines
27 KiB
Plaintext

# Begin of automatic generation
# Maximal error of functions:
Function: "acos":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "acos_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "acos_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "acos_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "acosh":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "acosh_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: "acosh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "acosh_upward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "asin":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "asin_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "asin_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "asin_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "asinh":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
Function: "asinh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 4
ldouble: 4
Function: "asinh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "asinh_upward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 4
ldouble: 4
Function: "atan":
double: 1
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: 2
ldouble: 2
Function: "atan2_towardzero":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "atan2_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "atan_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: "atan_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "atan_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: "atanh":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: "atanh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 4
ldouble: 4
Function: "atanh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "atanh_upward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 4
ldouble: 4
Function: "cabs":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Function: "cabs_downward":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Function: "cabs_towardzero":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Function: "cabs_upward":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Function: Real part of "cacos":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cacos":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "cacos_downward":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "cacos_downward":
double: 5
float: 3
idouble: 5
ifloat: 3
ildouble: 6
ldouble: 6
Function: Real part of "cacos_towardzero":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "cacos_towardzero":
double: 5
float: 3
idouble: 5
ifloat: 3
ildouble: 5
ldouble: 5
Function: Real part of "cacos_upward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "cacos_upward":
double: 5
float: 5
idouble: 5
ifloat: 5
ildouble: 7
ldouble: 7
Function: Real part of "cacosh":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cacosh":
double: 1
float: 2
idouble: 1
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: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 4
ldouble: 4
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: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
Function: Real part of "cacosh_upward":
double: 4
float: 4
idouble: 4
ifloat: 4
ildouble: 6
ldouble: 6
Function: Imaginary part of "cacosh_upward":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 4
ldouble: 4
Function: "carg":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "carg_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: "carg_towardzero":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "carg_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "casin":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Imaginary part of "casin":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "casin_downward":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "casin_downward":
double: 5
float: 3
idouble: 5
ifloat: 3
ildouble: 6
ldouble: 6
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: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "casin_upward":
double: 5
float: 5
idouble: 5
ifloat: 5
ildouble: 7
ldouble: 7
Function: Real part of "casinh":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "casinh":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "casinh_downward":
double: 5
float: 3
idouble: 5
ifloat: 3
ildouble: 6
ldouble: 6
Function: Imaginary part of "casinh_downward":
double: 3
float: 2
idouble: 3
ifloat: 2
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: 5
float: 5
idouble: 5
ifloat: 5
ildouble: 7
ldouble: 7
Function: Imaginary part of "casinh_upward":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
Function: Real part of "catan":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "catan":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "catan_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
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: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "catan_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: Real part of "catan_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
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
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "catanh":
double: 1
float: 1
idouble: 1
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: 2
idouble: 2
ifloat: 2
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: 4
idouble: 4
ifloat: 4
ildouble: 4
ldouble: 4
Function: Imaginary part of "catanh_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "cbrt":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
Function: "cbrt_downward":
double: 4
float: 1
idouble: 4
ifloat: 1
ildouble: 1
ldouble: 1
Function: "cbrt_towardzero":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
Function: "cbrt_upward":
double: 5
float: 1
idouble: 5
ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "ccos":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "ccos":
double: 1
float: 1
idouble: 1
ifloat: 1
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
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_towardzero":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "ccosh_upward":
double: 1
float: 2
idouble: 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
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "cexp":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_downward":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "cexp_towardzero":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_towardzero":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "cexp_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: Real part of "clog":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "clog":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "clog10":
double: 3
float: 4
idouble: 3
ifloat: 4
ildouble: 2
ldouble: 2
Function: Imaginary part of "clog10":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "clog10_downward":
double: 5
float: 5
idouble: 5
ifloat: 5
ildouble: 3
ldouble: 3
Function: Imaginary part of "clog10_downward":
double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 3
ldouble: 3
Function: Real part of "clog10_towardzero":
double: 5
float: 5
idouble: 5
ifloat: 5
ildouble: 4
ldouble: 4
Function: Imaginary part of "clog10_towardzero":
double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 3
ldouble: 3
Function: Real part of "clog10_upward":
double: 6
float: 5
idouble: 6
ifloat: 5
ildouble: 4
ldouble: 4
Function: Imaginary part of "clog10_upward":
double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 3
ldouble: 3
Function: Real part of "clog_downward":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 3
ldouble: 3
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: 4
float: 4
idouble: 4
ifloat: 4
ildouble: 3
ldouble: 3
Function: Imaginary part of "clog_towardzero":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "clog_upward":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 4
ldouble: 4
Function: Imaginary part of "clog_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: "cos":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "cos_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "cos_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "cos_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: "cosh":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "cosh_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 3
Function: Real part of "cpow":
double: 2
float: 5
idouble: 2
ifloat: 5
ildouble: 4
ldouble: 4
Function: Imaginary part of "cpow":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
Function: Real part of "cpow_downward":
double: 4
float: 8
idouble: 4
ifloat: 8
ildouble: 6
ldouble: 6
Function: Imaginary part of "cpow_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "cpow_towardzero":
double: 4
float: 8
idouble: 4
ifloat: 8
ildouble: 6
ldouble: 6
Function: Imaginary part of "cpow_towardzero":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "cpow_upward":
double: 4
float: 1
idouble: 4
ifloat: 1
ildouble: 3
ldouble: 3
Function: Imaginary part of "cpow_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "csin":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
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: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
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: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "csin_upward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "csin_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: Real part of "csinh":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "csinh":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "csinh_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
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: 2
ldouble: 2
Function: Imaginary part of "csinh_towardzero":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "csinh_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "csinh_upward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "csqrt":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "csqrt":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "csqrt_downward":
double: 5
float: 4
idouble: 5
ifloat: 4
ildouble: 4
ldouble: 4
Function: Imaginary part of "csqrt_downward":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 3
ldouble: 3
Function: Real part of "csqrt_towardzero":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 3
ldouble: 3
Function: Imaginary part of "csqrt_towardzero":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 3
ldouble: 3
Function: Real part of "csqrt_upward":
double: 5
float: 4
idouble: 5
ifloat: 4
ildouble: 4
ldouble: 4
Function: Imaginary part of "csqrt_upward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 3
ldouble: 3
Function: Real part of "ctan":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
Function: Imaginary part of "ctan":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: Real part of "ctan_downward":
double: 6
float: 5
idouble: 6
ifloat: 5
ildouble: 4
ldouble: 4
Function: Imaginary part of "ctan_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 5
ldouble: 5
Function: Real part of "ctan_towardzero":
double: 5
float: 3
idouble: 5
ifloat: 3
ildouble: 4
ldouble: 4
Function: Imaginary part of "ctan_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 5
ldouble: 5
Function: Real part of "ctan_upward":
double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 5
ldouble: 5
Function: Imaginary part of "ctan_upward":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 5
ldouble: 5
Function: Real part of "ctanh":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "ctanh":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
Function: Real part of "ctanh_downward":
double: 4
float: 2
idouble: 4
ifloat: 2
ildouble: 5
ldouble: 5
Function: Imaginary part of "ctanh_downward":
double: 6
float: 5
idouble: 6
ifloat: 5
ildouble: 4
ldouble: 4
Function: Real part of "ctanh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 5
ldouble: 5
Function: Imaginary part of "ctanh_towardzero":
double: 5
float: 2
idouble: 5
ifloat: 2
ildouble: 3
ldouble: 3
Function: Real part of "ctanh_upward":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 5
ldouble: 5
Function: Imaginary part of "ctanh_upward":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 5
ldouble: 5
Function: "erf":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "erf_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "erf_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "erf_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "erfc":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "erfc_downward":
double: 3
float: 4
idouble: 3
ifloat: 4
ildouble: 5
ldouble: 5
Function: "erfc_towardzero":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 4
ldouble: 4
Function: "erfc_upward":
double: 3
float: 4
idouble: 3
ifloat: 4
ildouble: 5
ldouble: 5
Function: "exp":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "exp10":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
Function: "exp10_downward":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
Function: "exp10_towardzero":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
Function: "exp10_upward":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
Function: "exp2":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "exp2_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "exp2_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "exp2_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "exp_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
Function: "exp_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
Function: "exp_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
Function: "expm1":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "expm1_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "expm1_towardzero":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 4
ldouble: 4
Function: "expm1_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
Function: "gamma":
double: 3
float: 4
idouble: 3
ifloat: 4
ildouble: 5
ldouble: 5
Function: "gamma_downward":
double: 4
float: 4
idouble: 4
ifloat: 4
ildouble: 8
ldouble: 8
Function: "gamma_towardzero":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 5
ldouble: 5
Function: "gamma_upward":
double: 4
float: 5
idouble: 4
ifloat: 5
ildouble: 8
ldouble: 8
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
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "j0_downward":
double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 4
ldouble: 4
Function: "j0_towardzero":
double: 2
float: 1
idouble: 2
ifloat: 1
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
idouble: 1
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: 4
idouble: 3
ifloat: 4
ildouble: 3
ldouble: 3
Function: "jn":
double: 4
float: 4
idouble: 4
ifloat: 4
ildouble: 7
ldouble: 7
Function: "jn_downward":
double: 4
float: 5
idouble: 4
ifloat: 5
ildouble: 8
ldouble: 8
Function: "jn_towardzero":
double: 4
float: 5
idouble: 4
ifloat: 5
ildouble: 8
ldouble: 8
Function: "jn_upward":
double: 5
float: 4
idouble: 5
ifloat: 4
ildouble: 7
ldouble: 7
Function: "lgamma":
double: 3
float: 4
idouble: 3
ifloat: 4
ildouble: 5
ldouble: 5
Function: "lgamma_downward":
double: 4
float: 4
idouble: 4
ifloat: 4
ildouble: 8
ldouble: 8
Function: "lgamma_towardzero":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 5
ldouble: 5
Function: "lgamma_upward":
double: 4
float: 5
idouble: 4
ifloat: 5
ildouble: 8
ldouble: 8
Function: "log":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "log10":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
Function: "log10_downward":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 1
ldouble: 1
Function: "log10_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
Function: "log10_upward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
Function: "log1p":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "log1p_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "log1p_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: "log1p_upward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "log2":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "log2_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 3
ldouble: 3
Function: "log2_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
Function: "log2_upward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 1
ldouble: 1
Function: "log_downward":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
Function: "log_towardzero":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "log_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Function: "pow":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "pow_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "pow_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "pow_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "sin":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "sin_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "sin_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "sin_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "sincos":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "sincos_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "sincos_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "sincos_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "sinh":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "sinh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 3
ldouble: 3
Function: "sinh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: "sinh_upward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 4
ldouble: 4
Function: "tan":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "tan_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Function: "tan_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "tan_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "tanh":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "tanh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 4
ldouble: 4
Function: "tanh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: "tanh_upward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 3
ldouble: 3
Function: "tgamma":
double: 5
float: 4
idouble: 5
ifloat: 4
ildouble: 4
ldouble: 4
Function: "tgamma_downward":
double: 5
float: 5
idouble: 5
ifloat: 5
ildouble: 5
ldouble: 5
Function: "tgamma_towardzero":
double: 5
float: 4
idouble: 5
ifloat: 4
ildouble: 5
ldouble: 5
Function: "tgamma_upward":
double: 4
float: 4
idouble: 4
ifloat: 4
ildouble: 4
ldouble: 4
Function: "y0":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
Function: "y0_downward":
double: 3
float: 4
idouble: 3
ifloat: 4
ildouble: 4
ldouble: 4
Function: "y0_towardzero":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 3
ldouble: 3
Function: "y0_upward":
double: 2
float: 5
idouble: 2
ifloat: 5
ildouble: 3
ldouble: 3
Function: "y1":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 2
ldouble: 2
Function: "y1_downward":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 4
ldouble: 4
Function: "y1_towardzero":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 2
ldouble: 2
Function: "y1_upward":
double: 5
float: 2
idouble: 5
ifloat: 2
ildouble: 5
ldouble: 5
Function: "yn":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: "yn_downward":
double: 3
float: 4
idouble: 3
ifloat: 4
ildouble: 5
ldouble: 5
Function: "yn_towardzero":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: "yn_upward":
double: 4
float: 5
idouble: 4
ifloat: 5
ildouble: 5
ldouble: 5
# end of automatic generation