From 118fbf0e1cae103b7e1287bc4b6a929fdf4c000e Mon Sep 17 00:00:00 2001 From: "Paul E. Murphy" Date: Mon, 9 May 2016 11:49:11 -0500 Subject: Refactor tst-strtod-round.c This file is partially generated. To make updates a little simpler, I have moved the generated code into a partially contained header to simplify regeneration. gen-tst-strtod-round.c now takes two, mandatory arguments. These arguments specify the input test data and the output destination, respectively. --- stdlib/gen-tst-strtod-round.c | 88 +- stdlib/tst-strtod-round-data.h | 12334 ++++++++++++++++++++++++++++++++++++++ stdlib/tst-strtod-round.c | 12338 +-------------------------------------- 3 files changed, 12403 insertions(+), 12357 deletions(-) create mode 100644 stdlib/tst-strtod-round-data.h (limited to 'stdlib') diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c index 3ef450640f..fa5562ee00 100644 --- a/stdlib/gen-tst-strtod-round.c +++ b/stdlib/gen-tst-strtod-round.c @@ -17,11 +17,25 @@ License along with the GNU C Library; if not, see . */ +/* Compile this program as: + + gcc -std=gnu11 -O2 -Wall -Wextra gen-tst-strtod-round.c -lmpfr + -o gen-tst-strtod-round + + (use of current MPFR version recommended) and run it as: + + gen-tst-strtod-round tst-strtod-round-data tst-strtod-round-data.h + + The output file will be generated as tst-strtod-round-data.h +*/ + + #define _GNU_SOURCE #include #include #include #include +#include #include /* Work around incorrect ternary value from mpfr_strtofr @@ -47,16 +61,17 @@ string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd) } static void -print_fp (mpfr_t f, const char *suffix, const char *suffix2) +print_fp (FILE *fout, mpfr_t f, const char *suffix, const char *suffix2) { if (mpfr_inf_p (f)) - mpfr_printf ("\t%sINFINITY%s", mpfr_signbit (f) ? "-" : "", suffix2); + mpfr_fprintf (fout, "\t%sINFINITY%s", mpfr_signbit (f) ? "-" : "", + suffix2); else - mpfr_printf ("\t%Ra%s%s", f, suffix, suffix2); + mpfr_fprintf (fout, "\t%Ra%s%s", f, suffix, suffix2); } static void -round_str (const char *s, const char *suffix, +round_str (FILE *fout, const char *s, const char *suffix, int prec, int emin, int emax, bool ibm_ld) { mpfr_t f; @@ -78,19 +93,19 @@ round_str (const char *s, const char *suffix, r = 1; mpfr_clear (max_value); } - mpfr_printf ("\t%s,\n", r ? "false" : "true"); - print_fp (f, suffix, ",\n"); + mpfr_fprintf (fout, "\t%s,\n", r ? "false" : "true"); + print_fp (fout, f, suffix, ",\n"); string_to_fp (f, s, MPFR_RNDN); - print_fp (f, suffix, ",\n"); + print_fp (fout, f, suffix, ",\n"); string_to_fp (f, s, MPFR_RNDZ); - print_fp (f, suffix, ",\n"); + print_fp (fout, f, suffix, ",\n"); string_to_fp (f, s, MPFR_RNDU); - print_fp (f, suffix, ""); + print_fp (fout, f, suffix, ""); mpfr_clear (f); } static void -round_for_all (const char *s) +round_for_all (FILE *fout, const char *s) { static const struct fmt { const char *suffix; @@ -109,39 +124,70 @@ round_for_all (const char *s) { "L", 106, -1073, 1024, true }, { "L", 113, -16493, 16384, false }, }; - mpfr_printf (" TEST (\""); + mpfr_fprintf (fout, " TEST (\""); const char *p; for (p = s; *p; p++) { - putchar (*p); + fputc (*p, fout); if ((p - s) % 60 == 59 && p[1]) - mpfr_printf ("\"\n\t\""); + mpfr_fprintf (fout, "\"\n\t\""); } - mpfr_printf ("\",\n"); + mpfr_fprintf (fout, "\",\n"); int i; for (i = 0; i < 7; i++) { - round_str (s, formats[i].suffix, formats[i].prec, + round_str (fout, s, formats[i].suffix, formats[i].prec, formats[i].emin, formats[i].emax, formats[i].ibm_ld); if (i < 6) - mpfr_printf (",\n"); + mpfr_fprintf (fout, ",\n"); } - mpfr_printf ("),\n"); + mpfr_fprintf (fout, "),\n"); } int -main (void) +main (int argc, char **argv) { char *p = NULL; size_t len; ssize_t nbytes; - while ((nbytes = getline (&p, &len, stdin)) != -1) + FILE *fin, *fout; + char *fin_name, *fout_name; + + if (argc < 3) + { + fprintf (stderr, "Usage: %s \n", basename (argv[0])); + return EXIT_FAILURE; + } + + fin_name = argv[1]; + fout_name = argv[2]; + + fin = fopen (fin_name, "r"); + if (fin == NULL) + { + perror ("Could not open input for reading"); + return EXIT_FAILURE; + } + + fout = fopen (fout_name, "w"); + if (fout == NULL) + { + perror ("Could not open output for writing"); + return EXIT_FAILURE; + } + + fprintf (fout, "/* This file was generated by %s from %s. */\n", + __FILE__, fin_name); + fputs ("static const struct test tests[] = {\n", fout); + while ((nbytes = getline (&p, &len, fin)) != -1) { if (p[nbytes - 1] == '\n') p[nbytes - 1] = 0; - round_for_all (p); + round_for_all (fout, p); free (p); p = NULL; } - return 0; + fputs ("};\n", fout); + + return EXIT_SUCCESS; } diff --git a/stdlib/tst-strtod-round-data.h b/stdlib/tst-strtod-round-data.h new file mode 100644 index 0000000000..352d785fc2 --- /dev/null +++ b/stdlib/tst-strtod-round-data.h @@ -0,0 +1,12334 @@ +/* This file was generated by gen-tst-strtod-round.c from tst-strtod-round-data. */ +static const struct test tests[] = { + TEST ("3.518437208883201171875E+013", + false, + 0x2p+44f, + 0x2p+44f, + 0x2p+44f, + 0x2.000004p+44f, + false, + 0x2.0000000000002p+44, + 0x2.0000000000004p+44, + 0x2.0000000000002p+44, + 0x2.0000000000004p+44, + false, + 0x2.0000000000002p+44L, + 0x2.0000000000004p+44L, + 0x2.0000000000002p+44L, + 0x2.0000000000004p+44L, + true, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + true, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + true, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + true, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L, + 0x2.0000000000003p+44L), + TEST ("1.00000005960464477550", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.0000010000001p+0, + false, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.0000010000001p+0L, + false, + 0x1.0000010000000002p+0L, + 0x1.0000010000000002p+0L, + 0x1.0000010000000002p+0L, + 0x1.0000010000000004p+0L, + false, + 0x1.0000010000000002p+0L, + 0x1.0000010000000002p+0L, + 0x1.0000010000000002p+0L, + 0x1.0000010000000004p+0L, + false, + 0x1.0000010000000002048242f2ffp+0L, + 0x1.0000010000000002048242f2ff8p+0L, + 0x1.0000010000000002048242f2ffp+0L, + 0x1.0000010000000002048242f2ff8p+0L, + false, + 0x1.0000010000000002048242f2ff66p+0L, + 0x1.0000010000000002048242f2ff67p+0L, + 0x1.0000010000000002048242f2ff66p+0L, + 0x1.0000010000000002048242f2ff67p+0L), + TEST ("1.0000000596046447755", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.0000010000001p+0, + false, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.0000010000001p+0L, + false, + 0x1.0000010000000002p+0L, + 0x1.0000010000000002p+0L, + 0x1.0000010000000002p+0L, + 0x1.0000010000000004p+0L, + false, + 0x1.0000010000000002p+0L, + 0x1.0000010000000002p+0L, + 0x1.0000010000000002p+0L, + 0x1.0000010000000004p+0L, + false, + 0x1.0000010000000002048242f2ffp+0L, + 0x1.0000010000000002048242f2ff8p+0L, + 0x1.0000010000000002048242f2ffp+0L, + 0x1.0000010000000002048242f2ff8p+0L, + false, + 0x1.0000010000000002048242f2ff66p+0L, + 0x1.0000010000000002048242f2ff67p+0L, + 0x1.0000010000000002048242f2ff66p+0L, + 0x1.0000010000000002048242f2ff67p+0L), + TEST ("1.000000059604644776", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.0000010000001p+0, + false, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.0000010000001p+0L, + false, + 0x1.000001000000000ap+0L, + 0x1.000001000000000cp+0L, + 0x1.000001000000000ap+0L, + 0x1.000001000000000cp+0L, + false, + 0x1.000001000000000ap+0L, + 0x1.000001000000000cp+0L, + 0x1.000001000000000ap+0L, + 0x1.000001000000000cp+0L, + false, + 0x1.000001000000000b3db12bdc21p+0L, + 0x1.000001000000000b3db12bdc21p+0L, + 0x1.000001000000000b3db12bdc21p+0L, + 0x1.000001000000000b3db12bdc218p+0L, + false, + 0x1.000001000000000b3db12bdc213cp+0L, + 0x1.000001000000000b3db12bdc213dp+0L, + 0x1.000001000000000b3db12bdc213cp+0L, + 0x1.000001000000000b3db12bdc213dp+0L), + TEST ("1.000000059604644775", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000000fffffffp+0, + 0x1.000001p+0, + 0x1.000000fffffffp+0, + 0x1.000001p+0, + false, + 0x1.000000fffffffp+0L, + 0x1.000001p+0L, + 0x1.000000fffffffp+0L, + 0x1.000001p+0L, + false, + 0x1.000000fffffffff8p+0L, + 0x1.000000fffffffff8p+0L, + 0x1.000000fffffffff8p+0L, + 0x1.000000fffffffffap+0L, + false, + 0x1.000000fffffffff8p+0L, + 0x1.000000fffffffff8p+0L, + 0x1.000000fffffffff8p+0L, + 0x1.000000fffffffffap+0L, + false, + 0x1.000000fffffffff8cb535a09dd8p+0L, + 0x1.000000fffffffff8cb535a09dd8p+0L, + 0x1.000000fffffffff8cb535a09dd8p+0L, + 0x1.000000fffffffff8cb535a09dep+0L, + false, + 0x1.000000fffffffff8cb535a09dd9p+0L, + 0x1.000000fffffffff8cb535a09dd91p+0L, + 0x1.000000fffffffff8cb535a09dd9p+0L, + 0x1.000000fffffffff8cb535a09dd91p+0L), + TEST ("1.00000005960464478", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.0000010000001p+0, + false, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.0000010000001p+0L, + false, + 0x1.0000010000000054p+0L, + 0x1.0000010000000056p+0L, + 0x1.0000010000000054p+0L, + 0x1.0000010000000056p+0L, + false, + 0x1.0000010000000054p+0L, + 0x1.0000010000000056p+0L, + 0x1.0000010000000054p+0L, + 0x1.0000010000000056p+0L, + false, + 0x1.0000010000000055072873252f8p+0L, + 0x1.0000010000000055072873253p+0L, + 0x1.0000010000000055072873252f8p+0L, + 0x1.0000010000000055072873253p+0L, + false, + 0x1.0000010000000055072873252febp+0L, + 0x1.0000010000000055072873252febp+0L, + 0x1.0000010000000055072873252febp+0L, + 0x1.0000010000000055072873252fecp+0L), + TEST ("1.0000000596046448", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.0000010000001p+0, + false, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.0000010000001p+0L, + false, + 0x1.00000100000001c4p+0L, + 0x1.00000100000001c6p+0L, + 0x1.00000100000001c4p+0L, + 0x1.00000100000001c6p+0L, + false, + 0x1.00000100000001c4p+0L, + 0x1.00000100000001c6p+0L, + 0x1.00000100000001c4p+0L, + 0x1.00000100000001c6p+0L, + false, + 0x1.00000100000001c5f67cd79279p+0L, + 0x1.00000100000001c5f67cd792798p+0L, + 0x1.00000100000001c5f67cd79279p+0L, + 0x1.00000100000001c5f67cd792798p+0L, + false, + 0x1.00000100000001c5f67cd7927953p+0L, + 0x1.00000100000001c5f67cd7927954p+0L, + 0x1.00000100000001c5f67cd7927953p+0L, + 0x1.00000100000001c5f67cd7927954p+0L), + TEST ("1.000000059604645", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.0000010000001p+0, + 0x1.0000010000001p+0, + 0x1.0000010000001p+0, + 0x1.0000010000002p+0, + false, + 0x1.0000010000001p+0L, + 0x1.0000010000001p+0L, + 0x1.0000010000001p+0L, + 0x1.0000010000002p+0L, + false, + 0x1.000001000000102ep+0L, + 0x1.000001000000103p+0L, + 0x1.000001000000102ep+0L, + 0x1.000001000000103p+0L, + false, + 0x1.000001000000102ep+0L, + 0x1.000001000000103p+0L, + 0x1.000001000000102ep+0L, + 0x1.000001000000103p+0L, + false, + 0x1.000001000000102f4fc8c3d757p+0L, + 0x1.000001000000102f4fc8c3d7578p+0L, + 0x1.000001000000102f4fc8c3d757p+0L, + 0x1.000001000000102f4fc8c3d7578p+0L, + false, + 0x1.000001000000102f4fc8c3d75769p+0L, + 0x1.000001000000102f4fc8c3d75769p+0L, + 0x1.000001000000102f4fc8c3d75769p+0L, + 0x1.000001000000102f4fc8c3d7576ap+0L), + TEST ("1.00000005960464", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000000fffffeap+0, + 0x1.000000fffffeap+0, + 0x1.000000fffffeap+0, + 0x1.000000fffffebp+0, + false, + 0x1.000000fffffeap+0L, + 0x1.000000fffffeap+0L, + 0x1.000000fffffeap+0L, + 0x1.000000fffffebp+0L, + false, + 0x1.000000fffffea7e4p+0L, + 0x1.000000fffffea7e6p+0L, + 0x1.000000fffffea7e4p+0L, + 0x1.000000fffffea7e6p+0L, + false, + 0x1.000000fffffea7e4p+0L, + 0x1.000000fffffea7e6p+0L, + 0x1.000000fffffea7e4p+0L, + 0x1.000000fffffea7e6p+0L, + false, + 0x1.000000fffffea7e5975eb11da7p+0L, + 0x1.000000fffffea7e5975eb11da78p+0L, + 0x1.000000fffffea7e5975eb11da7p+0L, + 0x1.000000fffffea7e5975eb11da78p+0L, + false, + 0x1.000000fffffea7e5975eb11da74ap+0L, + 0x1.000000fffffea7e5975eb11da74bp+0L, + 0x1.000000fffffea7e5975eb11da74ap+0L, + 0x1.000000fffffea7e5975eb11da74bp+0L), + TEST ("1.0000000596046", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000000fffff36p+0, + 0x1.000000fffff36p+0, + 0x1.000000fffff36p+0, + 0x1.000000fffff37p+0, + false, + 0x1.000000fffff36p+0L, + 0x1.000000fffff36p+0L, + 0x1.000000fffff36p+0L, + 0x1.000000fffff37p+0L, + false, + 0x1.000000fffff36596p+0L, + 0x1.000000fffff36598p+0L, + 0x1.000000fffff36596p+0L, + 0x1.000000fffff36598p+0L, + false, + 0x1.000000fffff36596p+0L, + 0x1.000000fffff36598p+0L, + 0x1.000000fffff36596p+0L, + 0x1.000000fffff36598p+0L, + false, + 0x1.000000fffff36597d40e1b5026p+0L, + 0x1.000000fffff36597d40e1b50268p+0L, + 0x1.000000fffff36597d40e1b5026p+0L, + 0x1.000000fffff36597d40e1b50268p+0L, + false, + 0x1.000000fffff36597d40e1b502655p+0L, + 0x1.000000fffff36597d40e1b502656p+0L, + 0x1.000000fffff36597d40e1b502655p+0L, + 0x1.000000fffff36597d40e1b502656p+0L), + TEST ("1.000000059605", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000001000063fp+0, + 0x1.000001000064p+0, + 0x1.000001000063fp+0, + 0x1.000001000064p+0, + false, + 0x1.000001000063fp+0L, + 0x1.000001000064p+0L, + 0x1.000001000063fp+0L, + 0x1.000001000064p+0L, + false, + 0x1.000001000063fcap+0L, + 0x1.000001000063fca2p+0L, + 0x1.000001000063fcap+0L, + 0x1.000001000063fca2p+0L, + false, + 0x1.000001000063fcap+0L, + 0x1.000001000063fca2p+0L, + 0x1.000001000063fcap+0L, + 0x1.000001000063fca2p+0L, + false, + 0x1.000001000063fca17533f5572f8p+0L, + 0x1.000001000063fca17533f5573p+0L, + 0x1.000001000063fca17533f5572f8p+0L, + 0x1.000001000063fca17533f5573p+0L, + false, + 0x1.000001000063fca17533f5572fe9p+0L, + 0x1.000001000063fca17533f5572feap+0L, + 0x1.000001000063fca17533f5572fe9p+0L, + 0x1.000001000063fca17533f5572feap+0L), + TEST ("1.00000005960", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000000fffae49p+0, + 0x1.000000fffae4ap+0, + 0x1.000000fffae49p+0, + 0x1.000000fffae4ap+0, + false, + 0x1.000000fffae49p+0L, + 0x1.000000fffae4ap+0L, + 0x1.000000fffae49p+0L, + 0x1.000000fffae4ap+0L, + false, + 0x1.000000fffae49ca8p+0L, + 0x1.000000fffae49caap+0L, + 0x1.000000fffae49ca8p+0L, + 0x1.000000fffae49caap+0L, + false, + 0x1.000000fffae49ca8p+0L, + 0x1.000000fffae49caap+0L, + 0x1.000000fffae49ca8p+0L, + 0x1.000000fffae49caap+0L, + false, + 0x1.000000fffae49ca916dacfff38p+0L, + 0x1.000000fffae49ca916dacfff38p+0L, + 0x1.000000fffae49ca916dacfff38p+0L, + 0x1.000000fffae49ca916dacfff388p+0L, + false, + 0x1.000000fffae49ca916dacfff382dp+0L, + 0x1.000000fffae49ca916dacfff382dp+0L, + 0x1.000000fffae49ca916dacfff382dp+0L, + 0x1.000000fffae49ca916dacfff382ep+0L), + TEST ("1.0000000596", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000000fffae49p+0, + 0x1.000000fffae4ap+0, + 0x1.000000fffae49p+0, + 0x1.000000fffae4ap+0, + false, + 0x1.000000fffae49p+0L, + 0x1.000000fffae4ap+0L, + 0x1.000000fffae49p+0L, + 0x1.000000fffae4ap+0L, + false, + 0x1.000000fffae49ca8p+0L, + 0x1.000000fffae49caap+0L, + 0x1.000000fffae49ca8p+0L, + 0x1.000000fffae49caap+0L, + false, + 0x1.000000fffae49ca8p+0L, + 0x1.000000fffae49caap+0L, + 0x1.000000fffae49ca8p+0L, + 0x1.000000fffae49caap+0L, + false, + 0x1.000000fffae49ca916dacfff38p+0L, + 0x1.000000fffae49ca916dacfff38p+0L, + 0x1.000000fffae49ca916dacfff38p+0L, + 0x1.000000fffae49ca916dacfff388p+0L, + false, + 0x1.000000fffae49ca916dacfff382dp+0L, + 0x1.000000fffae49ca916dacfff382dp+0L, + 0x1.000000fffae49ca916dacfff382dp+0L, + 0x1.000000fffae49ca916dacfff382ep+0L), + TEST ("1.000000060", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.00000101b2b29p+0, + 0x1.00000101b2b2ap+0, + 0x1.00000101b2b29p+0, + 0x1.00000101b2b2ap+0, + false, + 0x1.00000101b2b29p+0L, + 0x1.00000101b2b2ap+0L, + 0x1.00000101b2b29p+0L, + 0x1.00000101b2b2ap+0L, + false, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a48p+0L, + false, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a48p+0L, + false, + 0x1.00000101b2b29a4692b67b7ca3p+0L, + 0x1.00000101b2b29a4692b67b7ca3p+0L, + 0x1.00000101b2b29a4692b67b7ca3p+0L, + 0x1.00000101b2b29a4692b67b7ca38p+0L, + false, + 0x1.00000101b2b29a4692b67b7ca313p+0L, + 0x1.00000101b2b29a4692b67b7ca314p+0L, + 0x1.00000101b2b29a4692b67b7ca313p+0L, + 0x1.00000101b2b29a4692b67b7ca314p+0L), + TEST ("1.00000006", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.00000101b2b29p+0, + 0x1.00000101b2b2ap+0, + 0x1.00000101b2b29p+0, + 0x1.00000101b2b2ap+0, + false, + 0x1.00000101b2b29p+0L, + 0x1.00000101b2b2ap+0L, + 0x1.00000101b2b29p+0L, + 0x1.00000101b2b2ap+0L, + false, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a48p+0L, + false, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a46p+0L, + 0x1.00000101b2b29a48p+0L, + false, + 0x1.00000101b2b29a4692b67b7ca3p+0L, + 0x1.00000101b2b29a4692b67b7ca3p+0L, + 0x1.00000101b2b29a4692b67b7ca3p+0L, + 0x1.00000101b2b29a4692b67b7ca38p+0L, + false, + 0x1.00000101b2b29a4692b67b7ca313p+0L, + 0x1.00000101b2b29a4692b67b7ca314p+0L, + 0x1.00000101b2b29a4692b67b7ca313p+0L, + 0x1.00000101b2b29a4692b67b7ca314p+0L), + TEST ("1.0000001", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000001ad7f29ap+0, + 0x1.000001ad7f29bp+0, + 0x1.000001ad7f29ap+0, + 0x1.000001ad7f29bp+0, + false, + 0x1.000001ad7f29ap+0L, + 0x1.000001ad7f29bp+0L, + 0x1.000001ad7f29ap+0L, + 0x1.000001ad7f29bp+0L, + false, + 0x1.000001ad7f29abcap+0L, + 0x1.000001ad7f29abcap+0L, + 0x1.000001ad7f29abcap+0L, + 0x1.000001ad7f29abccp+0L, + false, + 0x1.000001ad7f29abcap+0L, + 0x1.000001ad7f29abcap+0L, + 0x1.000001ad7f29abcap+0L, + 0x1.000001ad7f29abccp+0L, + false, + 0x1.000001ad7f29abcaf485787a65p+0L, + 0x1.000001ad7f29abcaf485787a65p+0L, + 0x1.000001ad7f29abcaf485787a65p+0L, + 0x1.000001ad7f29abcaf485787a658p+0L, + false, + 0x1.000001ad7f29abcaf485787a652p+0L, + 0x1.000001ad7f29abcaf485787a6521p+0L, + 0x1.000001ad7f29abcaf485787a652p+0L, + 0x1.000001ad7f29abcaf485787a6521p+0L), + TEST ("1.000000", + true, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + true, + 0x1p+0, + 0x1p+0, + 0x1p+0, + 0x1p+0, + true, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + true, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + true, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + true, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + true, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L), + TEST ("1.00000000000000011113", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1p+0, + 0x1.0000000000001p+0, + 0x1p+0, + 0x1.0000000000001p+0, + false, + 0x1p+0L, + 0x1.0000000000001p+0L, + 0x1p+0L, + 0x1.0000000000001p+0L, + false, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + false, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + false, + 0x1.0000000000000801fc96557232p+0L, + 0x1.0000000000000801fc96557232p+0L, + 0x1.0000000000000801fc96557232p+0L, + 0x1.0000000000000801fc965572328p+0L, + false, + 0x1.0000000000000801fc9655723222p+0L, + 0x1.0000000000000801fc9655723222p+0L, + 0x1.0000000000000801fc9655723222p+0L, + 0x1.0000000000000801fc9655723223p+0L), + TEST ("1.00000000000000011103", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1p+0, + 0x1.0000000000001p+0, + 0x1p+0, + 0x1.0000000000001p+0, + false, + 0x1p+0L, + 0x1.0000000000001p+0L, + 0x1p+0L, + 0x1.0000000000001p+0L, + false, + 0x1.00000000000008p+0L, + 0x1.00000000000008p+0L, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + false, + 0x1.00000000000008p+0L, + 0x1.00000000000008p+0L, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + false, + 0x1.00000000000008002459c076c48p+0L, + 0x1.00000000000008002459c076c5p+0L, + 0x1.00000000000008002459c076c48p+0L, + 0x1.00000000000008002459c076c5p+0L, + false, + 0x1.00000000000008002459c076c4f7p+0L, + 0x1.00000000000008002459c076c4f8p+0L, + 0x1.00000000000008002459c076c4f7p+0L, + 0x1.00000000000008002459c076c4f8p+0L), + TEST ("1.00000000000000011102", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1p+0, + 0x1p+0, + 0x1p+0, + 0x1.0000000000001p+0, + false, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1.0000000000001p+0L, + false, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + false, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + false, + 0x1.00000000000007fff5207e5dap+0L, + 0x1.00000000000007fff5207e5da08p+0L, + 0x1.00000000000007fff5207e5dap+0L, + 0x1.00000000000007fff5207e5da08p+0L, + false, + 0x1.00000000000007fff5207e5da073p+0L, + 0x1.00000000000007fff5207e5da073p+0L, + 0x1.00000000000007fff5207e5da073p+0L, + 0x1.00000000000007fff5207e5da074p+0L), + TEST ("1.00000000000000011101", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1p+0, + 0x1p+0, + 0x1p+0, + 0x1.0000000000001p+0, + false, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1.0000000000001p+0L, + false, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + false, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + false, + 0x1.00000000000007ffc5e73c447b8p+0L, + 0x1.00000000000007ffc5e73c447cp+0L, + 0x1.00000000000007ffc5e73c447b8p+0L, + 0x1.00000000000007ffc5e73c447cp+0L, + false, + 0x1.00000000000007ffc5e73c447befp+0L, + 0x1.00000000000007ffc5e73c447befp+0L, + 0x1.00000000000007ffc5e73c447befp+0L, + 0x1.00000000000007ffc5e73c447bfp+0L), + TEST ("1.0000000000000001111", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1p+0, + 0x1.0000000000001p+0, + 0x1p+0, + 0x1.0000000000001p+0, + false, + 0x1p+0L, + 0x1.0000000000001p+0L, + 0x1p+0L, + 0x1.0000000000001p+0L, + false, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + false, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + 0x1.00000000000008p+0L, + 0x1.0000000000000802p+0L, + false, + 0x1.00000000000008016eea8f26c48p+0L, + 0x1.00000000000008016eea8f26c48p+0L, + 0x1.00000000000008016eea8f26c48p+0L, + 0x1.00000000000008016eea8f26c5p+0L, + false, + 0x1.00000000000008016eea8f26c495p+0L, + 0x1.00000000000008016eea8f26c496p+0L, + 0x1.00000000000008016eea8f26c495p+0L, + 0x1.00000000000008016eea8f26c496p+0L), + TEST ("1.000000000000000111", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1p+0, + 0x1p+0, + 0x1p+0, + 0x1.0000000000001p+0, + false, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1.0000000000001p+0L, + false, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + false, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + 0x1.00000000000007fep+0L, + 0x1.00000000000008p+0L, + false, + 0x1.00000000000007ff96adfa2b57p+0L, + 0x1.00000000000007ff96adfa2b578p+0L, + 0x1.00000000000007ff96adfa2b57p+0L, + 0x1.00000000000007ff96adfa2b578p+0L, + false, + 0x1.00000000000007ff96adfa2b576ap+0L, + 0x1.00000000000007ff96adfa2b576bp+0L, + 0x1.00000000000007ff96adfa2b576ap+0L, + 0x1.00000000000007ff96adfa2b576bp+0L), + TEST ("1.00000000000000011", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1p+0, + 0x1p+0, + 0x1p+0, + 0x1.0000000000001p+0, + false, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1.0000000000001p+0L, + false, + 0x1.00000000000007ecp+0L, + 0x1.00000000000007eep+0L, + 0x1.00000000000007ecp+0L, + 0x1.00000000000007eep+0L, + false, + 0x1.00000000000007ecp+0L, + 0x1.00000000000007eep+0L, + 0x1.00000000000007ecp+0L, + 0x1.00000000000007eep+0L, + false, + 0x1.00000000000007ed24502859138p+0L, + 0x1.00000000000007ed24502859138p+0L, + 0x1.00000000000007ed24502859138p+0L, + 0x1.00000000000007ed2450285914p+0L, + false, + 0x1.00000000000007ed2450285913bfp+0L, + 0x1.00000000000007ed2450285913bfp+0L, + 0x1.00000000000007ed2450285913bfp+0L, + 0x1.00000000000007ed2450285913cp+0L), + TEST ("1.0000000000000001", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1p+0, + 0x1p+0, + 0x1p+0, + 0x1.0000000000001p+0, + false, + 0x1p+0L, + 0x1p+0L, + 0x1p+0L, + 0x1.0000000000001p+0L, + false, + 0x1.0000000000000734p+0L, + 0x1.0000000000000734p+0L, + 0x1.0000000000000734p+0L, + 0x1.0000000000000736p+0L, + false, + 0x1.0000000000000734p+0L, + 0x1.0000000000000734p+0L, + 0x1.0000000000000734p+0L, + 0x1.0000000000000736p+0L, + false, + 0x1.0000000000000734aca5f6226fp+0L, + 0x1.0000000000000734aca5f6226fp+0L, + 0x1.0000000000000734aca5f6226fp+0L, + 0x1.0000000000000734aca5f6226f8p+0L, + false, + 0x1.0000000000000734aca5f6226f0ap+0L, + 0x1.0000000000000734aca5f6226f0bp+0L, + 0x1.0000000000000734aca5f6226f0ap+0L, + 0x1.0000000000000734aca5f6226f0bp+0L), + TEST ("3929201589819414e-25", + false, + 0x1.b0053p-32f, + 0x1.b00532p-32f, + 0x1.b0053p-32f, + 0x1.b00532p-32f, + false, + 0x1.b005314e2421ep-32, + 0x1.b005314e2421ep-32, + 0x1.b005314e2421ep-32, + 0x1.b005314e2421fp-32, + false, + 0x1.b005314e2421ep-32L, + 0x1.b005314e2421ep-32L, + 0x1.b005314e2421ep-32L, + 0x1.b005314e2421fp-32L, + false, + 0x1.b005314e2421e7fep-32L, + 0x1.b005314e2421e8p-32L, + 0x1.b005314e2421e7fep-32L, + 0x1.b005314e2421e8p-32L, + false, + 0x1.b005314e2421e7fep-32L, + 0x1.b005314e2421e8p-32L, + 0x1.b005314e2421e7fep-32L, + 0x1.b005314e2421e8p-32L, + false, + 0x1.b005314e2421e7ffb472840c5ap-32L, + 0x1.b005314e2421e7ffb472840c5a8p-32L, + 0x1.b005314e2421e7ffb472840c5ap-32L, + 0x1.b005314e2421e7ffb472840c5a8p-32L, + false, + 0x1.b005314e2421e7ffb472840c5a6ep-32L, + 0x1.b005314e2421e7ffb472840c5a6fp-32L, + 0x1.b005314e2421e7ffb472840c5a6ep-32L, + 0x1.b005314e2421e7ffb472840c5a6fp-32L), + TEST ("0.0000000000000000000000000000000000000000000021019476964872" + "256063855943749348741969203929128147736576356024258346866240" + "28790902229957282543182373046875", + true, + 0x8p-152f, + 0x1p-148f, + 0x8p-152f, + 0x1p-148f, + true, + 0xcp-152, + 0xcp-152, + 0xcp-152, + 0xcp-152, + true, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + true, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + true, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + true, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + true, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L, + 0xcp-152L), + TEST ("1.00000005960464477539062499", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000000fffffffp+0, + 0x1.000001p+0, + 0x1.000000fffffffp+0, + 0x1.000001p+0, + false, + 0x1.000000fffffffp+0L, + 0x1.000001p+0L, + 0x1.000000fffffffp+0L, + 0x1.000001p+0L, + false, + 0x1.000000fffffffffep+0L, + 0x1.000001p+0L, + 0x1.000000fffffffffep+0L, + 0x1.000001p+0L, + false, + 0x1.000000fffffffffep+0L, + 0x1.000001p+0L, + 0x1.000000fffffffffep+0L, + 0x1.000001p+0L, + false, + 0x1.000000fffffffffffffffce7b78p+0L, + 0x1.000000fffffffffffffffce7b8p+0L, + 0x1.000000fffffffffffffffce7b78p+0L, + 0x1.000000fffffffffffffffce7b8p+0L, + false, + 0x1.000000fffffffffffffffce7b7e7p+0L, + 0x1.000000fffffffffffffffce7b7e7p+0L, + 0x1.000000fffffffffffffffce7b7e7p+0L, + 0x1.000000fffffffffffffffce7b7e8p+0L), + TEST ("1.000000059604644775390625", + false, + 0x1p+0f, + 0x1p+0f, + 0x1p+0f, + 0x1.000002p+0f, + true, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.000001p+0, + true, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + true, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + true, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + true, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + true, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L), + TEST ("1.00000005960464477539062501", + false, + 0x1p+0f, + 0x1.000002p+0f, + 0x1p+0f, + 0x1.000002p+0f, + false, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.000001p+0, + 0x1.0000010000001p+0, + false, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.0000010000001p+0L, + false, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.0000010000000002p+0L, + false, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.000001p+0L, + 0x1.0000010000000002p+0L, + false, + 0x1.00000100000000000000031848p+0L, + 0x1.00000100000000000000031848p+0L, + 0x1.00000100000000000000031848p+0L, + 0x1.000001000000000000000318488p+0L, + false, + 0x1.0000010000000000000003184818p+0L, + 0x1.0000010000000000000003184819p+0L, + 0x1.0000010000000000000003184818p+0L, + 0x1.0000010000000000000003184819p+0L), + TEST ("1.00000011920928955078125", + true, + 0x1.000002p+0f, + 0x1.000002p+0f, + 0x1.000002p+0f, + 0x1.000002p+0f, + true, + 0x1.000002p+0, + 0x1.000002p+0, + 0x1.000002p+0, + 0x1.000002p+0, + true, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + true, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + true, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + true, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + true, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L, + 0x1.000002p+0L), + TEST ("1.00000017881393432617187499", + false, + 0x1.000002p+0f, + 0x1.000002p+0f, + 0x1.000002p+0f, + 0x1.000004p+0f, + false, + 0x1.000002fffffffp+0, + 0x1.000003p+0, + 0x1.000002fffffffp+0, + 0x1.000003p+0, + false, + 0x1.000002fffffffp+0L, + 0x1.000003p+0L, + 0x1.000002fffffffp+0L, + 0x1.000003p+0L, + false, + 0x1.000002fffffffffep+0L, + 0x1.000003p+0L, + 0x1.000002fffffffffep+0L, + 0x1.000003p+0L, + false, + 0x1.000002fffffffffep+0L, + 0x1.000003p+0L, + 0x1.000002fffffffffep+0L, + 0x1.000003p+0L, + false, + 0x1.000002fffffffffffffffce7b78p+0L, + 0x1.000002fffffffffffffffce7b8p+0L, + 0x1.000002fffffffffffffffce7b78p+0L, + 0x1.000002fffffffffffffffce7b8p+0L, + false, + 0x1.000002fffffffffffffffce7b7e7p+0L, + 0x1.000002fffffffffffffffce7b7e7p+0L, + 0x1.000002fffffffffffffffce7b7e7p+0L, + 0x1.000002fffffffffffffffce7b7e8p+0L), + TEST ("1.000000178813934326171875", + false, + 0x1.000002p+0f, + 0x1.000004p+0f, + 0x1.000002p+0f, + 0x1.000004p+0f, + true, + 0x1.000003p+0, + 0x1.000003p+0, + 0x1.000003p+0, + 0x1.000003p+0, + true, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + true, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + true, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + true, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + true, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L), + TEST ("1.00000017881393432617187501", + false, + 0x1.000002p+0f, + 0x1.000004p+0f, + 0x1.000002p+0f, + 0x1.000004p+0f, + false, + 0x1.000003p+0, + 0x1.000003p+0, + 0x1.000003p+0, + 0x1.0000030000001p+0, + false, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.0000030000001p+0L, + false, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.0000030000000002p+0L, + false, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.000003p+0L, + 0x1.0000030000000002p+0L, + false, + 0x1.00000300000000000000031848p+0L, + 0x1.00000300000000000000031848p+0L, + 0x1.00000300000000000000031848p+0L, + 0x1.000003000000000000000318488p+0L, + false, + 0x1.0000030000000000000003184818p+0L, + 0x1.0000030000000000000003184819p+0L, + 0x1.0000030000000000000003184818p+0L, + 0x1.0000030000000000000003184819p+0L), + TEST ("1.0000002384185791015625", + true, + 0x1.000004p+0f, + 0x1.000004p+0f, + 0x1.000004p+0f, + 0x1.000004p+0f, + true, + 0x1.000004p+0, + 0x1.000004p+0, + 0x1.000004p+0, + 0x1.000004p+0, + true, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + true, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + true, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + true, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + true, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L, + 0x1.000004p+0L), + TEST ("1.08420217248550443400745280086994171142578125e-19", + true, + 0x2p-64f, + 0x2p-64f, + 0x2p-64f, + 0x2p-64f, + true, + 0x2p-64, + 0x2p-64, + 0x2p-64, + 0x2p-64, + true, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + true, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + true, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + true, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + true, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L, + 0x2p-64L), + TEST ("1.0842022371089897897127399001987457793916291848290711641311" + "645507812499e-19", + false, + 0x2p-64f, + 0x2p-64f, + 0x2p-64f, + 0x2.000004p-64f, + false, + 0x2.000001ffffffep-64, + 0x2.000002p-64, + 0x2.000001ffffffep-64, + 0x2.000002p-64, + false, + 0x2.000001ffffffep-64L, + 0x2.000002p-64L, + 0x2.000001ffffffep-64L, + 0x2.000002p-64L, + false, + 0x2.000001fffffffffcp-64L, + 0x2.000002p-64L, + 0x2.000001fffffffffcp-64L, + 0x2.000002p-64L, + false, + 0x2.000001fffffffffcp-64L, + 0x2.000002p-64L, + 0x2.000001fffffffffcp-64L, + 0x2.000002p-64L, + false, + 0x2.000001ffffffffffffffffffffp-64L, + 0x2.000002p-64L, + 0x2.000001ffffffffffffffffffffp-64L, + 0x2.000002p-64L, + false, + 0x2.000001fffffffffffffffffffffep-64L, + 0x2.000002p-64L, + 0x2.000001fffffffffffffffffffffep-64L, + 0x2.000002p-64L), + TEST ("1.0842022371089897897127399001987457793916291848290711641311" + "6455078125e-19", + false, + 0x2p-64f, + 0x2p-64f, + 0x2p-64f, + 0x2.000004p-64f, + true, + 0x2.000002p-64, + 0x2.000002p-64, + 0x2.000002p-64, + 0x2.000002p-64, + true, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + true, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + true, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + true, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + true, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L), + TEST ("1.0842022371089897897127399001987457793916291848290711641311" + "645507812501e-19", + false, + 0x2p-64f, + 0x2.000004p-64f, + 0x2p-64f, + 0x2.000004p-64f, + false, + 0x2.000002p-64, + 0x2.000002p-64, + 0x2.000002p-64, + 0x2.0000020000002p-64, + false, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.0000020000002p-64L, + false, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.0000020000000004p-64L, + false, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.0000020000000004p-64L, + false, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.00000200000000000000000001p-64L, + false, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.000002p-64L, + 0x2.0000020000000000000000000002p-64L), + TEST ("1.0842023017324751454180269995275498473574771196581423282623" + "291015625e-19", + true, + 0x2.000004p-64f, + 0x2.000004p-64f, + 0x2.000004p-64f, + 0x2.000004p-64f, + true, + 0x2.000004p-64, + 0x2.000004p-64, + 0x2.000004p-64, + 0x2.000004p-64, + true, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + true, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + true, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + true, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + true, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L, + 0x2.000004p-64L), + TEST ("1.0842023663559605011233140988563539153233250544872134923934" + "936523437499e-19", + false, + 0x2.000004p-64f, + 0x2.000004p-64f, + 0x2.000004p-64f, + 0x2.000008p-64f, + false, + 0x2.000005ffffffep-64, + 0x2.000006p-64, + 0x2.000005ffffffep-64, + 0x2.000006p-64, + false, + 0x2.000005ffffffep-64L, + 0x2.000006p-64L, + 0x2.000005ffffffep-64L, + 0x2.000006p-64L, + false, + 0x2.000005fffffffffcp-64L, + 0x2.000006p-64L, + 0x2.000005fffffffffcp-64L, + 0x2.000006p-64L, + false, + 0x2.000005fffffffffcp-64L, + 0x2.000006p-64L, + 0x2.000005fffffffffcp-64L, + 0x2.000006p-64L, + false, + 0x2.000005ffffffffffffffffffffp-64L, + 0x2.000006p-64L, + 0x2.000005ffffffffffffffffffffp-64L, + 0x2.000006p-64L, + false, + 0x2.000005fffffffffffffffffffffep-64L, + 0x2.000006p-64L, + 0x2.000005fffffffffffffffffffffep-64L, + 0x2.000006p-64L), + TEST ("1.0842023663559605011233140988563539153233250544872134923934" + "9365234375e-19", + false, + 0x2.000004p-64f, + 0x2.000008p-64f, + 0x2.000004p-64f, + 0x2.000008p-64f, + true, + 0x2.000006p-64, + 0x2.000006p-64, + 0x2.000006p-64, + 0x2.000006p-64, + true, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + true, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + true, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + true, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + true, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L), + TEST ("1.0842023663559605011233140988563539153233250544872134923934" + "936523437501e-19", + false, + 0x2.000004p-64f, + 0x2.000008p-64f, + 0x2.000004p-64f, + 0x2.000008p-64f, + false, + 0x2.000006p-64, + 0x2.000006p-64, + 0x2.000006p-64, + 0x2.0000060000002p-64, + false, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.0000060000002p-64L, + false, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.0000060000000004p-64L, + false, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.0000060000000004p-64L, + false, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.00000600000000000000000001p-64L, + false, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.000006p-64L, + 0x2.0000060000000000000000000002p-64L), + TEST ("1.0842024309794458568286011981851579832891729893162846565246" + "58203125e-19", + true, + 0x2.000008p-64f, + 0x2.000008p-64f, + 0x2.000008p-64f, + 0x2.000008p-64f, + true, + 0x2.000008p-64, + 0x2.000008p-64, + 0x2.000008p-64, + 0x2.000008p-64, + true, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + true, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + true, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + true, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + true, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L, + 0x2.000008p-64L), + TEST ("7.5231638452626400509999138382223723380394595633413601376560" + "1092018187046051025390625e-37", + true, + 0x1p-120f, + 0x1p-120f, + 0x1p-120f, + 0x1p-120f, + true, + 0x1p-120, + 0x1p-120, + 0x1p-120, + 0x1p-120, + true, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + true, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + true, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + true, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + true, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L, + 0x1p-120L), + TEST ("7.5231642936781486349413765338158389908126215730251815381410" + "578824437213052434003657253924757242202758789062499e-37", + false, + 0x1p-120f, + 0x1p-120f, + 0x1p-120f, + 0x1.000002p-120f, + false, + 0x1.000000fffffffp-120, + 0x1.000001p-120, + 0x1.000000fffffffp-120, + 0x1.000001p-120, + false, + 0x1.000000fffffffp-120L, + 0x1.000001p-120L, + 0x1.000000fffffffp-120L, + 0x1.000001p-120L, + false, + 0x1.000000fffffffffep-120L, + 0x1.000001p-120L, + 0x1.000000fffffffffep-120L, + 0x1.000001p-120L, + false, + 0x1.000000fffffffffep-120L, + 0x1.000001p-120L, + 0x1.000000fffffffffep-120L, + 0x1.000001p-120L, + false, + 0x1.000000ffffffffffffffffffff8p-120L, + 0x1.000001p-120L, + 0x1.000000ffffffffffffffffffff8p-120L, + 0x1.000001p-120L, + false, + 0x1.000000ffffffffffffffffffffffp-120L, + 0x1.000001p-120L, + 0x1.000000ffffffffffffffffffffffp-120L, + 0x1.000001p-120L), + TEST ("7.5231642936781486349413765338158389908126215730251815381410" + "5788244372130524340036572539247572422027587890625e-37", + false, + 0x1p-120f, + 0x1p-120f, + 0x1p-120f, + 0x1.000002p-120f, + true, + 0x1.000001p-120, + 0x1.000001p-120, + 0x1.000001p-120, + 0x1.000001p-120, + true, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + true, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + true, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + true, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + true, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L), + TEST ("7.5231642936781486349413765338158389908126215730251815381410" + "578824437213052434003657253924757242202758789062501e-37", + false, + 0x1p-120f, + 0x1.000002p-120f, + 0x1p-120f, + 0x1.000002p-120f, + false, + 0x1.000001p-120, + 0x1.000001p-120, + 0x1.000001p-120, + 0x1.0000010000001p-120, + false, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.0000010000001p-120L, + false, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.0000010000000002p-120L, + false, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.0000010000000002p-120L, + false, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001000000000000000000008p-120L, + false, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.000001p-120L, + 0x1.0000010000000000000000000001p-120L), + TEST ("7.5231647420936572188828392294093056435857835827090029386261" + "048447055721499765468252007849514484405517578125e-37", + true, + 0x1.000002p-120f, + 0x1.000002p-120f, + 0x1.000002p-120f, + 0x1.000002p-120f, + true, + 0x1.000002p-120, + 0x1.000002p-120, + 0x1.000002p-120, + 0x1.000002p-120, + true, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + true, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + true, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + true, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + true, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L, + 0x1.000002p-120L), + TEST ("7.5231651905091658028243019250027722963589455923928243391111" + "518069674229947096932846761774271726608276367187499e-37", + false, + 0x1.000002p-120f, + 0x1.000002p-120f, + 0x1.000002p-120f, + 0x1.000004p-120f, + false, + 0x1.000002fffffffp-120, + 0x1.000003p-120, + 0x1.000002fffffffp-120, + 0x1.000003p-120, + false, + 0x1.000002fffffffp-120L, + 0x1.000003p-120L, + 0x1.000002fffffffp-120L, + 0x1.000003p-120L, + false, + 0x1.000002fffffffffep-120L, + 0x1.000003p-120L, + 0x1.000002fffffffffep-120L, + 0x1.000003p-120L, + false, + 0x1.000002fffffffffep-120L, + 0x1.000003p-120L, + 0x1.000002fffffffffep-120L, + 0x1.000003p-120L, + false, + 0x1.000002ffffffffffffffffffff8p-120L, + 0x1.000003p-120L, + 0x1.000002ffffffffffffffffffff8p-120L, + 0x1.000003p-120L, + false, + 0x1.000002ffffffffffffffffffffffp-120L, + 0x1.000003p-120L, + 0x1.000002ffffffffffffffffffffffp-120L, + 0x1.000003p-120L), + TEST ("7.5231651905091658028243019250027722963589455923928243391111" + "5180696742299470969328467617742717266082763671875e-37", + false, + 0x1.000002p-120f, + 0x1.000004p-120f, + 0x1.000002p-120f, + 0x1.000004p-120f, + true, + 0x1.000003p-120, + 0x1.000003p-120, + 0x1.000003p-120, + 0x1.000003p-120, + true, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + true, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + true, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + true, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + true, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L), + TEST ("7.5231651905091658028243019250027722963589455923928243391111" + "518069674229947096932846761774271726608276367187501e-37", + false, + 0x1.000002p-120f, + 0x1.000004p-120f, + 0x1.000002p-120f, + 0x1.000004p-120f, + false, + 0x1.000003p-120, + 0x1.000003p-120, + 0x1.000003p-120, + 0x1.0000030000001p-120, + false, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.0000030000001p-120L, + false, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.0000030000000002p-120L, + false, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.0000030000000002p-120L, + false, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003000000000000000000008p-120L, + false, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.000003p-120L, + 0x1.0000030000000000000000000001p-120L), + TEST ("7.5231656389246743867657646205962389491321076020766457395961" + "98769229273839442839744151569902896881103515625e-37", + true, + 0x1.000004p-120f, + 0x1.000004p-120f, + 0x1.000004p-120f, + 0x1.000004p-120f, + true, + 0x1.000004p-120, + 0x1.000004p-120, + 0x1.000004p-120, + 0x1.000004p-120, + true, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + true, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + true, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + true, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + true, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L, + 0x1.000004p-120L), + TEST ("340282356779733661637539395458142568447.999", + false, + 0xf.fffffp+124f, + 0xf.fffffp+124f, + 0xf.fffffp+124f, + INFINITY, + false, + 0xf.fffff7ffffff8p+124, + 0xf.fffff8p+124, + 0xf.fffff7ffffff8p+124, + 0xf.fffff8p+124, + false, + 0xf.fffff7ffffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff7ffffff8p+124L, + 0xf.fffff8p+124L, + false, + 0xf.fffff7fffffffffp+124L, + 0xf.fffff8p+124L, + 0xf.fffff7fffffffffp+124L, + 0xf.fffff8p+124L, + false, + 0xf.fffff7fffffffffp+124L, + 0xf.fffff8p+124L, + 0xf.fffff7fffffffffp+124L, + 0xf.fffff8p+124L, + false, + 0xf.fffff7fffffffffffffffffffcp+124L, + 0xf.fffff8p+124L, + 0xf.fffff7fffffffffffffffffffcp+124L, + 0xf.fffff8p+124L, + false, + 0xf.fffff7fffffffffffffffffffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff7fffffffffffffffffffff8p+124L, + 0xf.fffff8p+124L), + TEST ("340282356779733661637539395458142568448", + false, + 0xf.fffffp+124f, + INFINITY, + 0xf.fffffp+124f, + INFINITY, + true, + 0xf.fffff8p+124, + 0xf.fffff8p+124, + 0xf.fffff8p+124, + 0xf.fffff8p+124, + true, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + true, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + true, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + true, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + true, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L), + TEST ("340282356779733661637539395458142568448.001", + false, + 0xf.fffffp+124f, + INFINITY, + 0xf.fffffp+124f, + INFINITY, + false, + 0xf.fffff8p+124, + 0xf.fffff8p+124, + 0xf.fffff8p+124, + 0xf.fffff80000008p+124, + false, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff80000008p+124L, + false, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8000000001p+124L, + false, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8000000001p+124L, + false, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff800000000000000000004p+124L, + false, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff8p+124L, + 0xf.fffff80000000000000000000008p+124L), + TEST ("-340282356779733661637539395458142568447.999", + false, + -INFINITY, + -0xf.fffffp+124f, + -0xf.fffffp+124f, + -0xf.fffffp+124f, + false, + -0xf.fffff8p+124, + -0xf.fffff8p+124, + -0xf.fffff7ffffff8p+124, + -0xf.fffff7ffffff8p+124, + false, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff7ffffff8p+124L, + -0xf.fffff7ffffff8p+124L, + false, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff7fffffffffp+124L, + -0xf.fffff7fffffffffp+124L, + false, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff7fffffffffp+124L, + -0xf.fffff7fffffffffp+124L, + false, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff7fffffffffffffffffffcp+124L, + -0xf.fffff7fffffffffffffffffffcp+124L, + false, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff7fffffffffffffffffffff8p+124L, + -0xf.fffff7fffffffffffffffffffff8p+124L), + TEST ("-340282356779733661637539395458142568448", + false, + -INFINITY, + -INFINITY, + -0xf.fffffp+124f, + -0xf.fffffp+124f, + true, + -0xf.fffff8p+124, + -0xf.fffff8p+124, + -0xf.fffff8p+124, + -0xf.fffff8p+124, + true, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + true, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + true, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + true, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + true, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L), + TEST ("-340282356779733661637539395458142568448.001", + false, + -INFINITY, + -INFINITY, + -0xf.fffffp+124f, + -0xf.fffffp+124f, + false, + -0xf.fffff80000008p+124, + -0xf.fffff8p+124, + -0xf.fffff8p+124, + -0xf.fffff8p+124, + false, + -0xf.fffff80000008p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + false, + -0xf.fffff8000000001p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + false, + -0xf.fffff8000000001p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + false, + -0xf.fffff800000000000000000004p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + false, + -0xf.fffff80000000000000000000008p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L, + -0xf.fffff8p+124L), + TEST ("179769313486231580793728971405303415079934132710037826936173" + "778980444968292764750946649017977587207096330286416692887910" + "946555547851940402630657488671505820681908902000708383676273" + "854845817711531764475730270069855571366959622842914819860834" + "936475292719074168444365510704342711559699508093042880177904" + "174497791.999", + false, + 0xf.fffffp+124f, + INFINITY, + 0xf.fffffp+124f, + INFINITY, + false, + 0xf.ffffffffffff8p+1020, + 0xf.ffffffffffff8p+1020, + 0xf.ffffffffffff8p+1020, + INFINITY, + false, + 0xf.ffffffffffff8p+1020L, + 0xf.ffffffffffff8p+1020L, + 0xf.ffffffffffff8p+1020L, + INFINITY, + false, + 0xf.ffffffffffffbffp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffbffp+1020L, + 0xf.ffffffffffffcp+1020L, + false, + 0xf.ffffffffffffbffp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffbffp+1020L, + 0xf.ffffffffffffcp+1020L, + false, + 0xf.ffffffffffffbffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffbffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + false, + 0xf.ffffffffffffbffffffffffffff8p+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffbffffffffffffff8p+1020L, + 0xf.ffffffffffffcp+1020L), + TEST ("179769313486231580793728971405303415079934132710037826936173" + "778980444968292764750946649017977587207096330286416692887910" + "946555547851940402630657488671505820681908902000708383676273" + "854845817711531764475730270069855571366959622842914819860834" + "936475292719074168444365510704342711559699508093042880177904" + "174497792", + false, + 0xf.fffffp+124f, + INFINITY, + 0xf.fffffp+124f, + INFINITY, + false, + 0xf.ffffffffffff8p+1020, + INFINITY, + 0xf.ffffffffffff8p+1020, + INFINITY, + false, + 0xf.ffffffffffff8p+1020L, + INFINITY, + 0xf.ffffffffffff8p+1020L, + INFINITY, + true, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + true, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + false, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + true, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L), + TEST ("179769313486231580793728971405303415079934132710037826936173" + "778980444968292764750946649017977587207096330286416692887910" + "946555547851940402630657488671505820681908902000708383676273" + "854845817711531764475730270069855571366959622842914819860834" + "936475292719074168444365510704342711559699508093042880177904" + "174497792.001", + false, + 0xf.fffffp+124f, + INFINITY, + 0xf.fffffp+124f, + INFINITY, + false, + 0xf.ffffffffffff8p+1020, + INFINITY, + 0xf.ffffffffffff8p+1020, + INFINITY, + false, + 0xf.ffffffffffff8p+1020L, + INFINITY, + 0xf.ffffffffffff8p+1020L, + INFINITY, + false, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffc01p+1020L, + false, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffc01p+1020L, + false, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffc0000000000004p+1020L, + false, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffcp+1020L, + 0xf.ffffffffffffc000000000000008p+1020L), + TEST ("-17976931348623158079372897140530341507993413271003782693617" + "377898044496829276475094664901797758720709633028641669288791" + "094655554785194040263065748867150582068190890200070838367627" + "385484581771153176447573027006985557136695962284291481986083" + "493647529271907416844436551070434271155969950809304288017790" + "4174497791.999", + false, + -INFINITY, + -INFINITY, + -0xf.fffffp+124f, + -0xf.fffffp+124f, + false, + -INFINITY, + -0xf.ffffffffffff8p+1020, + -0xf.ffffffffffff8p+1020, + -0xf.ffffffffffff8p+1020, + false, + -INFINITY, + -0xf.ffffffffffff8p+1020L, + -0xf.ffffffffffff8p+1020L, + -0xf.ffffffffffff8p+1020L, + false, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffbffp+1020L, + -0xf.ffffffffffffbffp+1020L, + false, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffbffp+1020L, + -0xf.ffffffffffffbffp+1020L, + false, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffbffffffffffffcp+1020L, + -0xf.ffffffffffffbffffffffffffcp+1020L, + false, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffbffffffffffffff8p+1020L, + -0xf.ffffffffffffbffffffffffffff8p+1020L), + TEST ("-17976931348623158079372897140530341507993413271003782693617" + "377898044496829276475094664901797758720709633028641669288791" + "094655554785194040263065748867150582068190890200070838367627" + "385484581771153176447573027006985557136695962284291481986083" + "493647529271907416844436551070434271155969950809304288017790" + "4174497792", + false, + -INFINITY, + -INFINITY, + -0xf.fffffp+124f, + -0xf.fffffp+124f, + false, + -INFINITY, + -INFINITY, + -0xf.ffffffffffff8p+1020, + -0xf.ffffffffffff8p+1020, + false, + -INFINITY, + -INFINITY, + -0xf.ffffffffffff8p+1020L, + -0xf.ffffffffffff8p+1020L, + true, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + true, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + false, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + true, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L), + TEST ("-17976931348623158079372897140530341507993413271003782693617" + "377898044496829276475094664901797758720709633028641669288791" + "094655554785194040263065748867150582068190890200070838367627" + "385484581771153176447573027006985557136695962284291481986083" + "493647529271907416844436551070434271155969950809304288017790" + "4174497792.001", + false, + -INFINITY, + -INFINITY, + -0xf.fffffp+124f, + -0xf.fffffp+124f, + false, + -INFINITY, + -INFINITY, + -0xf.ffffffffffff8p+1020, + -0xf.ffffffffffff8p+1020, + false, + -INFINITY, + -INFINITY, + -0xf.ffffffffffff8p+1020L, + -0xf.ffffffffffff8p+1020L, + false, + -0xf.ffffffffffffc01p+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + false, + -0xf.ffffffffffffc01p+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + false, + -0xf.ffffffffffffc0000000000004p+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + false, + -0xf.ffffffffffffc000000000000008p+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L, + -0xf.ffffffffffffcp+1020L), + TEST ("118973149535723176505351158982948866796625400469556721895649" + "927756249918185172720476044944290457046138433056764616744328" + "666255526748948793023632513609765434237723241753648908036202" + "958495124648560574092817813661123067421904850038181180520787" + "720310726881239888580817051703268776757919551260442611296993" + "969730906497042135737359373754818979106457807539652027804156" + "491987771033211787185996492320631117543475322122625353433719" + "930462950413766867781210335973022293561007134342532563356262" + "609267460063335819387905541393759243547993474715549691352074" + "891450084783459970660481689991674771307443551458551137274603" + "094678907537177579699931235422786658780337099286207273033150" + "295133847635735008945346069635452157254692607776538304457707" + "598289220004738023060594798392660507455937428888763514661408" + "758068906506527143720723156203739676372818578090840614216621" + "704787774611256823213431325634056809505691175988424606654072" + "823115950827627377808673574181547198668714142143234447550206" + "269197545774263993130119778810659043621312707109068433886162" + "877222844491518930341896313561238988520360803607534987178305" + "043520937299838173444083502027340452162582038296009574808809" + "658742434897860755961343752419543802653239216337103370292742" + "935497502474626454559729017094560234867236701379230234809843" + "263739640909561388493227725171983531003154799850580375254640" + "686684370650275318316632539920970969803838872914424760535111" + "444864748847573042963569291679400178896696862026500700279826" + "635302471702206627303799047632971460017199544567373231610376" + "256879987134317934150014443436145710546137924490489525241523" + "018271239906743645663976778059895127442517397682525944430951" + "907648109952479454685655581652571021331761401038962049122047" + "111009185757383743827811254014770944602713378187451095200132" + "611700632386420792585207954137064426995712656449343534120120" + "770857498813673742586478583964512406030930704197486727636333" + "837001863610516286928300891774383071105022919314408502968809" + "463848377324668014115592383521324785361676372582468085716775" + "183709078048790084022838728361454734650904480489014369184979" + "256497738392744524915616501449487520501300124861778269881261" + "335544037735715125808986359728419859776521586683035924100574" + "850554368935873803132428446524362913648833348768663733118103" + "918959060412499201797234385239260504905744357611987327994540" + "083286019952793692265006211633524675976369938866409689573287" + "599490442761701229217689614343727392339547174221615984024864" + "635625680108391566720681134647098412863051374760613506003971" + "759070209697293081442875903240426975910170967179075646317814" + "394978762382183679266247724762405284284971833355044962214065" + "895558105408175131247181971272672247996246595857705695208092" + "816044125822560989770526261449460733912621692806952140652061" + "911968824328747339453822511902787546522099225623311147726504" + "972617425102845212076162056723650625826928778132002074035405" + "250631109426611640681070927283430486232053929420514345435713" + "131387967949326001734866894273047449417824913738789829732833" + "683358900903818016968127085077418070951770702999663693968324" + "004781728763310108379440442854174041581191669623267749855519" + "774427387794278666183504498843857475877442235608736818515722" + "862733587905866015455830953591207040129558473662150426884726" + "759522376583586317425575669726781893104752341432891868770513" + "406836036136374264038296610854599454591170582569741798904328" + "676755131072831974295435585611673171096113833795735888591844" + "569864166955969416680807491722688418115891753669917660968752" + "228842669182040018336152355940915579955628386232949747891257" + "526145783057949776122896048841308261113063674538553146663451" + "574384023903569848640351704415703922683108552880537081027404" + "397775617608412295293311763789489900990611859125572525530349" + "278319943261304784125553748811339225969956465404836696490782" + "500903694674135036899321686023782466034636817818347651623601" + "663129318574761269352028560641266614840108083315301260274558" + "575087296910384815285134460531715154639604115052348665171547" + "251609075784863196403541944155425166776423403472211742139313" + "210299896884252707306862499895115691675551238140467142819537" + "867343414276518703858928008759955391140729958278175965217739" + "826511218924463113077693598006228365514899236789515147503266" + "616268809617626228164916917150602464494142485507467876173251" + "398398846807079309227567538802476335624194115637802439400050" + "221934368975949846684026462252790745597563393487879954351820" + "652138303761879543933808642920064500206512003954563931569820" + "114768348051593629274325149906343853129692245386396887281599" + "735312588117968646270517005121997466606469447530616465384255" + "826304380842850779833108567141643769616400809617173972138187" + "711971431230616321035038259922624655396612597024040812967444" + "207673594478417900666764580589685104809363813759667069693701" + "069921295791929938093722225050956280798177934138468414654728" + "631498256418191041953123619406060363406390776140155709737059" + "125898120366007955506160309553860446596202876233728025871625" + "578031503869424406179027994752890226443351619365453243328968" + "8740976918527.999", + false, + 0xf.fffffp+124f, + INFINITY, + 0xf.fffffp+124f, + INFINITY, + false, + 0xf.ffffffffffff8p+1020, + INFINITY, + 0xf.ffffffffffff8p+1020, + INFINITY, + false, + 0xf.ffffffffffff8p+1020L, + INFINITY, + 0xf.ffffffffffff8p+1020L, + INFINITY, + false, + 0xf.fffffffffffffffp+16380L, + 0xf.fffffffffffffffp+16380L, + 0xf.fffffffffffffffp+16380L, + INFINITY, + false, + 0xf.fffffffffffffffp+16380L, + 0xf.fffffffffffffffp+16380L, + 0xf.fffffffffffffffp+16380L, + INFINITY, + false, + 0xf.fffffffffffffffffffffffffcp+1020L, + INFINITY, + 0xf.fffffffffffffffffffffffffcp+1020L, + INFINITY, + false, + 0xf.fffffffffffffff7fffffffffff8p+16380L, + 0xf.fffffffffffffff8p+16380L, + 0xf.fffffffffffffff7fffffffffff8p+16380L, + 0xf.fffffffffffffff8p+16380L), + TEST ("118973149535723176505351158982948866796625400469556721895649" + "927756249918185172720476044944290457046138433056764616744328" + "666255526748948793023632513609765434237723241753648908036202" + "958495124648560574092817813661123067421904850038181180520787" + "720310726881239888580817051703268776757919551260442611296993" + "969730906497042135737359373754818979106457807539652027804156" + "491987771033211787185996492320631117543475322122625353433719" + "930462950413766867781210335973022293561007134342532563356262" + "609267460063335819387905541393759243547993474715549691352074" + "891450084783459970660481689991674771307443551458551137274603" + "094678907537177579699931235422786658780337099286207273033150" + "295133847635735008945346069635452157254692607776538304457707" + "598289220004738023060594798392660507455937428888763514661408" + "758068906506527143720723156203739676372818578090840614216621" + "704787774611256823213431325634056809505691175988424606654072" + "823115950827627377808673574181547198668714142143234447550206" + "269197545774263993130119778810659043621312707109068433886162" + "877222844491518930341896313561238988520360803607534987178305" + "043520937299838173444083502027340452162582038296009574808809" + "658742434897860755961343752419543802653239216337103370292742" + "935497502474626454559729017094560234867236701379230234809843" + "2637396409095613884932277251719835310031547998505803752