This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.

(auto-libm-test-out diffs omitted below.)

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.

diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 8b675e0..50e0e6b 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -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
diff --git a/math/gen-auto-libm-tests.c b/math/gen-auto-libm-tests.c
index d25363b..8a02b60 100644
--- a/math/gen-auto-libm-tests.c
+++ b/math/gen-auto-libm-tests.c
@@ -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;
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 5988b25..dea6c8b 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -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
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 5ed3fee..a471e5f 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -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
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index d36b76a..b45ce1d 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -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

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]