Test most libm functions in all rounding modes.

This patch makes libm-test.inc tests of most functions use ALL_RM_TEST
unless there was some reason to defer that change for a particular
function.

I started out planning to defer the change for pow (bug 16315), cexp /
ccos / ccosh / csin / csinh (likely fallout from exp, bug 16284) and
cpow (exact expectations for signs of exact zero results not wanted).
Testing on x86_64 and x86 showed additional failures for acosh, cacos,
catan, catanh, clog, clog10, jn, log, log10, log1p, log2, tgamma, yn,
so making the change for those functions was deferred as well, pending
investigation to show which of these represent distinct bugs (some
such bugs may already be filed) and appropriate fixing / XFAILing.
Failures include wrong signs of zero results, errors slightly above
the 9ulp bound (in such cases it may make sense for functions to set
round-to-nearest internally to reduce error accumulation), large
errors and incorrect overflow/underflow for the rounding mode (with
consequent missing errno settings in some cases).  It's possible some
could be issues with test expectations, though I didn't notice any
that were obviously like that (I added NO_TEST_INLINE for cases that
were failing for ildoubl on x86 and where it seemed reasonable for
them to fail for the fast-math inlines).

There may of course be failures on other architectures for functions
that didn't fail on x86_64 or x86, in which case the usual rule
applies: file a bug (preferably identifying the underlying problem
function, in cases where function A calls function B and a problem
with function B may present in the test results for function A) if not
already in Bugzilla then fix or XFAIL.

Tested x86_64 and x86 and ulps updated accordingly.

	* math/libm-test.inc (asinh_test): Use ALL_RM_TEST.
	(atan_test): Likewise.
	(atanh_test_data): Use NO_TEST_INLINE for two tests.
	(atanh_test): Use ALL_RM_TEST.
	(atan2_test_data): Likewise.
	(cabs_test): Likewise.
	(cacosh_test): Likewise.
	(carg_test): Likewise.
	(casin_test): Likewise.
	(casinh_test): Likewise.
	(cbrt_test): Likewise.
	(csqrt_test): Likewise.
	(erf_test): Likewise.
	(erfc_test): Likewise.
	(pow10_test): Likewise.
	(exp2_test): Likewise.
	(hypot_test): Likewise.
	(j0_test): Likewise.
	(j1_test): Likewise.
	(lgamma_test): Likewise.
	(gamma_test): Likewise.
	(sincos_test): Likewise.
	(tanh_test): Likewise.
	(y0_test): Likewise.
	(y1_test): Likewise.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
This commit is contained in:
Joseph Myers 2014-03-21 00:03:38 +00:00
parent 6eaf95cbfa
commit 8c92dfff41
4 changed files with 1222 additions and 74 deletions

View File

@ -1,3 +1,33 @@
2014-03-20 Joseph Myers <joseph@codesourcery.com>
* math/libm-test.inc (asinh_test): Use ALL_RM_TEST.
(atan_test): Likewise.
(atanh_test_data): Use NO_TEST_INLINE for two tests.
(atanh_test): Use ALL_RM_TEST.
(atan2_test_data): Likewise.
(cabs_test): Likewise.
(cacosh_test): Likewise.
(carg_test): Likewise.
(casin_test): Likewise.
(casinh_test): Likewise.
(cbrt_test): Likewise.
(csqrt_test): Likewise.
(erf_test): Likewise.
(erfc_test): Likewise.
(pow10_test): Likewise.
(exp2_test): Likewise.
(hypot_test): Likewise.
(j0_test): Likewise.
(j1_test): Likewise.
(lgamma_test): Likewise.
(gamma_test): Likewise.
(sincos_test): Likewise.
(tanh_test): Likewise.
(y0_test): Likewise.
(y1_test): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2014-03-20 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* string/strcspn.c (strcspn): Using macro to redefine symbol name.

View File

@ -1830,9 +1830,7 @@ static const struct test_f_f_data asinh_test_data[] =
static void
asinh_test (void)
{
START (asinh, 0);
RUN_TEST_LOOP_f_f (asinh, asinh_test_data, );
END;
ALL_RM_TEST (asinh, 0, asinh_test_data, RUN_TEST_LOOP_f_f, END);
}
static const struct test_f_f_data atan_test_data[] =
@ -1847,9 +1845,7 @@ static const struct test_f_f_data atan_test_data[] =
static void
atan_test (void)
{
START (atan, 0);
RUN_TEST_LOOP_f_f (atan, atan_test_data, );
END;
ALL_RM_TEST (atan, 0, atan_test_data, RUN_TEST_LOOP_f_f, END);
}
@ -1863,8 +1859,8 @@ static const struct test_f_f_data atanh_test_data[] =
/* atanh (x) == qNaN plus invalid exception if |x| > 1. */
TEST_f_f (atanh, 1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (atanh, -1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (atanh, max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (atanh, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (atanh, max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM|NO_TEST_INLINE),
TEST_f_f (atanh, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM|NO_TEST_INLINE),
TEST_f_f (atanh, plus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (atanh, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
@ -1874,9 +1870,7 @@ static const struct test_f_f_data atanh_test_data[] =
static void
atanh_test (void)
{
START (atanh, 0);
RUN_TEST_LOOP_f_f (atanh, atanh_test_data, );
END;
ALL_RM_TEST (atanh, 0, atanh_test_data, RUN_TEST_LOOP_f_f, END);
}
static const struct test_ff_f_data atan2_test_data[] =
@ -1911,9 +1905,7 @@ static const struct test_ff_f_data atan2_test_data[] =
static void
atan2_test (void)
{
START (atan2, 0);
RUN_TEST_LOOP_ff_f (atan2, atan2_test_data, );
END;
ALL_RM_TEST (atan2, 0, atan2_test_data, RUN_TEST_LOOP_ff_f, END);
}
static const struct test_c_f_data cabs_test_data[] =
@ -1936,9 +1928,7 @@ static const struct test_c_f_data cabs_test_data[] =
static void
cabs_test (void)
{
START (cabs, 0);
RUN_TEST_LOOP_c_f (cabs, cabs_test_data, );
END;
ALL_RM_TEST (cabs, 0, cabs_test_data, RUN_TEST_LOOP_c_f, END);
}
@ -3311,9 +3301,7 @@ static const struct test_c_c_data cacosh_test_data[] =
static void
cacosh_test (void)
{
START (cacosh, 0);
RUN_TEST_LOOP_c_c (cacosh, cacosh_test_data, );
END_COMPLEX;
ALL_RM_TEST (cacosh, 0, cacosh_test_data, RUN_TEST_LOOP_c_c, END_COMPLEX);
}
@ -3355,9 +3343,7 @@ static const struct test_c_f_data carg_test_data[] =
static void
carg_test (void)
{
START (carg, 0);
RUN_TEST_LOOP_c_f (carg, carg_test_data, );
END;
ALL_RM_TEST (carg, 0, carg_test_data, RUN_TEST_LOOP_c_f, END);
}
static const struct test_c_c_data casin_test_data[] =
@ -4051,9 +4037,7 @@ static const struct test_c_c_data casin_test_data[] =
static void
casin_test (void)
{
START (casin, 0);
RUN_TEST_LOOP_c_c (casin, casin_test_data, );
END_COMPLEX;
ALL_RM_TEST (casin, 0, casin_test_data, RUN_TEST_LOOP_c_c, END_COMPLEX);
}
@ -4748,9 +4732,7 @@ static const struct test_c_c_data casinh_test_data[] =
static void
casinh_test (void)
{
START (casinh, 0);
RUN_TEST_LOOP_c_c (casinh, casinh_test_data, );
END_COMPLEX;
ALL_RM_TEST (casinh, 0, casinh_test_data, RUN_TEST_LOOP_c_c, END_COMPLEX);
}
@ -5781,9 +5763,7 @@ static const struct test_f_f_data cbrt_test_data[] =
static void
cbrt_test (void)
{
START (cbrt, 0);
RUN_TEST_LOOP_f_f (cbrt, cbrt_test_data, );
END;
ALL_RM_TEST (cbrt, 0, cbrt_test_data, RUN_TEST_LOOP_f_f, END);
}
@ -6657,9 +6637,7 @@ static const struct test_c_c_data csqrt_test_data[] =
static void
csqrt_test (void)
{
START (csqrt, 0);
RUN_TEST_LOOP_c_c (csqrt, csqrt_test_data, );
END_COMPLEX;
ALL_RM_TEST (csqrt, 0, csqrt_test_data, RUN_TEST_LOOP_c_c, END_COMPLEX);
}
static const struct test_c_c_data ctan_test_data[] =
@ -6767,9 +6745,7 @@ static const struct test_f_f_data erf_test_data[] =
static void
erf_test (void)
{
START (erf, 0);
RUN_TEST_LOOP_f_f (erf, erf_test_data, );
END;
ALL_RM_TEST (erf, 0, erf_test_data, RUN_TEST_LOOP_f_f, END);
}
@ -6785,9 +6761,7 @@ static const struct test_f_f_data erfc_test_data[] =
static void
erfc_test (void)
{
START (erfc, 0);
RUN_TEST_LOOP_f_f (erfc, erfc_test_data, );
END;
ALL_RM_TEST (erfc, 0, erfc_test_data, RUN_TEST_LOOP_f_f, END);
}
@ -6825,10 +6799,8 @@ exp10_test (void)
static void
pow10_test (void)
{
START (pow10, 0);
/* pow10 uses the same test data as exp10. */
RUN_TEST_LOOP_f_f (pow10, exp10_test_data, );
END;
ALL_RM_TEST (pow10, 0, exp10_test_data, RUN_TEST_LOOP_f_f, END);
}
@ -6844,9 +6816,7 @@ static const struct test_f_f_data exp2_test_data[] =
static void
exp2_test (void)
{
START (exp2, 0);
RUN_TEST_LOOP_f_f (exp2, exp2_test_data, );
END;
ALL_RM_TEST (exp2, 0, exp2_test_data, RUN_TEST_LOOP_f_f, END);
}
@ -7260,9 +7230,7 @@ static const struct test_ff_f_data hypot_test_data[] =
static void
hypot_test (void)
{
START (hypot, 0);
RUN_TEST_LOOP_ff_f (hypot, hypot_test_data, );
END;
ALL_RM_TEST (hypot, 0, hypot_test_data, RUN_TEST_LOOP_ff_f, END);
}
@ -7549,9 +7517,7 @@ static const struct test_f_f_data j0_test_data[] =
static void
j0_test (void)
{
START (j0, 0);
RUN_TEST_LOOP_f_f (j0, j0_test_data, );
END;
ALL_RM_TEST (j0, 0, j0_test_data, RUN_TEST_LOOP_f_f, END);
}
@ -7567,9 +7533,7 @@ static const struct test_f_f_data j1_test_data[] =
static void
j1_test (void)
{
START (j1, 0);
RUN_TEST_LOOP_f_f (j1, j1_test_data, );
END;
ALL_RM_TEST (j1, 0, j1_test_data, RUN_TEST_LOOP_f_f, END);
}
static const struct test_if_f_data jn_test_data[] =
@ -7621,18 +7585,14 @@ static const struct test_f_f1_data lgamma_test_data[] =
static void
lgamma_test (void)
{
START (lgamma, 0);
RUN_TEST_LOOP_f_f1 (lgamma, lgamma_test_data, , signgam);
END;
ALL_RM_TEST (lgamma, 0, lgamma_test_data, RUN_TEST_LOOP_f_f1, END, signgam);
}
static void
gamma_test (void)
{
START (gamma, 0);
/* gamma uses the same test data as lgamma. */
RUN_TEST_LOOP_f_f1 (gamma, lgamma_test_data, , signgam);
END;
ALL_RM_TEST (gamma, 0, lgamma_test_data, RUN_TEST_LOOP_f_f1, END, signgam);
}
@ -9374,9 +9334,7 @@ sincos_test (void)
{
FLOAT sin_res, cos_res;
START (sincos, 0);
RUN_TEST_LOOP_fFF_11 (sincos, sincos_test_data, , sin_res, cos_res);
END;
ALL_RM_TEST (sincos, 0, sincos_test_data, RUN_TEST_LOOP_fFF_11, END, sin_res, cos_res);
}
static const struct test_f_f_data sinh_test_data[] =
@ -9443,9 +9401,7 @@ static const struct test_f_f_data tanh_test_data[] =
static void
tanh_test (void)
{
START (tanh, 0);
RUN_TEST_LOOP_f_f (tanh, tanh_test_data, );
END;
ALL_RM_TEST (tanh, 0, tanh_test_data, RUN_TEST_LOOP_f_f, END);
}
static const struct test_f_f_data tgamma_test_data[] =
@ -9609,9 +9565,7 @@ static const struct test_f_f_data y0_test_data[] =
static void
y0_test (void)
{
START (y0, 0);
RUN_TEST_LOOP_f_f (y0, y0_test_data, );
END;
ALL_RM_TEST (y0, 0, y0_test_data, RUN_TEST_LOOP_f_f, END);
}
@ -9632,9 +9586,7 @@ static const struct test_f_f_data y1_test_data[] =
static void
y1_test (void)
{
START (y1, 0);
RUN_TEST_LOOP_f_f (y1, y1_test_data, );
END;
ALL_RM_TEST (y1, 0, y1_test_data, RUN_TEST_LOOP_f_f, END);
}

View File

@ -49,14 +49,102 @@ Function: "asinh":
ildouble: 1
ldouble: 1
Function: "asinh_downward":
double: 1
float: 1
ildouble: 1
ldouble: 3
Function: "asinh_towardzero":
double: 1
float: 1
ildouble: 1
ldouble: 2
Function: "asinh_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 5
ldouble: 2
Function: "atan2":
ildouble: 1
ldouble: 1
Function: "atan2_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "atan2_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "atan2_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
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":
ildouble: 2
ldouble: 1
Function: "atanh_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 1
Function: "atanh_towardzero":
idouble: 1
ifloat: 1
ildouble: 4
ldouble: 1
Function: "atanh_upward":
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 2
Function: Real part of "cacos":
double: 1
float: 1
@ -89,6 +177,76 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "cacosh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: Imaginary part of "cacosh_downward":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "cacosh_towardzero":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: Imaginary part of "cacosh_towardzero":
double: 2
float: 1
idouble: 2
ifloat: 1
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: 2
ldouble: 2
Function: "carg_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "carg_towardzero":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "carg_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "casin":
double: 1
float: 1
@ -105,6 +263,54 @@ ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "casin_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Imaginary part of "casin_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: Real part of "casin_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Imaginary part of "casin_towardzero":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: Real part of "casin_upward":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
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: 1
@ -121,6 +327,54 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "casinh_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: Imaginary part of "casinh_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "casinh_towardzero":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: Imaginary part of "casinh_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
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: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
Function: Imaginary part of "catan":
double: 1
float: 1
@ -143,6 +397,30 @@ idouble: 1
ildouble: 1
ldouble: 1
Function: "cbrt_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
Function: "cbrt_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "cbrt_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
Function: Real part of "ccos":
double: 1
float: 1
@ -328,6 +606,50 @@ Function: Imaginary part of "csqrt":
ildouble: 1
ldouble: 1
Function: Real part of "csqrt_downward":
double: 1
idouble: 1
ildouble: 3
ldouble: 3
Function: Imaginary part of "csqrt_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "csqrt_towardzero":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Function: Imaginary part of "csqrt_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "csqrt_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
Function: Imaginary part of "csqrt_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "ctan":
double: 1
float: 1
@ -494,12 +816,40 @@ idouble: 1
ildouble: 1
ldouble: 1
Function: "erf_upward":
ildouble: 1
ldouble: 1
Function: "erfc":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Function: "erfc_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "erfc_towardzero":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: "erfc_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
Function: "exp10":
ildouble: 1
ldouble: 1
@ -584,10 +934,52 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: "gamma_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: "gamma_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "gamma_upward":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: "hypot":
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: 1
float: 1
@ -596,6 +988,30 @@ ifloat: 1
ildouble: 2
ldouble: 2
Function: "j0_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 4
ldouble: 4
Function: "j0_towardzero":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 5
ldouble: 5
Function: "j0_upward":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 4
ldouble: 4
Function: "j1":
double: 2
float: 1
@ -604,6 +1020,30 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: "j1_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 4
ldouble: 4
Function: "j1_towardzero":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 4
ldouble: 4
Function: "j1_upward":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 3
ldouble: 3
Function: "jn":
double: 2
float: 3
@ -620,6 +1060,30 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: "lgamma_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: "lgamma_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: "lgamma_upward":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: "log":
ildouble: 1
ldouble: 1
@ -640,6 +1104,30 @@ Function: "pow10":
ildouble: 1
ldouble: 1
Function: "pow10_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "pow10_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "pow10_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "pow_downward":
double: 1
float: 1
@ -694,6 +1182,24 @@ Function: "sincos":
ildouble: 1
ldouble: 1
Function: "sincos_downward":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Function: "sincos_towardzero":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Function: "sincos_upward":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Function: "sinh":
ildouble: 1
@ -752,6 +1258,26 @@ ifloat: 1
ildouble: 2
ldouble: 2
Function: "tanh_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 1
Function: "tanh_towardzero":
double: 1
float: 1
ildouble: 2
ldouble: 1
Function: "tanh_upward":
double: 1
float: 1
ildouble: 2
ldouble: 1
Function: "tgamma":
double: 4
float: 2
@ -768,6 +1294,30 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: "y0_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 5
ldouble: 5
Function: "y0_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 5
ldouble: 5
Function: "y0_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
Function: "y1":
double: 2
float: 2
@ -776,6 +1326,30 @@ ifloat: 2
ildouble: 2
ldouble: 2
Function: "y1_downward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 7
ldouble: 7
Function: "y1_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 5
ldouble: 5
Function: "y1_upward":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 7
ldouble: 7
Function: "yn":
double: 2
float: 3

View File

@ -62,18 +62,112 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: "asinh_downward":
double: 1
float: 2
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 3
Function: "asinh_towardzero":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 2
Function: "asinh_upward":
double: 2
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
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: 1
ldouble: 1
Function: "atan2_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
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: 2
ldouble: 2
Function: "atanh_towardzero":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "atanh_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: Real part of "cacos":
double: 1
float: 2
@ -106,6 +200,76 @@ ifloat: 2
ildouble: 1
ldouble: 1
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: 2
ldouble: 2
Function: "carg_downward":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Function: "carg_towardzero":
float: 1
ifloat: 1
ildouble: 1
ldouble: 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
@ -122,6 +286,54 @@ ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "casin_downward":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
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: 2
ldouble: 2
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: 2
ldouble: 2
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
@ -138,6 +350,54 @@ ifloat: 1
ildouble: 1
ldouble: 1
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: 2
ldouble: 2
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: 2
ldouble: 2
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: 2
ldouble: 2
Function: Real part of "catan":
float: 1
ifloat: 1
@ -170,6 +430,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
@ -362,6 +644,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
@ -528,6 +858,20 @@ idouble: 1
ildouble: 1
ldouble: 1
Function: "erf_downward":
float: 1
ifloat: 1
Function: "erf_towardzero":
float: 1
ifloat: 1
Function: "erf_upward":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "erfc":
double: 1
float: 1
@ -536,6 +880,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: 2
ldouble: 2
Function: "erfc_upward":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3
Function: "exp10":
double: 1
idouble: 1
@ -630,12 +998,54 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: "gamma_downward":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
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
@ -644,6 +1054,30 @@ 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: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 5
ldouble: 5
Function: "j0_upward":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 4
ldouble: 4
Function: "j1":
double: 1
float: 2
@ -652,6 +1086,30 @@ ifloat: 2
ildouble: 1
ldouble: 1
Function: "j1_downward":
double: 3
float: 3
idouble: 3
ifloat: 3
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
@ -668,6 +1126,30 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: "lgamma_downward":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
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
@ -700,6 +1182,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: 1
ldouble: 1
Function: "pow10_upward":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Function: "pow_downward":
float: 1
ifloat: 1
@ -750,6 +1252,24 @@ Function: "sincos":
ildouble: 1
ldouble: 1
Function: "sincos_downward":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Function: "sincos_towardzero":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Function: "sincos_upward":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Function: "sinh":
ildouble: 1
ldouble: 1
@ -810,6 +1330,30 @@ ifloat: 1
ildouble: 2
ldouble: 2
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
@ -826,6 +1370,30 @@ ifloat: 1
ildouble: 1
ldouble: 1
Function: "y0_downward":
double: 3
float: 4
idouble: 3
ifloat: 4
ildouble: 5
ldouble: 5
Function: "y0_towardzero":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: "y0_upward":
double: 3
float: 5
idouble: 3
ifloat: 5
ildouble: 3
ldouble: 3
Function: "y1":
double: 3
float: 2
@ -834,6 +1402,30 @@ ifloat: 2
ildouble: 2
ldouble: 2
Function: "y1_downward":
double: 3
float: 7
idouble: 3
ifloat: 7
ildouble: 7
ldouble: 7
Function: "y1_towardzero":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 5
ldouble: 5
Function: "y1_upward":
double: 7
float: 5
idouble: 7
ifloat: 5
ildouble: 7
ldouble: 7
Function: "yn":
double: 3
float: 3