Move tests of jn and yn from libm-test.inc to auto-libm-test-in.

This patch moves tests of jn and yn to auto-libm-test-in, adding the
required support for gen-auto-libm-tests (and adding a missing
assertion there and fixing logic that was broken for functions with
integer arguments).

Tested x86_64 and x86 and ulps updated accordingly.

	* math/auto-libm-test-in: Add tests of jn and yn.
	* math/auto-libm-test-out: Regenerated.
	* math/libm-test.inc (jn_test_data): Use AUTO_TESTS_if_f.
	(yn_test_data): Likewise.
	* math/gen-auto-libm-tests.c (func_calc_method): Add value
	mpfr_if_f.
	(func_calc_desc): Add mpfr_if_f union field.
	(FUNC_mpfr_if_f): New macro.
	(test_functions): Add jn and yn.
	(calc_generic_results): Assert type of second input for
	mpfr_ff_f.  Handle mpfr_if_f.
	(output_for_one_input_case): Disable all checking for arguments
	fitting floating-point types in case of an integer argument.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
This commit is contained in:
Joseph Myers 2013-12-18 17:59:29 +00:00
parent 2377648767
commit f889953b44
7 changed files with 4038 additions and 108 deletions

View File

@ -1,5 +1,21 @@
2013-12-18 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add tests of jn and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (jn_test_data): Use AUTO_TESTS_if_f.
(yn_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpfr_if_f.
(func_calc_desc): Add mpfr_if_f union field.
(FUNC_mpfr_if_f): New macro.
(test_functions): Add jn and yn.
(calc_generic_results): Assert type of second input for
mpfr_ff_f. Handle mpfr_if_f.
(output_for_one_input_case): Disable all checking for arguments
fitting floating-point types in case of an integer argument.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data:
Don't expect fegetround reference in libm.so.

View File

@ -352,6 +352,60 @@ j1 0x1p1023
j1 0x1p16382
j1 0x1p16383
# jn (0, x) == j0 (x).
jn 0 -1.0
jn 0 0.0
jn 0 0.125
jn 0 0.75
jn 0 1.0
jn 0 1.5
jn 0 2.0
jn 0 8.0
jn 0 10.0
jn 0 4.0
jn 0 -4.0
# jn (1, x) == j1 (x).
jn 1 -1.0
jn 1 0.0
jn 1 0.125
jn 1 0.75
jn 1 1.0
jn 1 1.5
jn 1 2.0
jn 1 8.0
jn 1 10.0
jn 3 -1.0
jn 3 0.0
jn 3 0.125
jn 3 0.75
jn 3 1.0
jn 3 2.0
jn 3 10.0
jn 10 -1.0
jn 10 0.0
jn 10 0.125
jn 10 0.75
jn 10 1.0
jn 10 2.0
jn 10 10.0
jn 2 2.4048255576957729
jn 3 2.4048255576957729
jn 4 2.4048255576957729
jn 5 2.4048255576957729
jn 6 2.4048255576957729
jn 7 2.4048255576957729
jn 8 2.4048255576957729
jn 9 2.4048255576957729
jn 2 0x1.ffff62p+99
jn 2 0x1p127
jn 2 0x1p1023
jn 2 0x1p16383
lgamma max
lgamma 1
lgamma 3
@ -1406,3 +1460,47 @@ y1 0x1p-80
y1 0x1p-90
y1 0x1p-100
y1 0x1p-110
# yn (0, x) == y0 (x).
yn 0 0.125
yn 0 0.75
yn 0 1.0
yn 0 1.5
yn 0 2.0
yn 0 8.0
yn 0 10.0
# yn (1, x) == y1 (x).
yn 1 0.125
yn 1 0.75
yn 1 1.0
yn 1 1.5
yn 1 2.0
yn 1 8.0
yn 1 10.0
# yn (-1, x) == -y1 (x).
yn -1 1.0
# yn (3, x).
yn 3 0.125
yn 3 0.75
yn 3 1.0
yn 3 2.0
yn 3 10.0
# yn (10, x).
yn 10 0.125
yn 10 0.75
yn 10 1.0
yn 10 2.0
yn 10 10.0
yn -10 1.0
yn 10 min
yn 2 0x1.ffff62p+99
yn 2 0x1p127
yn 2 0x1p1023
yn 2 0x1p16383

File diff suppressed because it is too large Load Diff

View File

@ -397,6 +397,9 @@ typedef enum
/* MPFR function with a single argument and floating-point and
integer results. */
mpfr_f_f1,
/* MPFR function with integer and floating-point arguments and one
result. */
mpfr_if_f,
} func_calc_method;
/* Description of how to calculate a function. */
@ -410,6 +413,7 @@ typedef struct
int (*mpfr_f_f) (mpfr_t, const mpfr_t, mpfr_rnd_t);
int (*mpfr_ff_f) (mpfr_t, const mpfr_t, const mpfr_t, mpfr_rnd_t);
int (*mpfr_f_f1) (mpfr_t, int *, const mpfr_t, mpfr_rnd_t);
int (*mpfr_if_f) (mpfr_t, long, const mpfr_t, mpfr_rnd_t);
} func;
} func_calc_desc;
@ -460,6 +464,9 @@ typedef struct
#define FUNC_mpfr_ff_f(NAME, MPFR_FUNC, EXACT) \
FUNC (NAME, ARGS2 (type_fp, type_fp), RET1 (type_fp), EXACT, false, \
CALC (mpfr_ff_f, MPFR_FUNC))
#define FUNC_mpfr_if_f(NAME, MPFR_FUNC, EXACT) \
FUNC (NAME, ARGS2 (type_int, type_fp), RET1 (type_fp), EXACT, false, \
CALC (mpfr_if_f, MPFR_FUNC))
/* List of functions handled by this program. */
static test_function test_functions[] =
@ -483,6 +490,7 @@ static test_function test_functions[] =
FUNC_mpfr_ff_f ("hypot", mpfr_hypot, false),
FUNC_mpfr_f_f ("j0", mpfr_j0, false),
FUNC_mpfr_f_f ("j1", mpfr_j1, false),
FUNC_mpfr_if_f ("jn", mpfr_jn, false),
FUNC ("lgamma", ARGS1 (type_fp), RET2 (type_fp, type_int), false, false,
CALC (mpfr_f_f1, mpfr_lgamma)),
FUNC_mpfr_f_f ("log", mpfr_log, false),
@ -498,6 +506,7 @@ static test_function test_functions[] =
FUNC_mpfr_f_f ("tgamma", mpfr_gamma, false),
FUNC_mpfr_f_f ("y0", mpfr_y0, false),
FUNC_mpfr_f_f ("y1", mpfr_y1, false),
FUNC_mpfr_if_f ("yn", mpfr_yn, false),
};
/* Allocate memory, with error checking. */
@ -1318,6 +1327,7 @@ calc_generic_results (generic_value *outputs, generic_value *inputs,
case mpfr_ff_f:
assert (inputs[0].type == gtype_fp);
assert (inputs[1].type == gtype_fp);
outputs[0].type = gtype_fp;
mpfr_init (outputs[0].value.f);
inexact = calc->func.mpfr_ff_f (outputs[0].value.f, inputs[0].value.f,
@ -1337,6 +1347,18 @@ calc_generic_results (generic_value *outputs, generic_value *inputs,
mpz_init_set_si (outputs[1].value.i, i);
break;
case mpfr_if_f:
assert (inputs[0].type == gtype_int);
assert (inputs[1].type == gtype_fp);
outputs[0].type = gtype_fp;
mpfr_init (outputs[0].value.f);
assert (mpz_fits_slong_p (inputs[0].value.i));
long l = mpz_get_si (inputs[0].value.i);
inexact = calc->func.mpfr_if_f (outputs[0].value.f, l,
inputs[1].value.f, MPFR_RNDZ);
adjust_real (outputs[0].value.f, inexact);
break;
default:
abort ();
}
@ -1547,13 +1569,16 @@ output_for_one_input_case (FILE *fp, const char *filename, test_function *tf,
for (size_t i = 0; i < tf->num_args; i++)
{
if (inputs[i].type == gtype_fp)
round_real (res, exc_before, exc_after, inputs[i].value.f, f);
if (!mpfr_equal_p (res[rm_tonearest], inputs[i].value.f))
fits = false;
for (rounding_mode m = rm_first_mode; m < rm_num_modes; m++)
mpfr_clear (res[m]);
if (!fits)
break;
{
round_real (res, exc_before, exc_after, inputs[i].value.f,
f);
if (!mpfr_equal_p (res[rm_tonearest], inputs[i].value.f))
fits = false;
for (rounding_mode m = rm_first_mode; m < rm_num_modes; m++)
mpfr_clear (res[m]);
if (!fits)
break;
}
}
if (!fits)
continue;

View File

@ -9495,73 +9495,20 @@ static const struct test_if_f_data jn_test_data[] =
/* jn (0, x) == j0 (x) */
TEST_if_f (jn, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (jn, 0, plus_infty, 0),
TEST_if_f (jn, 0, -1.0, 0.765197686557966551449717526102663221L),
TEST_if_f (jn, 0, 0.0, 1.0),
TEST_if_f (jn, 0, 0.125L, 0.996097563041985204620768999453174712L),
TEST_if_f (jn, 0, 0.75L, 0.864242275166648623555731103820923211L),
TEST_if_f (jn, 0, 1.0, 0.765197686557966551449717526102663221L),
TEST_if_f (jn, 0, 1.5, 0.511827671735918128749051744283411720L),
TEST_if_f (jn, 0, 2.0, 0.223890779141235668051827454649948626L),
TEST_if_f (jn, 0, 8.0, 0.171650807137553906090869407851972001L),
TEST_if_f (jn, 0, 10.0, -0.245935764451348335197760862485328754L),
TEST_if_f (jn, 0, 4.0, -3.9714980986384737228659076845169804197562E-1L),
TEST_if_f (jn, 0, -4.0, -3.9714980986384737228659076845169804197562E-1L),
/* jn (1, x) == j1 (x) */
TEST_if_f (jn, 1, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (jn, 1, plus_infty, 0),
TEST_if_f (jn, 1, -1.0, -0.440050585744933515959682203718914913L),
TEST_if_f (jn, 1, 0.0, 0.0),
TEST_if_f (jn, 1, 0.125L, 0.0623780091344946810942311355879361177L),
TEST_if_f (jn, 1, 0.75L, 0.349243602174862192523281016426251335L),
TEST_if_f (jn, 1, 1.0, 0.440050585744933515959682203718914913L),
TEST_if_f (jn, 1, 1.5, 0.557936507910099641990121213156089400L),
TEST_if_f (jn, 1, 2.0, 0.576724807756873387202448242269137087L),
TEST_if_f (jn, 1, 8.0, 0.234636346853914624381276651590454612L),
TEST_if_f (jn, 1, 10.0, 0.0434727461688614366697487680258592883L),
/* jn (3, x) */
TEST_if_f (jn, 3, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (jn, 3, plus_infty, 0),
TEST_if_f (jn, 3, -1.0, -0.0195633539826684059189053216217515083L),
TEST_if_f (jn, 3, 0.0, 0.0),
TEST_if_f (jn, 3, 0.125L, 0.406503832554912875023029337653442868e-4L),
TEST_if_f (jn, 3, 0.75L, 0.848438342327410884392755236884386804e-2L),
TEST_if_f (jn, 3, 1.0, 0.0195633539826684059189053216217515083L),
TEST_if_f (jn, 3, 2.0, 0.128943249474402051098793332969239835L),
TEST_if_f (jn, 3, 10.0, 0.0583793793051868123429354784103409563L),
/* jn (10, x) */
TEST_if_f (jn, 10, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (jn, 10, plus_infty, 0),
TEST_if_f (jn, 10, -1.0, 0.263061512368745320699785368779050294e-9L),
TEST_if_f (jn, 10, 0.0, 0.0),
TEST_if_f (jn, 10, 0.125L, 0.250543369809369890173993791865771547e-18L),
TEST_if_f (jn, 10, 0.75L, 0.149621713117596814698712483621682835e-10L),
TEST_if_f (jn, 10, 1.0, 0.263061512368745320699785368779050294e-9L),
TEST_if_f (jn, 10, 2.0, 0.251538628271673670963516093751820639e-6L),
TEST_if_f (jn, 10, 10.0, 0.207486106633358857697278723518753428L),
/* BZ #11589 .*/
TEST_if_f (jn, 2, 2.4048255576957729L, 0.43175480701968038399746111312430703L),
TEST_if_f (jn, 3, 2.4048255576957729L, 0.19899990535769083404042146764530813L),
TEST_if_f (jn, 4, 2.4048255576957729L, 0.647466661641779720084932282551219891E-1L),
TEST_if_f (jn, 5, 2.4048255576957729L, 0.163892432048058525099230549946147698E-1L),
TEST_if_f (jn, 6, 2.4048255576957729L, 0.34048184720278336646673682895929161E-2L),
TEST_if_f (jn, 7, 2.4048255576957729L, 0.60068836573295394221291569249883076E-3L),
TEST_if_f (jn, 8, 2.4048255576957729L, 0.92165786705344923232879022467054148E-4L),
TEST_if_f (jn, 9, 2.4048255576957729L, 0.12517270977961513005428966643852564E-4L),
TEST_if_f (jn, 2, 0x1.ffff62p+99L, -4.43860668048170034334926693188979974489e-16L),
TEST_if_f (jn, 2, 0x1p127L, -6.0784021821505059176832624052765568656702e-20L),
#ifndef TEST_FLOAT
TEST_if_f (jn, 2, 0x1p1023L, 1.5665258060609012834424478437196679802783e-155L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
TEST_if_f (jn, 2, 0x1p16383L, -9.5859502826270374691362975419147645151233e-2467L),
#endif
AUTO_TESTS_if_f (jn, tonearest),
};
static void
@ -13048,14 +12995,6 @@ static const struct test_if_f_data yn_test_data[] =
TEST_if_f (yn, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (yn, 0, plus_infty, 0),
TEST_if_f (yn, 0, 0.125L, -1.38968062514384052915582277745018693L),
TEST_if_f (yn, 0, 0.75L, -0.137172769385772397522814379396581855L),
TEST_if_f (yn, 0, 1.0, 0.0882569642156769579829267660235151628L),
TEST_if_f (yn, 0, 1.5, 0.382448923797758843955068554978089862L),
TEST_if_f (yn, 0, 2.0, 0.510375672649745119596606592727157873L),
TEST_if_f (yn, 0, 8.0, 0.223521489387566220527323400498620359L),
TEST_if_f (yn, 0, 10.0, 0.0556711672835993914244598774101900481L),
/* yn (1, x) == y1 (x) */
TEST_if_f (yn, 1, -1.0, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_if_f (yn, 1, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
@ -13065,14 +13004,6 @@ static const struct test_if_f_data yn_test_data[] =
TEST_if_f (yn, 1, plus_infty, 0),
TEST_if_f (yn, 1, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (yn, 1, 0.125L, -5.19993611253477499595928744876579921L),
TEST_if_f (yn, 1, 0.75L, -1.03759455076928541973767132140642198L),
TEST_if_f (yn, 1, 1.0, -0.781212821300288716547150000047964821L),
TEST_if_f (yn, 1, 1.5, -0.412308626973911295952829820633445323L),
TEST_if_f (yn, 1, 2.0, -0.107032431540937546888370772277476637L),
TEST_if_f (yn, 1, 8.0, -0.158060461731247494255555266187483550L),
TEST_if_f (yn, 1, 10.0, 0.249015424206953883923283474663222803L),
/* yn (-1, x) == -y1 (x). */
TEST_if_f (yn, -1, -1.0, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_if_f (yn, -1, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
@ -13081,7 +13012,6 @@ static const struct test_if_f_data yn_test_data[] =
TEST_if_f (yn, -1, -0.0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_if_f (yn, -1, plus_infty, minus_zero),
TEST_if_f (yn, -1, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (yn, -1, 1.0, 0.781212821300288716547150000047964821L),
/* yn (2, x). */
TEST_if_f (yn, 2, -1.0, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
@ -13110,36 +13040,11 @@ static const struct test_if_f_data yn_test_data[] =
TEST_if_f (yn, 3, plus_infty, 0),
TEST_if_f (yn, 3, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (yn, 3, 0.125L, -2612.69757350066712600220955744091741L),
TEST_if_f (yn, 3, 0.75L, -12.9877176234475433186319774484809207L),
TEST_if_f (yn, 3, 1.0, -5.82151760596472884776175706442981440L),
TEST_if_f (yn, 3, 2.0, -1.12778377684042778608158395773179238L),
TEST_if_f (yn, 3, 10.0, -0.251362657183837329779204747654240998L),
/* yn (10, x) */
TEST_if_f (yn, 10, plus_infty, 0),
TEST_if_f (yn, 10, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
TEST_if_f (yn, 10, 0.125L, -127057845771019398.252538486899753195L),
TEST_if_f (yn, 10, 0.75L, -2133501638.90573424452445412893839236L),
TEST_if_f (yn, 10, 1.0, -121618014.278689189288130426667971145L),
TEST_if_f (yn, 10, 2.0, -129184.542208039282635913145923304214L),
TEST_if_f (yn, 10, 10.0, -0.359814152183402722051986577343560609L),
TEST_if_f (yn, -10, 1.0, -121618014.278689189288130426667971145L),
/* Check whether yn returns correct value for LDBL_MIN, DBL_MIN,
and FLT_MIN. See Bug 14173. */
TEST_if_f (yn, 10, min_value, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
TEST_if_f (yn, 2, 0x1.ffff62p+99L, -5.5244413477397111790415387179517953221757e-16L),
TEST_if_f (yn, 2, 0x1p127L, 6.8569250690166637098111268958532649249771e-21L),
#ifndef TEST_FLOAT
TEST_if_f (yn, 2, 0x1p1023L, -8.2687542933709649327986678723012001545638e-155L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
TEST_if_f (yn, 2, 0x1p16383L, 3.8895531955766020648617743624167352352217e-2467L),
#endif
AUTO_TESTS_if_f (yn, tonearest),
};
static void

View File

@ -6439,6 +6439,13 @@ float: 1
ifloat: 1
# jn
Test "jn (0, -0x4p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (0, -4.0)":
double: 1
float: 1
@ -6446,6 +6453,24 @@ idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (0, 0x2p+0)":
float: 1
ifloat: 1
Test "jn (0, 0x4p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (0, 0x8p+0)":
float: 1
ifloat: 1
Test "jn (0, 0xap+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "jn (0, 10.0)":
double: 1
float: 1
@ -6464,6 +6489,19 @@ ldouble: 2
Test "jn (0, 8.0)":
float: 1
ifloat: 1
Test "jn (1, 0x2p+0)":
double: 1
idouble: 1
Test "jn (1, 0x8p+0)":
float: 1
ifloat: 1
Test "jn (1, 0xap+0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (1, 10.0)":
double: 2
float: 1
@ -6477,6 +6515,13 @@ idouble: 1
Test "jn (1, 8.0)":
float: 1
ifloat: 1
Test "jn (10, -0x1p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (10, -1.0)":
double: 1
float: 1
@ -6492,6 +6537,31 @@ float: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (10, 0x1p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (10, 0x2p+0)":
ildouble: 1
ldouble: 1
Test "jn (10, 0x2p-4)":
float: 1
ifloat: 1
Test "jn (10, 0xap+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Test "jn (10, 0xcp-4)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (10, 1.0)":
double: 1
float: 1
@ -6522,6 +6592,55 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (2, 0x2.67a2a4p+0)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
Test "jn (2, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 1
ldouble: 1
Test "jn (2, 0x2.67a2a5d2e36801p+0)":
ildouble: 2
ldouble: 2
Test "jn (2, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (2, 0x2.67a2a5d2e368p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (2, 0x2.67a2a8p+0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (2, 0x8p+1020)":
double: 1
idouble: 1
Test "jn (2, 0x8p+124)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (2, 0xf.fffb1p+96)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (2, 0xf.ffffffffffff8p+1020)":
ildouble: 1
ldouble: 1
Test "jn (2, 0xf.fffffp+124)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (2, 2.4048255576957729)":
double: 1
float: 1
@ -6529,9 +6648,45 @@ idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (3, -0x1p+0)":
ildouble: 1
ldouble: 1
Test "jn (3, -1.0)":
ildouble: 1
ldouble: 1
Test "jn (3, 0x1p+0)":
ildouble: 1
ldouble: 1
Test "jn (3, 0x2.67a2a4p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (3, 0x2.67a2a5d2e36801p+0)":
ildouble: 3
ldouble: 3
Test "jn (3, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (3, 0x2.67a2a8p+0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (3, 0x2p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (3, 0xap+0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (3, 1.0)":
ildouble: 1
ldouble: 1
@ -6548,9 +6703,45 @@ ldouble: 1
Test "jn (3, 2.4048255576957729)":
ildouble: 1
ldouble: 1
Test "jn (4, 0x2.67a2a4p+0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (4, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 2
ldouble: 2
Test "jn (4, 0x2.67a2a5d2e36801p+0)":
ildouble: 1
ldouble: 1
Test "jn (4, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
Test "jn (4, 0x2.67a2a5d2e368p+0)":
ildouble: 1
ldouble: 1
Test "jn (4, 0x2.67a2a8p+0)":
ildouble: 1
ldouble: 1
Test "jn (4, 2.4048255576957729)":
ildouble: 2
ldouble: 2
Test "jn (5, 0x2.67a2a4p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (5, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 2
ldouble: 2
Test "jn (5, 0x2.67a2a5d2e36801p+0)":
ildouble: 1
ldouble: 1
Test "jn (5, 0x2.67a2a5d2e368p+0)":
ildouble: 1
ldouble: 1
Test "jn (5, 2.4048255576957729)":
double: 1
float: 1
@ -6558,6 +6749,32 @@ idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
Test "jn (6, 0x2.67a2a4p+0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (6, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 1
ldouble: 1
Test "jn (6, 0x2.67a2a5d2e36801p+0)":
ildouble: 1
ldouble: 1
Test "jn (6, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (6, 0x2.67a2a5d2e368p+0)":
double: 1
idouble: 1
Test "jn (6, 0x2.67a2a8p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (6, 2.4048255576957729)":
double: 1
float: 2
@ -6565,11 +6782,53 @@ idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (7, 0x2.67a2a4p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
Test "jn (7, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 2
ldouble: 2
Test "jn (7, 0x2.67a2a5d2e36801p+0)":
ildouble: 1
ldouble: 1
Test "jn (7, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
Test "jn (7, 0x2.67a2a5d2e368p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (7, 0x2.67a2a8p+0)":
float: 1
ifloat: 1
Test "jn (7, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
ifloat: 2
Test "jn (8, 0x2.67a2a4p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (8, 0x2.67a2a5d2e3682p+0)":
double: 2
idouble: 2
Test "jn (8, 0x2.67a2a5d2e368p+0)":
double: 1
idouble: 1
Test "jn (8, 0x2.67a2a8p+0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (8, 2.4048255576957729)":
double: 1
float: 3
@ -6577,6 +6836,22 @@ idouble: 1
ifloat: 3
ildouble: 2
ldouble: 2
Test "jn (9, 0x2.67a2a4p+0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (9, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
Test "jn (9, 0x2.67a2a5d2e368p+0)":
ildouble: 1
ldouble: 1
Test "jn (9, 0x2.67a2a8p+0)":
float: 3
ifloat: 3
ildouble: 3
ldouble: 3
Test "jn (9, 2.4048255576957729)":
float: 4
ifloat: 4
@ -9694,6 +9969,9 @@ float: 2
ifloat: 2
# yn
Test "yn (-10, 0x1p+0)":
float: 2
ifloat: 2
Test "yn (-10, 1.0)":
float: 2
ifloat: 2
@ -9705,6 +9983,27 @@ double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (0, 0x1p+0)":
ildouble: 1
ldouble: 1
Test "yn (0, 0x2p-4)":
ildouble: 1
ldouble: 1
Test "yn (0, 0x8p+0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "yn (0, 0xap+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (0, 0xcp-4)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (0, 1.0)":
ildouble: 1
ldouble: 1
@ -9721,6 +10020,24 @@ ldouble: 1
Test "yn (1, 0.125)":
ildouble: 1
ldouble: 1
Test "yn (1, 0x2p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Test "yn (1, 0x2p-4)":
ildouble: 1
ldouble: 1
Test "yn (1, 0x8p+0)":
float: 2
ifloat: 2
Test "yn (1, 0xap+0)":
double: 2
float: 2
idouble: 2
ifloat: 2
Test "yn (1, 10.0)":
double: 2
float: 2
@ -9746,6 +10063,36 @@ float: 1
ifloat: 1
ildouble: 4
ldouble: 4
Test "yn (10, 0x1p+0)":
float: 2
ifloat: 2
Test "yn (10, 0x2p+0)":
float: 3
ifloat: 3
Test "yn (10, 0x2p-4)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Test "yn (10, 0x4p-1024)":
ildouble: 1
ldouble: 1
Test "yn (10, 0x4p-128)":
ildouble: 1
ldouble: 1
Test "yn (10, 0x8p-972)":
ildouble: 1
ldouble: 1
Test "yn (10, 0xap+0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "yn (10, 0xcp-4)":
float: 1
ifloat: 1
ildouble: 4
ldouble: 4
Test "yn (10, 1.0)":
float: 2
ifloat: 2
@ -9765,6 +10112,19 @@ ldouble: 1
Test "yn (2, 0x1p127)":
float: 2
ifloat: 2
Test "yn (2, 0x8p+124)":
float: 2
ifloat: 2
Test "yn (2, 0xf.fffb1p+96)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "yn (2, 0xf.fffffp+124)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (3, 0.125)":
ildouble: 1
ldouble: 1
@ -9773,6 +10133,22 @@ double: 1
idouble: 1
ildouble: 2
ldouble: 2
Test "yn (3, 0x2p+0)":
float: 1
ifloat: 1
Test "yn (3, 0x2p-4)":
ildouble: 1
ldouble: 1
Test "yn (3, 0xap+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (3, 0xcp-4)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Test "yn (3, 10.0)":
double: 1
float: 1
@ -10322,8 +10698,8 @@ double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 3
ldouble: 3
ildouble: 4
ldouble: 4
Function: "lgamma":
double: 1

View File

@ -7388,6 +7388,13 @@ double: 1
idouble: 1
# jn
Test "jn (0, -0x4p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (0, -4.0)":
double: 1
float: 1
@ -7398,6 +7405,27 @@ ldouble: 2
Test "jn (0, 0.75)":
float: 1
ifloat: 1
Test "jn (0, 0x2p+0)":
float: 2
ifloat: 2
Test "jn (0, 0x4p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (0, 0x8p+0)":
float: 1
ifloat: 1
Test "jn (0, 0xap+0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "jn (0, 0xcp-4)":
float: 1
ifloat: 1
Test "jn (0, 10.0)":
double: 2
float: 1
@ -7416,6 +7444,17 @@ ldouble: 2
Test "jn (0, 8.0)":
float: 1
ifloat: 1
Test "jn (1, 0x2p+0)":
double: 1
idouble: 1
Test "jn (1, 0x8p+0)":
double: 1
idouble: 1
Test "jn (1, 0xap+0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (1, 10.0)":
float: 2
ifloat: 2
@ -7427,6 +7466,9 @@ idouble: 1
Test "jn (1, 8.0)":
double: 1
idouble: 1
Test "jn (10, -0x1p+0)":
ildouble: 1
ldouble: 1
Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
@ -7442,6 +7484,35 @@ idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (10, 0x1p+0)":
ildouble: 1
ldouble: 1
Test "jn (10, 0x2p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (10, 0x2p-4)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "jn (10, 0xap+0)":
double: 4
float: 2
idouble: 4
ifloat: 2
ildouble: 2
ldouble: 2
Test "jn (10, 0xcp-4)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
@ -7471,6 +7542,56 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (2, 0x2.67a2a4p+0)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
Test "jn (2, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 1
ldouble: 1
Test "jn (2, 0x2.67a2a5d2e36801p+0)":
ildouble: 2
ldouble: 2
Test "jn (2, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (2, 0x2.67a2a5d2e368p+0)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
Test "jn (2, 0x2.67a2a8p+0)":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 2
ldouble: 2
Test "jn (2, 0x8p+124)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (2, 0xf.fffb1p+96)":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (2, 0xf.ffffffffffff8p+1020)":
ildouble: 1
ldouble: 1
Test "jn (2, 0xf.fffffp+124)":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
@ -7478,6 +7599,9 @@ idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (3, -0x1p+0)":
ildouble: 1
ldouble: 1
Test "jn (3, -1.0)":
ildouble: 1
ldouble: 1
@ -7491,6 +7615,54 @@ double: 1
float: 1
idouble: 1
ifloat: 1
Test "jn (3, 0x1p+0)":
ildouble: 1
ldouble: 1
Test "jn (3, 0x2.67a2a4p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (3, 0x2.67a2a5d2e36801p+0)":
ildouble: 3
ldouble: 3
Test "jn (3, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (3, 0x2.67a2a5d2e368p+0)":
double: 3
idouble: 3
Test "jn (3, 0x2.67a2a8p+0)":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 1
ldouble: 1
Test "jn (3, 0x2p+0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (3, 0x2p-4)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "jn (3, 0xap+0)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
Test "jn (3, 0xcp-4)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "jn (3, 1.0)":
ildouble: 1
ldouble: 1
@ -7511,11 +7683,59 @@ double: 3
idouble: 3
ildouble: 1
ldouble: 1
Test "jn (4, 0x2.67a2a4p+0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (4, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 2
ldouble: 2
Test "jn (4, 0x2.67a2a5d2e36801p+0)":
ildouble: 1
ldouble: 1
Test "jn (4, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
Test "jn (4, 0x2.67a2a5d2e368p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (4, 0x2.67a2a8p+0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Test "jn (5, 0x2.67a2a4p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (5, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 2
ldouble: 2
Test "jn (5, 0x2.67a2a5d2e36801p+0)":
ildouble: 1
ldouble: 1
Test "jn (5, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
Test "jn (5, 0x2.67a2a5d2e368p+0)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
Test "jn (5, 0x2.67a2a8p+0)":
float: 2
ifloat: 2
Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
@ -7523,6 +7743,34 @@ idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
Test "jn (6, 0x2.67a2a4p+0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Test "jn (6, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 1
ldouble: 1
Test "jn (6, 0x2.67a2a5d2e36801p+0)":
ildouble: 1
ldouble: 1
Test "jn (6, 0x2.67a2a5d2e3682p+0)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
Test "jn (6, 0x2.67a2a5d2e368p+0)":
double: 4
idouble: 4
Test "jn (6, 0x2.67a2a8p+0)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 1
ldouble: 1
Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
@ -7530,11 +7778,55 @@ idouble: 4
ifloat: 3
ildouble: 1
ldouble: 1
Test "jn (7, 0x2.67a2a4p+0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "jn (7, 0x2.67a2a5d2e36800fcp+0)":
ildouble: 2
ldouble: 2
Test "jn (7, 0x2.67a2a5d2e36801p+0)":
ildouble: 1
ldouble: 1
Test "jn (7, 0x2.67a2a5d2e3682p+0)":
ildouble: 4
ldouble: 4
Test "jn (7, 0x2.67a2a5d2e368p+0)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
Test "jn (7, 0x2.67a2a8p+0)":
double: 2
float: 3
idouble: 2
ifloat: 3
Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
Test "jn (8, 0x2.67a2a4p+0)":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
Test "jn (8, 0x2.67a2a5d2e3682p+0)":
double: 1
idouble: 1
Test "jn (8, 0x2.67a2a5d2e368p+0)":
double: 3
idouble: 3
Test "jn (8, 0x2.67a2a8p+0)":
double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 1
ldouble: 1
Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
@ -7542,6 +7834,28 @@ idouble: 3
ifloat: 2
ildouble: 2
ldouble: 2
Test "jn (9, 0x2.67a2a4p+0)":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Test "jn (9, 0x2.67a2a5d2e3682p+0)":
double: 4
idouble: 4
Test "jn (9, 0x2.67a2a5d2e368p+0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "jn (9, 0x2.67a2a8p+0)":
double: 3
float: 3
idouble: 3
ifloat: 3
ildouble: 3
ldouble: 3
Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
@ -10912,6 +11226,11 @@ idouble: 1
ifloat: 2
# yn
Test "yn (-10, 0x1p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
Test "yn (-10, 1.0)":
double: 1
float: 2
@ -10920,6 +11239,31 @@ ifloat: 2
Test "yn (0, 0.125)":
ildouble: 1
ldouble: 1
Test "yn (0, 0x1.8p+0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "yn (0, 0x1p+0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Test "yn (0, 0x2p-4)":
ildouble: 1
ldouble: 1
Test "yn (0, 0x8p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "yn (0, 0xap+0)":
float: 1
ifloat: 1
Test "yn (0, 1.0)":
double: 2
float: 1
@ -10952,6 +11296,31 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "yn (1, 0x1.8p+0)":
float: 1
ifloat: 1
Test "yn (1, 0x2p+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
Test "yn (1, 0x2p-4)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "yn (1, 0x8p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
Test "yn (1, 0xap+0)":
double: 3
float: 1
idouble: 3
ifloat: 1
Test "yn (1, 1.5)":
float: 1
ifloat: 1
@ -10984,6 +11353,42 @@ idouble: 1
ifloat: 2
ildouble: 4
ldouble: 4
Test "yn (10, 0x1p+0)":
double: 1
float: 2
idouble: 1
ifloat: 2
Test "yn (10, 0x2p+0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "yn (10, 0x2p-4)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Test "yn (10, 0x4p-1024)":
ildouble: 1
ldouble: 1
Test "yn (10, 0x4p-128)":
ildouble: 1
ldouble: 1
Test "yn (10, 0x8p-972)":
ildouble: 1
ldouble: 1
Test "yn (10, 0xap+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (10, 0xcp-4)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 4
ldouble: 4
Test "yn (10, 1.0)":
double: 1
float: 2
@ -11009,6 +11414,24 @@ double: 1
float: 3
idouble: 1
ifloat: 3
Test "yn (2, 0x8p+124)":
double: 1
float: 3
idouble: 1
ifloat: 3
Test "yn (2, 0xf.fffb1p+96)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "yn (2, 0xf.ffffffffffff8p+1020)":
double: 1
idouble: 1
Test "yn (2, 0xf.fffffp+124)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (3, 0.125)":
double: 1
idouble: 1
@ -11021,6 +11444,24 @@ idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Test "yn (3, 0x2p+0)":
double: 1
idouble: 1
Test "yn (3, 0x2p-4)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
Test "yn (3, 0xap+0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (3, 0xcp-4)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
Test "yn (3, 10.0)":
double: 1
float: 1
@ -11610,8 +12051,8 @@ double: 4
float: 5
idouble: 4
ifloat: 5
ildouble: 3
ldouble: 3
ildouble: 4
ldouble: 4
Function: "lgamma":
double: 1