diff options
| author | Paul E. Murphy <murphyp@linux.vnet.ibm.com> | 2016-05-09 11:49:11 -0500 |
|---|---|---|
| committer | Paul E. Murphy <murphyp@linux.vnet.ibm.com> | 2016-05-24 14:39:57 -0500 |
| commit | 118fbf0e1cae103b7e1287bc4b6a929fdf4c000e (patch) | |
| tree | 962f3f480ef7f23c8336768d43ac5bf77f66a3c4 /stdlib | |
| parent | 078d1cf8accf8e74390c3b091549afa4efbb113e (diff) | |
| download | glibc-118fbf0e1cae103b7e1287bc4b6a929fdf4c000e.tar.xz glibc-118fbf0e1cae103b7e1287bc4b6a929fdf4c000e.zip | |
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.
Diffstat (limited to 'stdlib')
| -rw-r--r-- | stdlib/gen-tst-strtod-round.c | 88 | ||||
| -rw-r--r-- | stdlib/tst-strtod-round-data.h | 12334 | ||||
| -rw-r--r-- | stdlib/tst-strtod-round.c | 12338 |
3 files changed, 12403 insertions, 12357 deletions
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 <http://www.gnu.org/licenses/>. */ +/* 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 <assert.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <mpfr.h> /* 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 <input> <output>\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, + |
