aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <josmyers@redhat.com>2024-08-27 12:38:01 +0000
committerArjun Shankar <arjun@redhat.com>2024-09-27 17:24:13 +0200
commite06153665fa931e4c7d2a3ecc14e5197e96143a7 (patch)
treeca9863020bdac8caf15d645812579926b5fb8d28
parent9bc76c7ca4d6022fd588c274d139813f99e04f35 (diff)
downloadglibc-e06153665fa931e4c7d2a3ecc14e5197e96143a7.tar.xz
glibc-e06153665fa931e4c7d2a3ecc14e5197e96143a7.zip
More thoroughly test underflow / errno in tst-strtod-round
Add tests of underflow in tst-strtod-round, and thus also test for errno being unchanged when there is neither overflow nor underflow. The errno setting before the function call to test for being unchanged is adjusted to set errno to 12345 instead of 0, so that any bugs where strtod sets errno to 0 would be detected. This doesn't add any new test inputs for tst-strtod-round, and in particular doesn't cover the edge cases of underflow the way tst-strtod-underflow does (none of the existing test inputs for tst-strtod-round actually exercise cases that have underflow with before-rounding tininess detection but not with after-rounding tininess detection), but at least it provides some coverage (as per the recent discussions) that ordinary non-overflowing non-underflowing inputs to these functions do not set errno. Tested for x86_64. (cherry picked from commit d73ed2601b7c3c93c3529149a3d7f7b6177900a8)
-rw-r--r--stdlib/gen-tst-strtod-round.c43
-rw-r--r--stdlib/tst-strtod-round-data.h15486
-rw-r--r--stdlib/tst-strtod-round-skeleton.c89
3 files changed, 7857 insertions, 7761 deletions
diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c
index e48bf4d6ea..7ce735f81d 100644
--- a/stdlib/gen-tst-strtod-round.c
+++ b/stdlib/gen-tst-strtod-round.c
@@ -46,6 +46,7 @@ static int
string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd)
{
mpfr_clear_overflow ();
+ mpfr_clear_underflow ();
#ifdef WORKAROUND
mpfr_t f2;
mpfr_init2 (f2, 100000);
@@ -53,12 +54,16 @@ string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd)
int r = mpfr_set (f, f2, rnd);
r |= mpfr_subnormalize (f, r, rnd);
mpfr_clear (f2);
- return r0 | r;
+ r |= r0;
#else
int r = mpfr_strtofr (f, s, NULL, 0, rnd);
r |= mpfr_subnormalize (f, r, rnd);
- return r;
#endif
+ if (r == 0)
+ /* The MPFR underflow flag is set for exact subnormal results,
+ which is not wanted here. */
+ mpfr_clear_underflow ();
+ return r;
}
void
@@ -70,6 +75,21 @@ print_fp (FILE *fout, mpfr_t f, const char *suffix)
mpfr_fprintf (fout, "\t%Ra%s", f, suffix);
}
+static const char *
+suffix_to_print (bool overflow, bool underflow, bool underflow_before_rounding,
+ bool with_comma)
+{
+ if (overflow)
+ return with_comma ? ", true, false,\n" : ", true, false";
+ if (underflow)
+ return with_comma ? ", false, true,\n" : ", false, true";
+ if (underflow_before_rounding)
+ return (with_comma
+ ? ", false, !TININESS_AFTER_ROUNDING,\n"
+ : ", false, !TININESS_AFTER_ROUNDING");
+ return with_comma ? ", false, false,\n" : ", false, false";
+}
+
static void
round_str (FILE *fout, const char *s, int prec, int emin, int emax,
bool ibm_ld)
@@ -80,8 +100,11 @@ round_str (FILE *fout, const char *s, int prec, int emin, int emax,
mpfr_set_emin (emin);
mpfr_set_emax (emax);
mpfr_init (f);
+ string_to_fp (f, s, MPFR_RNDZ);
+ bool underflow_before_rounding = mpfr_underflow_p () != 0;
int r = string_to_fp (f, s, MPFR_RNDD);
bool overflow = mpfr_overflow_p () != 0;
+ bool underflow = mpfr_underflow_p () != 0;
if (ibm_ld)
{
assert (prec == 106 && emin == -1073 && emax == 1024);
@@ -97,19 +120,27 @@ round_str (FILE *fout, const char *s, int prec, int emin, int emax,
}
}
mpfr_fprintf (fout, "\t%s,\n", r ? "false" : "true");
- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
+ print_fp (fout, f,
+ suffix_to_print (overflow, underflow, underflow_before_rounding,
+ true));
string_to_fp (f, s, MPFR_RNDN);
overflow = (mpfr_overflow_p () != 0
|| (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
+ print_fp (fout, f,
+ suffix_to_print (overflow, underflow, underflow_before_rounding,
+ true));
string_to_fp (f, s, MPFR_RNDZ);
overflow = (mpfr_overflow_p () != 0
|| (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
+ print_fp (fout, f,
+ suffix_to_print (overflow, underflow, underflow_before_rounding,
+ true));
string_to_fp (f, s, MPFR_RNDU);
overflow = (mpfr_overflow_p () != 0
|| (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
- print_fp (fout, f, overflow ? ", true" : ", false");
+ print_fp (fout, f,
+ suffix_to_print (overflow, underflow, underflow_before_rounding,
+ false));
mpfr_clear (f);
if (ibm_ld)
mpfr_clear (max_value);
diff --git a/stdlib/tst-strtod-round-data.h b/stdlib/tst-strtod-round-data.h
index 8899d15f9b..13e62dd2b0 100644
--- a/stdlib/tst-strtod-round-data.h
+++ b/stdlib/tst-strtod-round-data.h
@@ -2,1852 +2,1852 @@
static const struct test tests[] = {
TEST ("3.518437208883201171875E+013",
false,
- 0x2p+44, false,
- 0x2p+44, false,
- 0x2p+44, false,
- 0x2.000004p+44, false,
- false,
- 0x2.0000000000002p+44, false,
- 0x2.0000000000004p+44, false,
- 0x2.0000000000002p+44, false,
- 0x2.0000000000004p+44, false,
- true,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- true,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- true,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- true,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false),
+ 0x2p+44, false, false,
+ 0x2p+44, false, false,
+ 0x2p+44, false, false,
+ 0x2.000004p+44, false, false,
+ false,
+ 0x2.0000000000002p+44, false, false,
+ 0x2.0000000000004p+44, false, false,
+ 0x2.0000000000002p+44, false, false,
+ 0x2.0000000000004p+44, false, false,
+ true,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ true,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ true,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ true,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false),
TEST ("1.00000005960464477550",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000004p+0, false,
- false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000004p+0, false,
- false,
- 0x1.0000010000000002048242f2ffp+0, false,
- 0x1.0000010000000002048242f2ff8p+0, false,
- 0x1.0000010000000002048242f2ffp+0, false,
- 0x1.0000010000000002048242f2ff8p+0, false,
- false,
- 0x1.0000010000000002048242f2ff66p+0, false,
- 0x1.0000010000000002048242f2ff67p+0, false,
- 0x1.0000010000000002048242f2ff66p+0, false,
- 0x1.0000010000000002048242f2ff67p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000004p+0, false, false,
+ false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000004p+0, false, false,
+ false,
+ 0x1.0000010000000002048242f2ffp+0, false, false,
+ 0x1.0000010000000002048242f2ff8p+0, false, false,
+ 0x1.0000010000000002048242f2ffp+0, false, false,
+ 0x1.0000010000000002048242f2ff8p+0, false, false,
+ false,
+ 0x1.0000010000000002048242f2ff66p+0, false, false,
+ 0x1.0000010000000002048242f2ff67p+0, false, false,
+ 0x1.0000010000000002048242f2ff66p+0, false, false,
+ 0x1.0000010000000002048242f2ff67p+0, false, false),
TEST ("1.0000000596046447755",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000004p+0, false,
- false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000004p+0, false,
- false,
- 0x1.0000010000000002048242f2ffp+0, false,
- 0x1.0000010000000002048242f2ff8p+0, false,
- 0x1.0000010000000002048242f2ffp+0, false,
- 0x1.0000010000000002048242f2ff8p+0, false,
- false,
- 0x1.0000010000000002048242f2ff66p+0, false,
- 0x1.0000010000000002048242f2ff67p+0, false,
- 0x1.0000010000000002048242f2ff66p+0, false,
- 0x1.0000010000000002048242f2ff67p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000004p+0, false, false,
+ false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000004p+0, false, false,
+ false,
+ 0x1.0000010000000002048242f2ffp+0, false, false,
+ 0x1.0000010000000002048242f2ff8p+0, false, false,
+ 0x1.0000010000000002048242f2ffp+0, false, false,
+ 0x1.0000010000000002048242f2ff8p+0, false, false,
+ false,
+ 0x1.0000010000000002048242f2ff66p+0, false, false,
+ 0x1.0000010000000002048242f2ff67p+0, false, false,
+ 0x1.0000010000000002048242f2ff66p+0, false, false,
+ 0x1.0000010000000002048242f2ff67p+0, false, false),
TEST ("1.000000059604644776",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.000001000000000ap+0, false,
- 0x1.000001000000000cp+0, false,
- 0x1.000001000000000ap+0, false,
- 0x1.000001000000000cp+0, false,
- false,
- 0x1.000001000000000ap+0, false,
- 0x1.000001000000000cp+0, false,
- 0x1.000001000000000ap+0, false,
- 0x1.000001000000000cp+0, false,
- false,
- 0x1.000001000000000b3db12bdc21p+0, false,
- 0x1.000001000000000b3db12bdc21p+0, false,
- 0x1.000001000000000b3db12bdc21p+0, false,
- 0x1.000001000000000b3db12bdc218p+0, false,
- false,
- 0x1.000001000000000b3db12bdc213cp+0, false,
- 0x1.000001000000000b3db12bdc213dp+0, false,
- 0x1.000001000000000b3db12bdc213cp+0, false,
- 0x1.000001000000000b3db12bdc213dp+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.000001000000000ap+0, false, false,
+ 0x1.000001000000000cp+0, false, false,
+ 0x1.000001000000000ap+0, false, false,
+ 0x1.000001000000000cp+0, false, false,
+ false,
+ 0x1.000001000000000ap+0, false, false,
+ 0x1.000001000000000cp+0, false, false,
+ 0x1.000001000000000ap+0, false, false,
+ 0x1.000001000000000cp+0, false, false,
+ false,
+ 0x1.000001000000000b3db12bdc21p+0, false, false,
+ 0x1.000001000000000b3db12bdc21p+0, false, false,
+ 0x1.000001000000000b3db12bdc21p+0, false, false,
+ 0x1.000001000000000b3db12bdc218p+0, false, false,
+ false,
+ 0x1.000001000000000b3db12bdc213cp+0, false, false,
+ 0x1.000001000000000b3db12bdc213dp+0, false, false,
+ 0x1.000001000000000b3db12bdc213cp+0, false, false,
+ 0x1.000001000000000b3db12bdc213dp+0, false, false),
TEST ("1.000000059604644775",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffffffp+0, false,
- 0x1.000001p+0, false,
- 0x1.000000fffffffp+0, false,
- 0x1.000001p+0, false,
- false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffffap+0, false,
- false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffffap+0, false,
- false,
- 0x1.000000fffffffff8cb535a09dd8p+0, false,
- 0x1.000000fffffffff8cb535a09dd8p+0, false,
- 0x1.000000fffffffff8cb535a09dd8p+0, false,
- 0x1.000000fffffffff8cb535a09dep+0, false,
- false,
- 0x1.000000fffffffff8cb535a09dd9p+0, false,
- 0x1.000000fffffffff8cb535a09dd91p+0, false,
- 0x1.000000fffffffff8cb535a09dd9p+0, false,
- 0x1.000000fffffffff8cb535a09dd91p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000000fffffffp+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000000fffffffp+0, false, false,
+ 0x1.000001p+0, false, false,
+ false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffffap+0, false, false,
+ false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffffap+0, false, false,
+ false,
+ 0x1.000000fffffffff8cb535a09dd8p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd8p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd8p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dep+0, false, false,
+ false,
+ 0x1.000000fffffffff8cb535a09dd9p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd91p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd9p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd91p+0, false, false),
TEST ("1.00000005960464478",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.0000010000000054p+0, false,
- 0x1.0000010000000056p+0, false,
- 0x1.0000010000000054p+0, false,
- 0x1.0000010000000056p+0, false,
- false,
- 0x1.0000010000000054p+0, false,
- 0x1.0000010000000056p+0, false,
- 0x1.0000010000000054p+0, false,
- 0x1.0000010000000056p+0, false,
- false,
- 0x1.0000010000000055072873252f8p+0, false,
- 0x1.0000010000000055072873253p+0, false,
- 0x1.0000010000000055072873252f8p+0, false,
- 0x1.0000010000000055072873253p+0, false,
- false,
- 0x1.0000010000000055072873252febp+0, false,
- 0x1.0000010000000055072873252febp+0, false,
- 0x1.0000010000000055072873252febp+0, false,
- 0x1.0000010000000055072873252fecp+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.0000010000000054p+0, false, false,
+ 0x1.0000010000000056p+0, false, false,
+ 0x1.0000010000000054p+0, false, false,
+ 0x1.0000010000000056p+0, false, false,
+ false,
+ 0x1.0000010000000054p+0, false, false,
+ 0x1.0000010000000056p+0, false, false,
+ 0x1.0000010000000054p+0, false, false,
+ 0x1.0000010000000056p+0, false, false,
+ false,
+ 0x1.0000010000000055072873252f8p+0, false, false,
+ 0x1.0000010000000055072873253p+0, false, false,
+ 0x1.0000010000000055072873252f8p+0, false, false,
+ 0x1.0000010000000055072873253p+0, false, false,
+ false,
+ 0x1.0000010000000055072873252febp+0, false, false,
+ 0x1.0000010000000055072873252febp+0, false, false,
+ 0x1.0000010000000055072873252febp+0, false, false,
+ 0x1.0000010000000055072873252fecp+0, false, false),
TEST ("1.0000000596046448",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.00000100000001c4p+0, false,
- 0x1.00000100000001c6p+0, false,
- 0x1.00000100000001c4p+0, false,
- 0x1.00000100000001c6p+0, false,
- false,
- 0x1.00000100000001c4p+0, false,
- 0x1.00000100000001c6p+0, false,
- 0x1.00000100000001c4p+0, false,
- 0x1.00000100000001c6p+0, false,
- false,
- 0x1.00000100000001c5f67cd79279p+0, false,
- 0x1.00000100000001c5f67cd792798p+0, false,
- 0x1.00000100000001c5f67cd79279p+0, false,
- 0x1.00000100000001c5f67cd792798p+0, false,
- false,
- 0x1.00000100000001c5f67cd7927953p+0, false,
- 0x1.00000100000001c5f67cd7927954p+0, false,
- 0x1.00000100000001c5f67cd7927953p+0, false,
- 0x1.00000100000001c5f67cd7927954p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.00000100000001c4p+0, false, false,
+ 0x1.00000100000001c6p+0, false, false,
+ 0x1.00000100000001c4p+0, false, false,
+ 0x1.00000100000001c6p+0, false, false,
+ false,
+ 0x1.00000100000001c4p+0, false, false,
+ 0x1.00000100000001c6p+0, false, false,
+ 0x1.00000100000001c4p+0, false, false,
+ 0x1.00000100000001c6p+0, false, false,
+ false,
+ 0x1.00000100000001c5f67cd79279p+0, false, false,
+ 0x1.00000100000001c5f67cd792798p+0, false, false,
+ 0x1.00000100000001c5f67cd79279p+0, false, false,
+ 0x1.00000100000001c5f67cd792798p+0, false, false,
+ false,
+ 0x1.00000100000001c5f67cd7927953p+0, false, false,
+ 0x1.00000100000001c5f67cd7927954p+0, false, false,
+ 0x1.00000100000001c5f67cd7927953p+0, false, false,
+ 0x1.00000100000001c5f67cd7927954p+0, false, false),
TEST ("1.000000059604645",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.0000010000001p+0, false,
- 0x1.0000010000001p+0, false,
- 0x1.0000010000001p+0, false,
- 0x1.0000010000002p+0, false,
- false,
- 0x1.000001000000102ep+0, false,
- 0x1.000001000000103p+0, false,
- 0x1.000001000000102ep+0, false,
- 0x1.000001000000103p+0, false,
- false,
- 0x1.000001000000102ep+0, false,
- 0x1.000001000000103p+0, false,
- 0x1.000001000000102ep+0, false,
- 0x1.000001000000103p+0, false,
- false,
- 0x1.000001000000102f4fc8c3d757p+0, false,
- 0x1.000001000000102f4fc8c3d7578p+0, false,
- 0x1.000001000000102f4fc8c3d757p+0, false,
- 0x1.000001000000102f4fc8c3d7578p+0, false,
- false,
- 0x1.000001000000102f4fc8c3d75769p+0, false,
- 0x1.000001000000102f4fc8c3d75769p+0, false,
- 0x1.000001000000102f4fc8c3d75769p+0, false,
- 0x1.000001000000102f4fc8c3d7576ap+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.0000010000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ 0x1.0000010000002p+0, false, false,
+ false,
+ 0x1.000001000000102ep+0, false, false,
+ 0x1.000001000000103p+0, false, false,
+ 0x1.000001000000102ep+0, false, false,
+ 0x1.000001000000103p+0, false, false,
+ false,
+ 0x1.000001000000102ep+0, false, false,
+ 0x1.000001000000103p+0, false, false,
+ 0x1.000001000000102ep+0, false, false,
+ 0x1.000001000000103p+0, false, false,
+ false,
+ 0x1.000001000000102f4fc8c3d757p+0, false, false,
+ 0x1.000001000000102f4fc8c3d7578p+0, false, false,
+ 0x1.000001000000102f4fc8c3d757p+0, false, false,
+ 0x1.000001000000102f4fc8c3d7578p+0, false, false,
+ false,
+ 0x1.000001000000102f4fc8c3d75769p+0, false, false,
+ 0x1.000001000000102f4fc8c3d75769p+0, false, false,
+ 0x1.000001000000102f4fc8c3d75769p+0, false, false,
+ 0x1.000001000000102f4fc8c3d7576ap+0, false, false),
TEST ("1.00000005960464",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffffeap+0, false,
- 0x1.000000fffffeap+0, false,
- 0x1.000000fffffeap+0, false,
- 0x1.000000fffffebp+0, false,
- false,
- 0x1.000000fffffea7e4p+0, false,
- 0x1.000000fffffea7e6p+0, false,
- 0x1.000000fffffea7e4p+0, false,
- 0x1.000000fffffea7e6p+0, false,
- false,
- 0x1.000000fffffea7e4p+0, false,
- 0x1.000000fffffea7e6p+0, false,
- 0x1.000000fffffea7e4p+0, false,
- 0x1.000000fffffea7e6p+0, false,
- false,
- 0x1.000000fffffea7e5975eb11da7p+0, false,
- 0x1.000000fffffea7e5975eb11da78p+0, false,
- 0x1.000000fffffea7e5975eb11da7p+0, false,
- 0x1.000000fffffea7e5975eb11da78p+0, false,
- false,
- 0x1.000000fffffea7e5975eb11da74ap+0, false,
- 0x1.000000fffffea7e5975eb11da74bp+0, false,
- 0x1.000000fffffea7e5975eb11da74ap+0, false,
- 0x1.000000fffffea7e5975eb11da74bp+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000000fffffeap+0, false, false,
+ 0x1.000000fffffeap+0, false, false,
+ 0x1.000000fffffeap+0, false, false,
+ 0x1.000000fffffebp+0, false, false,
+ false,
+ 0x1.000000fffffea7e4p+0, false, false,
+ 0x1.000000fffffea7e6p+0, false, false,
+ 0x1.000000fffffea7e4p+0, false, false,
+ 0x1.000000fffffea7e6p+0, false, false,
+ false,
+ 0x1.000000fffffea7e4p+0, false, false,
+ 0x1.000000fffffea7e6p+0, false, false,
+ 0x1.000000fffffea7e4p+0, false, false,
+ 0x1.000000fffffea7e6p+0, false, false,
+ false,
+ 0x1.000000fffffea7e5975eb11da7p+0, false, false,
+ 0x1.000000fffffea7e5975eb11da78p+0, false, false,
+ 0x1.000000fffffea7e5975eb11da7p+0, false, false,
+ 0x1.000000fffffea7e5975eb11da78p+0, false, false,
+ false,
+ 0x1.000000fffffea7e5975eb11da74ap+0, false, false,
+ 0x1.000000fffffea7e5975eb11da74bp+0, false, false,
+ 0x1.000000fffffea7e5975eb11da74ap+0, false, false,
+ 0x1.000000fffffea7e5975eb11da74bp+0, false, false),
TEST ("1.0000000596046",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffff36p+0, false,
- 0x1.000000fffff36p+0, false,
- 0x1.000000fffff36p+0, false,
- 0x1.000000fffff37p+0, false,
- false,
- 0x1.000000fffff36596p+0, false,
- 0x1.000000fffff36598p+0, false,
- 0x1.000000fffff36596p+0, false,
- 0x1.000000fffff36598p+0, false,
- false,
- 0x1.000000fffff36596p+0, false,
- 0x1.000000fffff36598p+0, false,
- 0x1.000000fffff36596p+0, false,
- 0x1.000000fffff36598p+0, false,
- false,
- 0x1.000000fffff36597d40e1b5026p+0, false,
- 0x1.000000fffff36597d40e1b50268p+0, false,
- 0x1.000000fffff36597d40e1b5026p+0, false,
- 0x1.000000fffff36597d40e1b50268p+0, false,
- false,
- 0x1.000000fffff36597d40e1b502655p+0, false,
- 0x1.000000fffff36597d40e1b502656p+0, false,
- 0x1.000000fffff36597d40e1b502655p+0, false,
- 0x1.000000fffff36597d40e1b502656p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, f