summaryrefslogtreecommitdiff
path: root/stdlib/tst-strtod-round.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-06-13 15:41:58 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-06-13 15:41:58 +0000
commit1f24b9ad0f173f7904b7a0fd559cc287660be1b2 (patch)
treeabcd0da7d44a048767869b08a5dd14adeff9200d /stdlib/tst-strtod-round.c
parentb406406a4fc001478ae65e7bcf930fbcf8ca01ee (diff)
Rework tst-strtod-round handling of inexact results.
Diffstat (limited to 'stdlib/tst-strtod-round.c')
-rw-r--r--stdlib/tst-strtod-round.c758
1 files changed, 718 insertions, 40 deletions
diff --git a/stdlib/tst-strtod-round.c b/stdlib/tst-strtod-round.c
index 072fc737d4..4065d1288e 100644
--- a/stdlib/tst-strtod-round.c
+++ b/stdlib/tst-strtod-round.c
@@ -25,6 +25,13 @@
#include <stdlib.h>
#include <string.h>
+struct exactness
+{
+ bool f;
+ bool d;
+ bool ld;
+};
+
struct test_results {
float f;
double d;
@@ -33,19 +40,20 @@ struct test_results {
struct test {
const char *s;
- bool ld_ok;
+ struct exactness exact;
struct test_results rd, rn, rz, ru;
};
#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
- ld64id, ld64in, ld64iz, ld64iu, \
- ld64md, ld64mn, ld64mz, ld64mu, \
- ld106exact, ld106d, ld106n, ld106z, ld106u, \
- ld113d, ld113n, ld113z, ld113u) \
+# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du, \
+ ld53exact, ld53d, ld53n, ld53z, ld53u, \
+ ld64iexact, ld64id, ld64in, ld64iz, ld64iu, \
+ ld64mexact, ld64md, ld64mn, ld64mz, ld64mu, \
+ ld106exact, ld106d, ld106n, ld106z, ld106u, \
+ ld113exact, ld113d, ld113n, ld113z, ld113u) \
{ \
s, \
- true, \
+ { fexact, dexact, ld53exact }, \
{ fd, dd, ld53d }, \
{ fn, dn, ld53n }, \
{ fz, dz, ld53z }, \
@@ -53,14 +61,15 @@ struct test {
}
#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && LDBL_MIN_EXP == -16381
/* This is for the Intel extended float format. */
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
- ld64id, ld64in, ld64iz, ld64iu, \
- ld64md, ld64mn, ld64mz, ld64mu, \
- ld106exact, ld106d, ld106n, ld106z, ld106u, \
- ld113d, ld113n, ld113z, ld113u) \
+# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du, \
+ ld53exact, ld53d, ld53n, ld53z, ld53u, \
+ ld64iexact, ld64id, ld64in, ld64iz, ld64iu, \
+ ld64mexact, ld64md, ld64mn, ld64mz, ld64mu, \
+ ld106exact, ld106d, ld106n, ld106z, ld106u, \
+ ld113exact, ld113d, ld113n, ld113z, ld113u) \
{ \
s, \
- true, \
+ { fexact, dexact, ld64iexact }, \
{ fd, dd, ld64id }, \
{ fn, dn, ld64in }, \
{ fz, dz, ld64iz }, \
@@ -68,42 +77,45 @@ struct test {
}
#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && LDBL_MIN_EXP == -16382
/* This is for the Motorola extended float format. */
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
- ld64id, ld64in, ld64iz, ld64iu, \
- ld64md, ld64mn, ld64mz, ld64mu, \
- ld106exact, ld106d, ld106n, ld106z, ld106u, \
- ld113d, ld113n, ld113z, ld113u) \
+# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du, \
+ ld53exact, ld53d, ld53n, ld53z, ld53u, \
+ ld64iexact, ld64id, ld64in, ld64iz, ld64iu, \
+ ld64mexact, ld64md, ld64mn, ld64mz, ld64mu, \
+ ld106exact, ld106d, ld106n, ld106z, ld106u, \
+ ld113exact, ld113d, ld113n, ld113z, ld113u) \
{ \
s, \
- true, \
+ { fexact, dexact, ld64mexact }, \
{ fd, dd, ld64md }, \
{ fn, dn, ld64mn }, \
{ fz, dz, ld64mz }, \
{ fu, du, ld64mu } \
}
#elif LDBL_MANT_DIG == 106 && LDBL_MAX_EXP == 1024
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
- ld64id, ld64in, ld64iz, ld64iu, \
- ld64md, ld64mn, ld64mz, ld64mu, \
- ld106exact, ld106d, ld106n, ld106z, ld106u, \
- ld113d, ld113n, ld113z, ld113u) \
+# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du, \
+ ld53exact, ld53d, ld53n, ld53z, ld53u, \
+ ld64iexact, ld64id, ld64in, ld64iz, ld64iu, \
+ ld64mexact, ld64md, ld64mn, ld64mz, ld64mu, \
+ ld106exact, ld106d, ld106n, ld106z, ld106u, \
+ ld113exact, ld113d, ld113n, ld113z, ld113u) \
{ \
s, \
- ld106exact, \
+ { fexact, dexact, ld106exact }, \
{ fd, dd, ld106d }, \
{ fn, dn, ld106n }, \
{ fz, dz, ld106z }, \
{ fu, du, ld106u } \
}
#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
- ld64id, ld64in, ld64iz, ld64iu, \
- ld64md, ld64mn, ld64mz, ld64mu, \
- ld106exact, ld106d, ld106n, ld106z, ld106u, \
- ld113d, ld113n, ld113z, ld113u) \
+# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du, \
+ ld53exact, ld53d, ld53n, ld53z, ld53u, \
+ ld64iexact, ld64id, ld64in, ld64iz, ld64iu, \
+ ld64mexact, ld64md, ld64mn, ld64mz, ld64mu, \
+ ld106exact, ld106d, ld106n, ld106z, ld106u, \
+ ld113exact, ld113d, ld113n, ld113z, ld113u) \
{ \
s, \
- true, \
+ { fexact, dexact, ld113exact }, \
{ fd, dd, ld113d }, \
{ fn, dn, ld113n }, \
{ fz, dz, ld113z }, \
@@ -118,22 +130,27 @@ struct test {
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,
@@ -143,27 +160,33 @@ static const struct test tests[] = {
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,
@@ -173,27 +196,33 @@ static const struct test tests[] = {
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,
@@ -203,27 +232,33 @@ static const struct test tests[] = {
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,
@@ -233,27 +268,33 @@ static const struct test tests[] = {
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,
@@ -263,27 +304,33 @@ static const struct test tests[] = {
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,
@@ -293,27 +340,33 @@ static const struct test tests[] = {
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,
@@ -323,27 +376,33 @@ static const struct test tests[] = {
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,
@@ -353,27 +412,33 @@ static const struct test tests[] = {
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,
@@ -383,27 +448,33 @@ static const struct test tests[] = {
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,
@@ -413,27 +484,33 @@ static const struct test tests[] = {
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,
@@ -443,27 +520,33 @@ static const struct test tests[] = {
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,
@@ -473,27 +556,33 @@ static const struct test tests[] = {
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,
@@ -503,27 +592,33 @@ static const struct test tests[] = {
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,
@@ -533,27 +628,33 @@ static const struct test tests[] = {
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,
@@ -563,27 +664,33 @@ static const struct test tests[] = {
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,
@@ -593,27 +700,33 @@ static const struct test tests[] = {
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,
@@ -623,27 +736,33 @@ static const struct test tests[] = {
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,
@@ -653,27 +772,33 @@ static const struct test tests[] = {
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,
@@ -683,27 +808,33 @@ static const struct test tests[] = {
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,
@@ -713,27 +844,33 @@ static const struct test tests[] = {
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,
@@ -743,27 +880,33 @@ static const struct test tests[] = {
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,
@@ -773,27 +916,33 @@ static const struct test tests[] = {
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,
@@ -803,27 +952,33 @@ static const struct test tests[] = {
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,
@@ -833,27 +988,33 @@ static const struct test tests[] = {
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,
@@ -863,27 +1024,33 @@ static const struct test tests[] = {
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,
@@ -893,6 +1060,7 @@ static const struct test tests[] = {
0x1.b005314e2421e7ffb472840c5a8p-32L,
0x1.b005314e2421e7ffb472840c5ap-32L,
0x1.b005314e2421e7ffb472840c5a8p-32L,
+ false,
0x1.b005314e2421e7ffb472840c5a6ep-32L,
0x1.b005314e2421e7ffb472840c5a6fp-32L,
0x1.b005314e2421e7ffb472840c5a6ep-32L,
@@ -900,22 +1068,27 @@ static const struct test tests[] = {
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,
@@ -925,27 +1098,33 @@ static const struct test tests[] = {
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,
@@ -955,27 +1134,33 @@ static const struct test tests[] = {
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,
@@ -985,27 +1170,33 @@ static const struct test tests[] = {
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,
@@ -1015,27 +1206,33 @@ static const struct test tests[] = {
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,
@@ -1045,27 +1242,33 @@ static const struct test tests[] = {
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,
@@ -1075,27 +1278,33 @@ static const struct test tests[] = {
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,
@@ -1105,27 +1314,33 @@ static const struct test tests[] = {
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,
@@ -1135,27 +1350,33 @@ static const struct test tests[] = {
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,
@@ -1165,27 +1386,33 @@ static const struct test tests[] = {
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,
@@ -1195,28 +1422,34 @@ static const struct test tests[] = {
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,
@@ -1226,28 +1459,34 @@ static const struct test tests[] = {
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,
@@ -1257,28 +1496,34 @@ static const struct test tests[] = {
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,
@@ -1288,28 +1533,34 @@ static const struct test tests[] = {
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,
@@ -1319,28 +1570,34 @@ static const struct test tests[] = {
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,
@@ -1350,28 +1607,34 @@ static const struct test tests[] = {
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,
@@ -1381,28 +1644,34 @@ static const struct test tests[] = {
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,
@@ -1412,28 +1681,34 @@ static const struct test tests[] = {
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,
@@ -1443,28 +1718,34 @@ static const struct test tests[] = {
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,
@@ -1474,28 +1755,34 @@ static const struct test tests[] = {
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,
@@ -1505,28 +1792,34 @@ static const struct test tests[] = {
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,
@@ -1536,28 +1829,34 @@ static const struct test tests[] = {
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,
@@ -1567,28 +1866,34 @@ static const struct test tests[] = {
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,
@@ -1598,28 +1903,34 @@ static const struct test tests[] = {
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,
@@ -1629,28 +1940,34 @@ static const struct test tests[] = {
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,
@@ -1660,28 +1977,34 @@ static const struct test tests[] = {
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,
@@ -1691,28 +2014,34 @@ static const struct test tests[] = {
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,
@@ -1722,27 +2051,33 @@ static const struct test tests[] = {
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,
@@ -1752,27 +2087,33 @@ static const struct test tests[] = {
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,
@@ -1782,27 +2123,33 @@ static const struct test tests[] = {
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,
@@ -1812,27 +2159,33 @@ static const struct test tests[] = {
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,
@@ -1842,27 +2195,33 @@ static const struct test tests[] = {
-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,
@@ -1872,27 +2231,33 @@ static const struct test tests[] = {
-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,
@@ -1902,6 +2267,7 @@ static const struct test tests[] = {
-0xf.fffff8p+124L,
-0xf.fffff8p+124L,
-0xf.fffff8p+124L,
+ false,
-0xf.fffff80000000000000000000008p+124L,
-0xf.fffff8p+124L,
-0xf.fffff8p+124L,
@@ -1912,22 +2278,27 @@ static const struct test tests[] = {
"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,
@@ -1937,6 +2308,7 @@ static const struct test tests[] = {
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffbffffffffffffcp+1020L,
0xf.ffffffffffffcp+1020L,
+ false,
0xf.ffffffffffffbffffffffffffff8p+1020L,
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffbffffffffffffff8p+1020L,
@@ -1947,22 +2319,27 @@ static const struct test tests[] = {
"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,
@@ -1972,6 +2349,7 @@ static const struct test tests[] = {
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffcp+1020L,
+ true,
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffcp+1020L,
@@ -1982,22 +2360,27 @@ static const struct test tests[] = {
"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,
@@ -2007,6 +2390,7 @@ static const struct test tests[] = {
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffc0000000000004p+1020L,
+ false,
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffcp+1020L,
0xf.ffffffffffffcp+1020L,
@@ -2017,22 +2401,27 @@ static const struct test tests[] = {
"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,
@@ -2042,6 +2431,7 @@ static const struct test tests[] = {
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffbffffffffffffcp+1020L,
-0xf.ffffffffffffbffffffffffffcp+1020L,
+ false,
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffbffffffffffffff8p+1020L,
@@ -2052,22 +2442,27 @@ static const struct test tests[] = {
"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,
@@ -2077,6 +2472,7 @@ static const struct test tests[] = {
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffcp+1020L,
+ true,
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffcp+1020L,
@@ -2087,22 +2483,27 @@ static const struct test tests[] = {
"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,
@@ -2112,6 +2513,7 @@ static const struct test tests[] = {
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffcp+1020L,
+ false,
-0xf.ffffffffffffc000000000000008p+1020L,
-0xf.ffffffffffffcp+1020L,
-0xf.ffffffffffffcp+1020L,
@@ -2199,22 +2601,27 @@ static const struct test tests[] = {
"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,
@@ -2224,6 +2631,7 @@ static const struct test tests[] = {
INFINITY,
0xf.fffffffffffffffffffffffffcp+1020L,
INFINITY,
+ false,
0xf.fffffffffffffff7fffffffffff8p+16380L,
0xf.fffffffffffffff8p+16380L,
0xf.fffffffffffffff7fffffffffff8p+16380L,
@@ -2311,22 +2719,27 @@ static const struct test tests[] = {
"125898120366007955506160309553860446596202876233728025871625"
"578031503869424406179027994752890226443351619365453243328968"
"8740976918528",
+ 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,
INFINITY,
0xf.fffffffffffffffp+16380L,
INFINITY,
+ false,
0xf.fffffffffffffffp+16380L,
INFINITY,
0xf.fffffffffffffffp+16380L,
@@ -2336,6 +2749,7 @@ static const struct test tests[] = {
INFINITY,
0xf.fffffffffffffffffffffffffcp+1020L,
INFINITY,
+ true,
0xf.fffffffffffffff8p+16380L,
0xf.fffffffffffffff8p+16380L,
0xf.fffffffffffffff8p+16380L,
@@ -2423,22 +2837,27 @@ static const struct test tests[] = {
"125898120366007955506160309553860446596202876233728025871625"
"578031503869424406179027994752890226443351619365453243328968"
"8740976918528.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.fffffffffffffffp+16380L,
INFINITY,
0xf.fffffffffffffffp+16380L,
INFINITY,
+ false,
0xf.fffffffffffffffp+16380L,
INFINITY,
0xf.fffffffffffffffp+16380L,
@@ -2448,6 +2867,7 @@ static const struct test tests[] = {
INFINITY,
0xf.fffffffffffffffffffffffffcp+1020L,
INFINITY,
+ false,
0xf.fffffffffffffff8p+16380L,
0xf.fffffffffffffff8p+16380L,
0xf.fffffffffffffff8p+16380L,
@@ -2535,22 +2955,27 @@ static const struct test tests[] = {
"912589812036600795550616030955386044659620287623372802587162"
"557803150386942440617902799475289022644335161936545324332896"
"88740976918527.999",
+ 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,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
-0xf.fffffffffffffffp+16380L,
-0xf.fffffffffffffffp+16380L,
+ false,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
-0xf.fffffffffffffffp+16380L,
@@ -2560,6 +2985,7 @@ static const struct test tests[] = {
-INFINITY,
-0xf.fffffffffffffffffffffffffcp+1020L,
-0xf.fffffffffffffffffffffffffcp+1020L,
+ false,
-0xf.fffffffffffffff8p+16380L,
-0xf.fffffffffffffff8p+16380L,
-0xf.fffffffffffffff7fffffffffff8p+16380L,
@@ -2647,22 +3073,27 @@ static const struct test tests[] = {
"912589812036600795550616030955386044659620287623372802587162"
"557803150386942440617902799475289022644335161936545324332896"
"88740976918528",
+ 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,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
-0xf.fffffffffffffffp+16380L,
+ false,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
@@ -2672,6 +3103,7 @@ static const struct test tests[] = {
-INFINITY,
-0xf.fffffffffffffffffffffffffcp+1020L,
-0xf.fffffffffffffffffffffffffcp+1020L,
+ true,
-0xf.fffffffffffffff8p+16380L,
-0xf.fffffffffffffff8p+16380L,
-0xf.fffffffffffffff8p+16380L,
@@ -2759,22 +3191,27 @@ static const struct test tests[] = {
"912589812036600795550616030955386044659620287623372802587162"
"557803150386942440617902799475289022644335161936545324332896"
"88740976918528.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,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
-0xf.fffffffffffffffp+16380L,
+ false,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
@@ -2784,6 +3221,7 @@ static const struct test tests[] = {
-INFINITY,
-0xf.fffffffffffffffffffffffffcp+1020L,
-0xf.fffffffffffffffffffffffffcp+1020L,
+ false,
-0xf.fffffffffffffff8000000000008p+16380L,
-0xf.fffffffffffffff8p+16380L,
-0xf.fffffffffffffff8p+16380L,
@@ -2871,22 +3309,27 @@ static const struct test tests[] = {
"780117858230840648695846140902244217544683559565818359212130"
"972233447491583165728635513802591543441145939539353470970452"
"5536550715391.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,
INFINITY,
0xf.fffffffffffffffp+16380L,
INFINITY,
+ false,
0xf.fffffffffffffffp+16380L,
INFINITY,
0xf.fffffffffffffffp+16380L,
@@ -2896,6 +3339,7 @@ static const struct test tests[] = {
INFINITY,
0xf.fffffffffffffffffffffffffcp+1020L,
INFINITY,
+ false,
0xf.fffffffffffffffffffffffffff8p+16380L,
0xf.fffffffffffffffffffffffffff8p+16380L,
0xf.fffffffffffffffffffffffffff8p+16380L,
@@ -2983,22 +3427,27 @@ static const struct test tests[] = {
"780117858230840648695846140902244217544683559565818359212130"
"972233447491583165728635513802591543441145939539353470970452"
"5536550715392",
+ 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,
INFINITY,
0xf.fffffffffffffffp+16380L,
INFINITY,
+ false,
0xf.fffffffffffffffp+16380L,
INFINITY,
0xf.fffffffffffffffp+16380L,
@@ -3008,6 +3457,7 @@ static const struct test tests[] = {
INFINITY,
0xf.fffffffffffffffffffffffffcp+1020L,
INFINITY,
+ false,
0xf.fffffffffffffffffffffffffff8p+16380L,
INFINITY,
0xf.fffffffffffffffffffffffffff8p+16380L,
@@ -3095,22 +3545,27 @@ static const struct test tests[] = {
"780117858230840648695846140902244217544683559565818359212130"
"972233447491583165728635513802591543441145939539353470970452"
"5536550715392.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.fffffffffffffffp+16380L,
INFINITY,
0xf.fffffffffffffffp+16380L,
INFINITY,
+ false,
0xf.fffffffffffffffp+16380L,
INFINITY,
0xf.fffffffffffffffp+16380L,
@@ -3120,6 +3575,7 @@ static const struct test tests[] = {
INFINITY,
0xf.fffffffffffffffffffffffffcp+1020L,
INFINITY,
+ false,
0xf.fffffffffffffffffffffffffff8p+16380L,
INFINITY,
0xf.fffffffffffffffffffffffffff8p+16380L,
@@ -3207,22 +3663,27 @@ static const struct test tests[] = {
"778011785823084064869584614090224421754468355956581835921213"
"097223344749158316572863551380259154344114593953935347097045"
"25536550715391.999",
+ 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,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
-0xf.fffffffffffffffp+16380L,
+ false,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
@@ -3232,6 +3693,7 @@ static const struct test tests[] = {
-INFINITY,
-0xf.fffffffffffffffffffffffffcp+1020L,
-0xf.fffffffffffffffffffffffffcp+1020L,
+ false,
-INFINITY,
-0xf.fffffffffffffffffffffffffff8p+16380L,
-0xf.fffffffffffffffffffffffffff8p+16380L,
@@ -3319,22 +3781,27 @@ static const struct test tests[] = {
"778011785823084064869584614090224421754468355956581835921213"
"097223344749158316572863551380259154344114593953935347097045"
"25536550715392",
+ 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,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
-0xf.fffffffffffffffp+16380L,
+ false,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
@@ -3344,6 +3811,7 @@ static const struct test tests[] = {
-INFINITY,
-0xf.fffffffffffffffffffffffffcp+1020L,
-0xf.fffffffffffffffffffffffffcp+1020L,
+ false,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffffffffffffff8p+16380L,
@@ -3431,22 +3899,27 @@ static const struct test tests[] = {
"778011785823084064869584614090224421754468355956581835921213"
"097223344749158316572863551380259154344114593953935347097045"
"25536550715392.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,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
-0xf.fffffffffffffffp+16380L,
+ false,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffp+16380L,
@@ -3456,28 +3929,34 @@ static const struct test tests[] = {
-INFINITY,
-0xf.fffffffffffffffffffffffffcp+1020L,
-0xf.fffffffffffffffffffffffffcp+1020L,
+ false,
-INFINITY,
-INFINITY,
-0xf.fffffffffffffffffffffffffff8p+16380L,
-0xf.fffffffffffffffffffffffffff8p+16380L),
TEST ("2.1019476964872256063855943749348741969203929128147736576356"
"0242583468662402879090222995728254318237304687499e-45",
+ false,
0x8p-152f,
0x8p-152f,
0x8p-152f,
0x1p-148f,
+ false,
0xb.ffffffffffff8p-152,
0xcp-152,
0xb.ffffffffffff8p-152,
0xcp-152,
+ false,
0xb.ffffffffffff8p-152L,
0xcp-152L,
0xb.ffffffffffff8p-152L,
0xcp-152L,
+ false,
0xb.fffffffffffffffp-152L,
0xcp-152L,
0xb.fffffffffffffffp-152L,
0xcp-152L,
+ false,
0xb.fffffffffffffffp-152L,
0xcp-152L,
0xb.fffffffffffffffp-152L,
@@ -3487,28 +3966,34 @@ static const struct test tests[] = {
0xcp-152L,
0xb.fffffffffffffffffffffffffcp-152L,
0xcp-152L,
+ false,
0xb.fffffffffffffffffffffffffff8p-152L,
0xcp-152L,
0xb.fffffffffffffffffffffffffff8p-152L,
0xcp-152L),
TEST ("2.1019476964872256063855943749348741969203929128147736576356"
"02425834686624028790902229957282543182373046875e-45",
+ 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,
@@ -3518,28 +4003,34 @@ static const struct test tests[] = {
0xcp-152L,
0xcp-152L,
0xcp-152L,
+ true,
0xcp-152L,
0xcp-152L,
0xcp-152L,
0xcp-152L),
TEST ("2.1019476964872256063855943749348741969203929128147736576356"
"0242583468662402879090222995728254318237304687501e-45",
+ false,
0x8p-152f,
0x1p-148f,
0x8p-152f,
0x1p-148f,
+ false,
0xcp-152,
0xcp-152,
0xcp-152,
0xc.0000000000008p-152,
+ false,
0xcp-152L,
0xcp-152L,
0xcp-152L,
0xc.0000000000008p-152L,
+ false,
0xcp-152L,
0xcp-152L,
0xcp-152L,
0xc.000000000000001p-152L,
+ false,
0xcp-152L,
0xcp-152L,
0xcp-152L,
@@ -3549,28 +4040,34 @@ static const struct test tests[] = {
0xcp-152L,
0xcp-152L,
0xc.00000000000000000000000004p-152L,
+ false,
0xcp-152L,
0xcp-152L,
0xcp-152L,
0xc.0000000000000000000000000008p-152L),
TEST ("-2.101947696487225606385594374934874196920392912814773657635"
"60242583468662402879090222995728254318237304687499e-45",
+ false,
-0x1p-148f,
-0x8p-152f,
-0x8p-152f,
-0x8p-152f,
+ false,
-0xcp-152,
-0xcp-152,
-0xb.ffffffffffff8p-152,
-0xb.ffffffffffff8p-152,
+ false,
-0xcp-152L,
-0xcp-152L,
-0xb.ffffffffffff8p-152L,
-0xb.ffffffffffff8p-152L,
+ false,
-0xcp-152L,
-0xcp-152L,
-0xb.fffffffffffffffp-152L,
-0xb.fffffffffffffffp-152L,
+ false,
-0xcp-152L,
-0xcp-152L,
-0xb.fffffffffffffffp-152L,
@@ -3580,28 +4077,34 @@ static const struct test tests[] = {
-0xcp-152L,
-0xb.fffffffffffffffffffffffffcp-152L,
-0xb.fffffffffffffffffffffffffcp-152L,
+ false,
-0xcp-152L,
-0xcp-152L,
-0xb.fffffffffffffffffffffffffff8p-152L,
-0xb.fffffffffffffffffffffffffff8p-152L),
TEST ("-2.101947696487225606385594374934874196920392912814773657635"
"602425834686624028790902229957282543182373046875e-45",
+ true,
-0x1p-148f,
-0x1p-148f,
-0x8p-152f,
-0x8p-152f,
+ 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,
@@ -3611,28 +4114,34 @@ static const struct test tests[] = {
-0xcp-152L,
-0xcp-152L,
-0xcp-152L,
+ true,
-0xcp-152L,
-0xcp-152L,
-0xcp-152L,
-0xcp-152L),
TEST ("-2.101947696487225606385594374934874196920392912814773657635"
"60242583468662402879090222995728254318237304687501e-45",
+ false,
-0x1p-148f,
-0x1p-148f,
-0x8p-152f,
-0x8p-152f,
+ false,
-0xc.0000000000008p-152,
-0xcp-152,
-0xcp-152,
-0xcp-152,
+ false,
-0xc.0000000000008p-152L,
-0xcp-152L,
-0xcp-152L,
-0xcp-152L,
+ false,
-0xc.000000000000001p-152L,
-0xcp-152L,
-0xcp-152L,
-0xcp-152L,
+ false,
-0xc.000000000000001p-152L,
-0xcp-152L,
-0xcp-152L,
@@ -3642,28 +4151,34 @@ static const struct test tests[] = {
-0xcp-152L,
-0xcp-152L,
-0xcp-152L,
+ false,
-0xc.0000000000000000000000000008p-152L,
-0xcp-152L,
-0xcp-152L,
-0xcp-152L),
TEST ("3.5032461608120426773093239582247903282006548546912894293926"
"7070972447770671465150371659547090530395507812499e-45",
+ false,
0x1p-148f,
0x1p-148f,
0x1p-148f,
0x1.8p-148f,
+ false,
0x1.3ffffffffffffp-148,
0x1.4p-148,
0x1.3ffffffffffffp-148,
0x1.4p-148,
+ false,
0x1.3ffffffffffffp-148L,
0x1.4p-148L,
0x1.3ffffffffffffp-148L,
0x1.4p-148L,
+ false,
0x1.3ffffffffffffffep-148L,
0x1.4p-148L,
0x1.3ffffffffffffffep-148L,
0x1.4p-148L,
+ false,
0x1.3ffffffffffffffep-148L,
0x1.4p-148L,
0x1.3ffffffffffffffep-148L,
@@ -3673,28 +4188,34 @@ static const struct test tests[] = {
0x1.4p-148L,
0x1.3fffffffffffffffffffffffff8p-148L,
0x1.4p-148L,
+ false,
0x1.3fffffffffffffffffffffffffffp-148L,
0x1.4p-148L,
0x1.3fffffffffffffffffffffffffffp-148L,
0x1.4p-148L),
TEST ("3.5032461608120426773093239582247903282006548546912894293926"
"70709724477706714651503716595470905303955078125e-45",
+ true,
0x1p-148f,
0x1p-148f,
0x1p-148f,
0x1.8p-148f,
+ true,
0x1.4p-148,
0x1.4p-148,
0x1.4p-148,
0x1.4p-148,
+ true,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
+ true,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
+ true,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
@@ -3704,28 +4225,34 @@ static const struct test tests[] = {
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
+ true,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L),
TEST ("3.5032461608120426773093239582247903282006548546912894293926"
"7070972447770671465150371659547090530395507812501e-45",
+ false,
0x1p-148f,
0x1.8p-148f,
0x1p-148f,
0x1.8p-148f,
+ false,
0x1.4p-148,
0x1.4p-148,
0x1.4p-148,
0x1.4000000000001p-148,
+ false,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
0x1.4000000000001p-148L,
+ false,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
0x1.4000000000000002p-148L,
+ false,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
@@ -3735,28 +4262,34 @@ static const struct test tests[] = {
0x1.4p-148L,
0x1.4p-148L,
0x1.400000000000000000000000008p-148L,
+ false,
0x1.4p-148L,
0x1.4p-148L,
0x1.4p-148L,
0x1.4000000000000000000000000001p-148L),
TEST ("-3.503246160812042677309323958224790328200654854691289429392"
"67070972447770671465150371659547090530395507812499e-45",
+ false,
-0x1.8p-148f,
-0x1p-148f,
-0x1p-148f,
-0x1p-148f,
+ false,
-0x1.4p-148,
-0x1.4p-148,
-0x1.3ffffffffffffp-148,
-0x1.3ffffffffffffp-148,
+ false,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.3ffffffffffffp-148L,
-0x1.3ffffffffffffp-148L,
+ false,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.3ffffffffffffffep-148L,
-0x1.3ffffffffffffffep-148L,
+ false,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.3ffffffffffffffep-148L,
@@ -3766,28 +4299,34 @@ static const struct test tests[] = {
-0x1.4p-148L,
-0x1.3fffffffffffffffffffffffff8p-148L,
-0x1.3fffffffffffffffffffffffff8p-148L,
+ false,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.3fffffffffffffffffffffffffffp-148L,
-0x1.3fffffffffffffffffffffffffffp-148L),
TEST ("-3.503246160812042677309323958224790328200654854691289429392"
"670709724477706714651503716595470905303955078125e-45",
+ true,
-0x1.8p-148f,
-0x1p-148f,
-0x1p-148f,
-0x1p-148f,
+ true,
-0x1.4p-148,
-0x1.4p-148,
-0x1.4p-148,
-0x1.4p-148,
+ true,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
+ true,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
+ true,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
@@ -3797,28 +4336,34 @@ static const struct test tests[] = {
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
+ true,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L),
TEST ("-3.503246160812042677309323958224790328200654854691289429392"
"67070972447770671465150371659547090530395507812501e-45",
+ false,
-0x1.8p-148f,
-0x1.8p-148f,
-0x1p-148f,
-0x1p-148f,
+ false,
-0x1.4000000000001p-148,
-0x1.4p-148,
-0x1.4p-148,
-0x1.4p-148,
+ false,
-0x1.4000000000001p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
+ false,
-0x1.4000000000000002p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
+ false,
-0x1.4000000000000002p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
@@ -3828,6 +4373,7 @@ static const struct test tests[] = {
-0x1.4p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
+ false,
-0x1.4000000000000000000000000001p-148L,
-0x1.4p-148L,
-0x1.4p-148L,
@@ -3845,22 +4391,27 @@ static const struct test tests[] = {
"705269590165763776884908267986972573366521765567941072508764"
"337560846003984904972149117463085539556354188641513168478436"
"31308023759629577398300170898437499e-324",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ false,
0x4p-1076,
0x4p-1076,
0x4p-1076,
0x8p-1076,
+ false,
0x4p-1076L,
0x4p-1076L,
0x4p-1076L,
0x8p-1076L,
+ false,
0x5.fffffffffffffff8p-1076L,
0x6p-1076L,
0x5.fffffffffffffff8p-1076L,
0x6p-1076L,
+ false,
0x5.fffffffffffffff8p-1076L,
0x6p-1076L,
0x5.fffffffffffffff8p-1076L,
@@ -3870,6 +4421,7 @@ static const struct test tests[] = {
0x4p-1076L,
0x4p-1076L,
0x8p-1076L,
+ false,
0x5.fffffffffffffffffffffffffffcp-1076L,
0x6p-1076L,
0x5.fffffffffffffffffffffffffffcp-1076L,
@@ -3887,22 +4439,27 @@ static const struct test tests[] = {
"705269590165763776884908267986972573366521765567941072508764"
"337560846003984904972149117463085539556354188641513168478436"
"313080237596295773983001708984375e-324",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ true,
0x4p-1076,
0x8p-1076,
0x4p-1076,
0x8p-1076,
+ true,
0x4p-1076L,
0x8p-1076L,
0x4p-1076L,
0x8p-1076L,
+ true,
0x6p-1076L,
0x6p-1076L,
0x6p-1076L,
0x6p-1076L,
+ true,
0x6p-1076L,
0x6p-1076L,
0x6p-1076L,
@@ -3912,6 +4469,7 @@ static const struct test tests[] = {
0x8p-1076L,
0x4p-1076L,
0x8p-1076L,
+ true,
0x6p-1076L,
0x6p-1076L,
0x6p-1076L,
@@ -3929,22 +4487,27 @@ static const struct test tests[] = {
"705269590165763776884908267986972573366521765567941072508764"
"337560846003984904972149117463085539556354188641513168478436"
"31308023759629577398300170898437501e-324",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ false,
0x4p-1076,
0x8p-1076,
0x4p-1076,
0x8p-1076,
+ false,
0x4p-1076L,
0x8p-1076L,
0x4p-1076L,
0x8p-1076L,
+ false,
0x6p-1076L,
0x6p-1076L,
0x6p-1076L,
0x6.0000000000000008p-1076L,
+ false,
0x6p-1076L,
0x6p-1076L,
0x6p-1076L,
@@ -3954,6 +4517,7 @@ static const struct test tests[] = {
0x8p-1076L,
0x4p-1076L,
0x8p-1076L,
+ false,
0x6p-1076L,
0x6p-1076L,
0x6p-1076L,
@@ -3971,22 +4535,27 @@ static const struct test tests[] = {
"470526959016576377688490826798697257336652176556794107250876"
"433756084600398490497214911746308553955635418864151316847843"
"631308023759629577398300170898437499e-324",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x8p-1076,
-0x4p-1076,
-0x4p-1076,
-0x4p-1076,
+ false,
-0x8p-1076L,
-0x4p-1076L,
-0x4p-1076L,
-0x4p-1076L,
+ false,
-0x6p-1076L,
-0x6p-1076L,
-0x5.fffffffffffffff8p-1076L,
-0x5.fffffffffffffff8p-1076L,
+ false,
-0x6p-1076L,
-0x6p-1076L,
-0x5.fffffffffffffff8p-1076L,
@@ -3996,6 +4565,7 @@ static const struct test tests[] = {
-0x4p-1076L,
-0x4p-1076L,
-0x4p-1076L,
+ false,
-0x6p-1076L,
-0x6p-1076L,
-0x5.fffffffffffffffffffffffffffcp-1076L,
@@ -4013,22 +4583,27 @@ static const struct test tests[] = {
"470526959016576377688490826798697257336652176556794107250876"
"433756084600398490497214911746308553955635418864151316847843"
"6313080237596295773983001708984375e-324",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ true,
-0x8p-1076,
-0x8p-1076,
-0x4p-1076,
-0x4p-1076,
+ true,
-0x8p-1076L,
-0x8p-1076L,
-0x4p-1076L,
-0x4p-1076L,
+ true,
-0x6p-1076L,
-0x6p-1076L,
-0x6p-1076L,
-0x6p-1076L,
+ true,
-0x6p-1076L,
-0x6p-1076L,
-0x6p-1076L,
@@ -4038,6 +4613,7 @@ static const struct test tests[] = {
-0x8p-1076L,
-0x4p-1076L,
-0x4p-1076L,
+ true,
-0x6p-1076L,
-0x6p-1076L,
-0x6p-1076L,
@@ -4055,22 +4631,27 @@ static const struct test tests[] = {
"470526959016576377688490826798697257336652176556794107250876"
"433756084600398490497214911746308553955635418864151316847843"
"631308023759629577398300170898437501e-324",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x8p-1076,
-0x8p-1076,
-0x4p-1076,
-0x4p-1076,
+ false,
-0x8p-1076L,
-0x8p-1076L,
-0x4p-1076L,
-0x4p-1076L,
+ false,
-0x6.0000000000000008p-1076L,
-0x6p-1076L,
-0x6p-1076L,
-0x6p-1076L,
+ false,
-0x6.0000000000000008p-1076L,
-0x6p-1076L,
-0x6p-1076L,
@@ -4080,6 +4661,7 @@ static const struct test tests[] = {
-0x8p-1076L,
-0x4p-1076L,
-0x4p-1076L,
+ false,
-0x6.0000000000000000000000000004p-1076L,
-0x6p-1076L,
-0x6p-1076L,
@@ -4276,22 +4858,27 @@ static const struct test tests[] = {
"885863091769469883539876840543521295706315919855784493235603"
"866268925981702690270202829595794350800918257913991744455922"
"683343374046671669930219650268554687499e-4951",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ false,
0x0p+0,
0x0p+0,
0x0p+0,
0x4p-1076,
+ false,
0x0p+0L,
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ false,
0x8p-16448L,
0x8p-16448L,
0x8p-16448L,
0x1p-16444L,
+ false,
0x8p-16448L,
0xcp-16448L,
0x8p-16448L,
@@ -4301,6 +4888,7 @@ static const struct test tests[] = {
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ false,
0xb.fffffffffffcp-16448L,
0xcp-16448L,
0xb.fffffffffffcp-16448L,
@@ -4497,22 +5085,27 @@ static const struct test tests[] = {
"885863091769469883539876840543521295706315919855784493235603"
"866268925981702690270202829595794350800918257913991744455922"
"6833433740466716699302196502685546875e-4951",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ false,
0x0p+0,
0x0p+0,
0x0p+0,
0x4p-1076,
+ false,
0x0p+0L,
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ true,
0x8p-16448L,
0x1p-16444L,
0x8p-16448L,
0x1p-16444L,
+ true,
0xcp-16448L,
0xcp-16448L,
0xcp-16448L,
@@ -4522,6 +5115,7 @@ static const struct test tests[] = {
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ true,
0xcp-16448L,
0xcp-16448L,
0xcp-16448L,
@@ -4718,22 +5312,27 @@ static const struct test tests[] = {
"885863091769469883539876840543521295706315919855784493235603"
"866268925981702690270202829595794350800918257913991744455922"
"683343374046671669930219650268554687501e-4951",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ false,
0x0p+0,
0x0p+0,
0x0p+0,
0x4p-1076,
+ false,
0x0p+0L,
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ false,
0x8p-16448L,
0x1p-16444L,
0x8p-16448L,
0x1p-16444L,
+ false,
0xcp-16448L,
0xcp-16448L,
0xcp-16448L,
@@ -4743,6 +5342,7 @@ static const struct test tests[] = {
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ false,
0xcp-16448L,
0xcp-16448L,
0xcp-16448L,
@@ -4939,22 +5539,27 @@ static const struct test tests[] = {
"188586309176946988353987684054352129570631591985578449323560"
"386626892598170269027020282959579435080091825791399174445592"
"2683343374046671669930219650268554687499e-4951",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x1p-16444L,
-0x8p-16448L,
-0x8p-16448L,
-0x8p-16448L,
+ false,
-0xcp-16448L,
-0xcp-16448L,
-0x8p-16448L,
@@ -4964,6 +5569,7 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0xcp-16448L,
-0xcp-16448L,
-0xb.fffffffffffcp-16448L,
@@ -5160,22 +5766,27 @@ static const struct test tests[] = {
"188586309176946988353987684054352129570631591985578449323560"
"386626892598170269027020282959579435080091825791399174445592"
"26833433740466716699302196502685546875e-4951",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ true,
-0x1p-16444L,
-0x1p-16444L,
-0x8p-16448L,
-0x8p-16448L,
+ true,
-0xcp-16448L,
-0xcp-16448L,
-0xcp-16448L,
@@ -5185,6 +5796,7 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ true,
-0xcp-16448L,
-0xcp-16448L,
-0xcp-16448L,
@@ -5381,22 +5993,27 @@ static const struct test tests[] = {
"188586309176946988353987684054352129570631591985578449323560"
"386626892598170269027020282959579435080091825791399174445592"
"2683343374046671669930219650268554687501e-4951",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x1p-16444L,
-0x1p-16444L,
-0x8p-16448L,
-0x8p-16448L,
+ false,
-0x1p-16444L,
-0xcp-16448L,
-0xcp-16448L,
@@ -5406,6 +6023,7 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0xc.000000000004p-16448L,
-0xcp-16448L,
-0xcp-16448L,
@@ -5602,22 +6220,27 @@ static const struct test tests[] = {
"885863091769469883539876840543521295706315919855784493235603"
"866268925981702690270202829595794350800918257913991744455922"
"683343374046671669930219650268554687499e-4951",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ false,
0x0p+0,
0x0p+0,
0x0p+0,
0x4p-1076,
+ false,
0x0p+0L,
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ false,
0x8p-16448L,
0x8p-16448L,
0x8p-16448L,
0x1p-16444L,
+ false,
0x8p-16448L,
0xcp-16448L,
0x8p-16448L,
@@ -5627,6 +6250,7 @@ static const struct test tests[] = {
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ false,
0xb.fffffffffffcp-16448L,
0xcp-16448L,
0xb.fffffffffffcp-16448L,
@@ -5823,22 +6447,27 @@ static const struct test tests[] = {
"885863091769469883539876840543521295706315919855784493235603"
"866268925981702690270202829595794350800918257913991744455922"
"6833433740466716699302196502685546875e-4951",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ false,
0x0p+0,
0x0p+0,
0x0p+0,
0x4p-1076,
+ false,
0x0p+0L,
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ true,
0x8p-16448L,
0x1p-16444L,
0x8p-16448L,
0x1p-16444L,
+ true,
0xcp-16448L,
0xcp-16448L,
0xcp-16448L,
@@ -5848,6 +6477,7 @@ static const struct test tests[] = {
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ true,
0xcp-16448L,
0xcp-16448L,
0xcp-16448L,
@@ -6044,22 +6674,27 @@ static const struct test tests[] = {
"885863091769469883539876840543521295706315919855784493235603"
"866268925981702690270202829595794350800918257913991744455922"
"683343374046671669930219650268554687501e-4951",
+ false,
0x0p+0f,
0x0p+0f,
0x0p+0f,
0x8p-152f,
+ false,
0x0p+0,
0x0p+0,
0x0p+0,
0x4p-1076,
+ false,
0x0p+0L,
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ false,
0x8p-16448L,
0x1p-16444L,
0x8p-16448L,
0x1p-16444L,
+ false,
0xcp-16448L,
0xcp-16448L,
0xcp-16448L,
@@ -6069,6 +6704,7 @@ static const struct test tests[] = {
0x0p+0L,
0x0p+0L,
0x4p-1076L,
+ false,
0xcp-16448L,
0xcp-16448L,
0xcp-16448L,
@@ -6265,22 +6901,27 @@ static const struct test tests[] = {
"188586309176946988353987684054352129570631591985578449323560"
"386626892598170269027020282959579435080091825791399174445592"
"2683343374046671669930219650268554687499e-4951",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x1p-16444L,
-0x8p-16448L,
-0x8p-16448L,
-0x8p-16448L,
+ false,
-0xcp-16448L,
-0xcp-16448L,
-0x8p-16448L,
@@ -6290,6 +6931,7 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0xcp-16448L,
-0xcp-16448L,
-0xb.fffffffffffcp-16448L,
@@ -6486,22 +7128,27 @@ static const struct test tests[] = {
"188586309176946988353987684054352129570631591985578449323560"
"386626892598170269027020282959579435080091825791399174445592"
"26833433740466716699302196502685546875e-4951",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ true,
-0x1p-16444L,
-0x1p-16444L,
-0x8p-16448L,
-0x8p-16448L,
+ true,
-0xcp-16448L,
-0xcp-16448L,
-0xcp-16448L,
@@ -6511,6 +7158,7 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ true,
-0xcp-16448L,
-0xcp-16448L,
-0xcp-16448L,
@@ -6707,22 +7355,27 @@ static const struct test tests[] = {
"188586309176946988353987684054352129570631591985578449323560"
"386626892598170269027020282959579435080091825791399174445592"
"2683343374046671669930219650268554687501e-4951",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x1p-16444L,
-0x1p-16444L,
-0x8p-16448L,
-0x8p-16448L,
+ false,
-0x1p-16444L,
-0xcp-16448L,
-0xcp-16448L,
@@ -6732,27 +7385,33 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0xc.000000000004p-16448L,
-0xcp-16448L,
-0xcp-16448L,
-0xcp-16448L),
TEST ("-0x0.7p-149",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ true,
-0x3.8p-152,
-0x3.8p-152,
-0x3.8p-152,
-0x3.8p-152,
+ true,
-0x3.8p-152L,
-0x3.8p-152L,
-0x3.8p-152L,
-0x3.8p-152L,
+ true,
-0x3.8p-152L,
-0x3.8p-152L,
-0x3.8p-152L,
-0x3.8p-152L,
+ true,
-0x3.8p-152L,
-0x3.8p-152L,
-0x3.8p-152L,
@@ -6762,27 +7421,33 @@ static const struct test tests[] = {
-0x3.8p-152L,
-0x3.8p-152L,
-0x3.8p-152L,
+ true,
-0x3.8p-152L,
-0x3.8p-152L,
-0x3.8p-152L,
-0x3.8p-152L),
TEST ("-0x0.7p-1074",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ true,
-0x1.cp-1076L,
-0x1.cp-1076L,
-0x1.cp-1076L,
-0x1.cp-1076L,
+ true,
-0x1.cp-1076L,
-0x1.cp-1076L,
-0x1.cp-1076L,
@@ -6792,27 +7457,33 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ true,
-0x1.cp-1076L,
-0x1.cp-1076L,
-0x1.cp-1076L,
-0x1.cp-1076L),
TEST ("-0x0.7p-16445",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x8p-16448L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x4p-16448L,
-0x4p-16448L,
-0x0p+0L,
@@ -6822,27 +7493,33 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ true,
-0x3.8p-16448L,
-0x3.8p-16448L,
-0x3.8p-16448L,
-0x3.8p-16448L),
TEST ("-0x0.7p-16494",
+ false,
-0x8p-152f,
-0x0p+0f,
-0x0p+0f,
-0x0p+0f,
+ false,
-0x4p-1076,
-0x0p+0,
-0x0p+0,
-0x0p+0,
+ false,
-0x4p-1076L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x8p-16448L,
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x4p-16448L,
-0x0p+0L,
-0x0p+0L,
@@ -6852,6 +7529,7 @@ static const struct test tests[] = {
-0x0p+0L,
-0x0p+0L,
-0x0p+0L,
+ false,
-0x4p-16496L,
-0x0p+0L,
-0x0p+0L,
@@ -6860,7 +7538,7 @@ static const struct test tests[] = {
static int
test_in_one_mode (const char *s, const struct test_results *expected,
- bool ld_ok, const char *mode_name)
+ const struct exactness *exact, const char *mode_name)
{
int result = 0;
float f = strtof (s, NULL);
@@ -6885,7 +7563,7 @@ test_in_one_mode (const char *s, const struct test_results *expected,
{
printf ("strtold (%s) returned %La not %La (%s)\n", s, ld,
expected->ld, mode_name);
- if (ld_ok)
+ if (LDBL_MANT_DIG != 106 || exact->ld)
result = 1;
else
printf ("ignoring this inexact long double result\n");
@@ -6900,29 +7578,29 @@ do_test (void)
int result = 0;
for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
{
- result |= test_in_one_mode (tests[i].s, &tests[i].rn, tests[i].ld_ok,
+ result |= test_in_one_mode (tests[i].s, &tests[i].rn, &tests[i].exact,
"default rounding mode");
#ifdef FE_DOWNWARD
if (!fesetround (FE_DOWNWARD))
{
- result |= test_in_one_mode (tests[i].s, &tests[i].rd, tests[i].ld_ok,
- "FE_DOWNWARD");
+ result |= test_in_one_mode (tests[i].s, &tests[i].rd,
+ &tests[i].exact, "FE_DOWNWARD");
fesetround (save_round_mode);
}
#endif
#ifdef FE_TOWARDZERO
if (!fesetround (FE_TOWARDZERO))
{
- result |= test_in_one_mode (tests[i].s, &tests[i].rz, tests[i].ld_ok,
- "FE_TOWARDZERO");
+ result |= test_in_one_mode (tests[i].s, &tests[i].rz,
+ &tests[i].exact, "FE_TOWARDZERO");
fesetround (save_round_mode);
}
#endif
#ifdef FE_UPWARD
if (!fesetround (FE_UPWARD))
{
- result |= test_in_one_mode (tests[i].s, &tests[i].ru, tests[i].ld_ok,
- "FE_UPWARD");
+ result |= test_in_one_mode (tests[i].s, &tests[i].ru,
+ &tests[i].exact, "FE_UPWARD");
fesetround (save_round_mode);
}
#endif