aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makeconfig21
-rw-r--r--NEWS7
-rw-r--r--Rules13
-rw-r--r--csu/Makefile5
-rw-r--r--debug/pcprofiledump.c83
-rw-r--r--debug/tst-fortify-syslog.c8
-rw-r--r--elf/Makefile56
-rw-r--r--elf/dl-open.c35
-rw-r--r--elf/dl-tls.c150
-rw-r--r--elf/rtld.c4
-rw-r--r--elf/tst-dlopen-tlsreinit1.c40
-rw-r--r--elf/tst-dlopen-tlsreinit2.c39
-rw-r--r--elf/tst-dlopen-tlsreinit3.c2
-rw-r--r--elf/tst-dlopen-tlsreinit4.c2
-rw-r--r--elf/tst-dlopen-tlsreinitmod1.c20
-rw-r--r--elf/tst-dlopen-tlsreinitmod2.c30
-rw-r--r--elf/tst-dlopen-tlsreinitmod3.c102
-rw-r--r--elf/tst-recursive-tls.c60
-rw-r--r--elf/tst-recursive-tlsmallocmod.c64
-rw-r--r--elf/tst-recursive-tlsmodN.c28
-rw-r--r--include/libc-internal.h3
-rw-r--r--include/link.h1
-rw-r--r--libio/Makefile6
-rw-r--r--libio/bits/stdio2.h40
-rw-r--r--libio/genops.c8
-rw-r--r--libio/libioP.h4
-rw-r--r--libio/tst-stderr-compat.c52
-rw-r--r--localedata/tst-ctype.c40
-rw-r--r--malloc/Makefile8
-rw-r--r--malloc/tst-aligned-alloc-random-thread-cross.c19
-rw-r--r--malloc/tst-aligned-alloc-random-thread.c145
-rw-r--r--malloc/tst-aligned_alloc-lib.c39
-rw-r--r--manual/llio.texi42
-rw-r--r--manual/resource.texi4
-rw-r--r--manual/stdio.texi39
-rw-r--r--math/Makefile4
-rw-r--r--math/test-nan-payload.c112
-rw-r--r--math/test-tgmath2.c13
-rw-r--r--misc/Makefile2
-rw-r--r--misc/tst-mremap1.c46
-rw-r--r--misc/tst-mremap2.c54
-rw-r--r--nptl/allocatestack.c2
-rw-r--r--posix/tst-truncate-common.c25
-rw-r--r--resolv/res_send.c12
-rw-r--r--resolv/resolv-internal.h2
-rw-r--r--resolv/tst-resolv-short-response.c6
-rwxr-xr-xscripts/check-local-headers.sh2
-rw-r--r--socket/bits/socket2.h20
-rw-r--r--stdio-common/Makefile14
-rw-r--r--stdio-common/tst-fdopen2.c246
-rw-r--r--stdio-common/tst-fread.c134
-rw-r--r--stdio-common/tst-scanf-bz27650.c108
-rw-r--r--stdio-common/tst-ungetc-leak.c32
-rw-r--r--stdio-common/tst-ungetc.c114
-rw-r--r--stdlib/bits/stdlib.h10
-rw-r--r--stdlib/gen-tst-strtod-round.c43
-rw-r--r--stdlib/strtod_l.c2
-rw-r--r--stdlib/strtod_nan_main.c3
-rw-r--r--stdlib/tst-strtod-round-data12
-rw-r--r--stdlib/tst-strtod-round-data.h15858
-rw-r--r--stdlib/tst-strtod-round-skeleton.c98
-rw-r--r--stdlib/tst-strtod1i.c129
-rw-r--r--stdlib/tst-strtod2.c135
-rw-r--r--stdlib/tst-strtod3.c102
-rw-r--r--stdlib/tst-strtod4.c104
-rw-r--r--stdlib/tst-strtod5.c116
-rw-r--r--stdlib/tst-strtod5i.c158
-rw-r--r--string/Makefile6
-rw-r--r--string/strerror_l.c35
-rw-r--r--string/strsignal.c36
-rw-r--r--string/test-Xncmp-nonarray.c183
-rw-r--r--string/test-Xnlen-nonarray.c133
-rw-r--r--string/test-strchr.c65
-rw-r--r--string/test-strncmp-nonarray.c4
-rw-r--r--string/test-strnlen-nonarray.c4
-rw-r--r--support/check.h5
-rw-r--r--support/test-driver.c1
-rw-r--r--sysdeps/generic/ldsodefs.h26
-rw-r--r--sysdeps/generic/mremap-failure.h25
-rw-r--r--sysdeps/powerpc/powerpc64/le/Makefile4
-rw-r--r--sysdeps/pthread/Makefile4
-rw-r--r--sysdeps/pthread/tst-setuid3.c37
-rw-r--r--sysdeps/unix/sysv/linux/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/mremap-failure.h30
-rw-r--r--sysdeps/unix/sysv/linux/mremap.c14
-rw-r--r--sysdeps/unix/sysv/linux/tst-linux-mremap1.c63
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/dl-cet.h6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h4
-rw-r--r--sysdeps/x86_64/dl-machine.h27
-rw-r--r--sysdeps/x86_64/dl-tls.c5
-rw-r--r--sysdeps/x86_64/multiarch/strchr-evex-base.S8
-rw-r--r--sysdeps/x86_64/x32/dl-machine.h76
-rw-r--r--wcsmbs/Makefile5
-rw-r--r--wcsmbs/bits/wchar2.h56
-rw-r--r--wcsmbs/test-wcsncmp-nonarray.c5
-rw-r--r--wcsmbs/test-wcsnlen-nonarray.c5
97 files changed, 11299 insertions, 8512 deletions
diff --git a/Makeconfig b/Makeconfig
index 522182a..a6cbb0c 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -360,6 +360,8 @@ whole-archive = -Wl,--whole-archive
# Installed name of the startup code.
# The ELF convention is that the startfile is called crt1.o
start-installed-name = crt1.o
+# Similar to crt1.o, but without _IO_stdin_used.
+start-name-2.0 = crt1-2.0.o
# On systems that do not need a special startfile for statically linked
# binaries, simply set it to the normal name.
ifndef static-start-installed-name
@@ -537,6 +539,25 @@ else # build-static
endif # build-shared
endif # +link
+# Command for linking test programs with crt1.o from glibc 2.0.
++link-2.0-before-inputs = -nostdlib -nostartfiles $(no-pie-ldflag) \
+ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
+ $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
+ $(firstword $(CRT-$(@F)) $(csu-objpfx)$(start-name-2.0)) \
+ $(+preinit) $(+prector)
++link-2.0-before-libc = -o $@ $(+link-2.0-before-inputs) \
+ $(filter-out $(addprefix $(csu-objpfx),start.o \
+ $(start-name-2.0))\
+ $(+preinit) $(link-extra-libs) \
+ $(common-objpfx)libc% $(+postinit),$^) \
+ $(link-extra-libs)
++link-after-libc = $(+postctor) $(+postinit)
+define +link-2.0-tests
+$(CC) $(+link-2.0-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
+ $(+link-after-libc)
+$(call after-link,$@)
+endef
+
# The pretty printer test programs need to be compiled without optimizations
# so they won't confuse gdb. We could use either the 'GCC optimize' pragma
# or the 'optimize' function attribute to achieve this; however, at least on
diff --git a/NEWS b/NEWS
index 3f03e23..8a8a922 100644
--- a/NEWS
+++ b/NEWS
@@ -37,6 +37,7 @@ The following CVEs were fixed in this release:
The following bugs are resolved with this release:
[19622] network: Support aliasing with struct sockaddr
+ [27821] ungetc: Fix backup buffer leak on program exit
[30081] resolv: Do not wait for non-existing second DNS response after error
[30701] time: getutxent misbehaves on 32-bit x86 when _TIME_BITS=64
[30994] REP MOVSB performance suffers from page aliasing on Zen 4
@@ -55,6 +56,7 @@ The following bugs are resolved with this release:
[31372] dynamic-link: _dl_tlsdesc_dynamic doesn't preserve all caller-
saved registers
[31429] build: Glibc failed to build with -march=x86-64-v3
+ [31476] resolv: Track single-request fallback via _res._flags
[31501] dynamic-link: _dl_tlsdesc_dynamic_xsavec may clobber %rbx
[31612] libc: arc4random fails to fallback to /dev/urandom if
getrandom is not present
@@ -73,6 +75,7 @@ The following bugs are resolved with this release:
[31686] dynamic-link: Stack-based buffer overflow in
parse_tunables_string
[31695] libc: pidfd_spawn/pidfd_spawnp leak an fd if clone3 succeeds
+ [31717] elf: Avoid re-initializing already allocated TLS in dlopen
[31719] dynamic-link: --enable-hardcoded-path-in-tests doesn't work
with -Wl,--enable-new-dtags
[31782] Test build failure with recent GCC trunk
@@ -85,6 +88,10 @@ The following bugs are resolved with this release:
is otherwise broken for arithmetic
[31890] resolv: Allow short error responses to match any DNS query
[31965] rseq extension mechanism does not work as intended
+ [31968] mremap implementation in C does not handle arguments correctly
+ [32026] strerror/strsignal TLS not handled correctly for secondary namespaces
+ [32052] Name space violation in fortify wrappers
+ [32137] libio: Attempt wide backup free only for non-legacy code
Version 2.39
diff --git a/Rules b/Rules
index c7db0a4..9010c5d 100644
--- a/Rules
+++ b/Rules
@@ -188,6 +188,7 @@ binaries-all = $(binaries-all-notests) $(binaries-all-tests)
binaries-static-notests = $(others-static)
binaries-static-tests = $(tests-static) $(xtests-static)
binaries-static = $(binaries-static-notests) $(binaries-static-tests)
+binaries-shared-2.0-tests = $(tests-2.0)
ifeq (yesyes,$(have-fpie)$(build-shared))
binaries-pie-tests = $(tests-pie) $(xtests-pie)
binaries-pie-notests = $(others-pie)
@@ -215,7 +216,8 @@ binaries-malloc-hugetlb2-tests =
endif
binaries-pie = $(binaries-pie-tests) $(binaries-pie-notests)
-binaries-shared-tests = $(filter-out $(binaries-pie) $(binaries-static), \
+binaries-shared-tests = $(filter-out $(binaries-pie) $(binaries-static) \
+ $(binaries-shared-2.0-tests), \
$(binaries-all-tests))
binaries-shared-notests = $(filter-out $(binaries-pie) $(binaries-static), \
$(binaries-all-notests))
@@ -235,6 +237,15 @@ $(addprefix $(objpfx),$(binaries-shared-tests)): %: %.o \
$(+link-tests)
endif
+# Linking test programs with crt1.o from glibc 2.0.
+ifneq "$(strip $(binaries-shared-2.0-tests))" ""
+$(addprefix $(objpfx),$(binaries-shared-2.0-tests)): %: %.o \
+ $(link-extra-libs-tests) \
+ $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
+ $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
+ $(+link-2.0-tests)
+endif
+
ifneq "$(strip $(binaries-mcheck-tests))" ""
$(addprefix $(objpfx),$(binaries-mcheck-tests)): %-mcheck: %.o \
$(link-extra-libs-tests) \
diff --git a/csu/Makefile b/csu/Makefile
index ac05ab2..34a8d74 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -33,7 +33,7 @@ elide-routines.os = libc-tls
csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o)
extra-objs = start.o \
$(start-installed-name) g$(start-installed-name) $(csu-dummies) \
- S$(start-installed-name)
+ S$(start-installed-name) $(start-name-2.0)
omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
b$(start-installed-name) $(csu-dummies) \
S$(start-installed-name) \
@@ -138,6 +138,9 @@ ifndef start-installed-name-rule
$(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \
$(objpfx)init.o $(objpfx)static-reloc.o
$(link-relocatable)
+$(objpfx)$(start-name-2.0): $(objpfx)start.o $(objpfx)abi-note.o \
+ $(objpfx)static-reloc.o
+ $(link-relocatable)
$(objpfx)r$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \
$(objpfx)init.o
$(link-relocatable)
diff --git a/debug/pcprofiledump.c b/debug/pcprofiledump.c
index 049a9c2..94530f0 100644
--- a/debug/pcprofiledump.c
+++ b/debug/pcprofiledump.c
@@ -75,6 +75,44 @@ static struct argp argp =
options, parse_opt, args_doc, doc, NULL, more_help
};
+/* Try to read SIZE bytes from FD and store them on BUF. Terminate
+ the process upon read error. Also terminate the process if less
+ than SIZE bytes are remaining in the file. If !IN_HEADER, do not
+ terminate the process if the end of the file is encountered
+ immediately, before any bytes are read.
+
+ Returns true if SIZE bytes have been read, and false if no bytes
+ have been read due to an end-of-file condition. */
+static bool
+read_exactly (int fd, void *buffer, size_t size, bool in_header)
+{
+ char *p = buffer;
+ char *end = p + size;
+ while (p < end)
+ {
+ ssize_t ret = TEMP_FAILURE_RETRY (read (fd, p, end - p));
+ if (ret < 0)
+ {
+ if (in_header)
+ error (EXIT_FAILURE, errno, _("cannot read header"));
+ else
+ error (EXIT_FAILURE, errno, _("cannot read pointer pair"));
+ }
+ if (ret == 0)
+ {
+ if (p == buffer && !in_header)
+ /* Nothing has been read. */
+ return false;
+ if (in_header)
+ error (EXIT_FAILURE, 0, _("unexpected end of file in header"));
+ else
+ error (EXIT_FAILURE, 0,
+ _("unexpected end of file in pointer pair"));
+ }
+ p += ret;
+ }
+ return true;
+}
int
main (int argc, char *argv[])
@@ -110,8 +148,7 @@ main (int argc, char *argv[])
/* Read the first 4-byte word. It contains the information about
the word size and the endianness. */
uint32_t word;
- if (TEMP_FAILURE_RETRY (read (fd, &word, 4)) != 4)
- error (EXIT_FAILURE, errno, _("cannot read header"));
+ read_exactly (fd, &word, sizeof (word), true);
/* Check whether we have to swap the byte order. */
int must_swap = (word & 0x0fffffff) == bswap_32 (0xdeb00000);
@@ -121,56 +158,30 @@ main (int argc, char *argv[])
/* We have two loops, one for 32 bit pointers, one for 64 bit pointers. */
if (word == 0xdeb00004)
{
- union
- {
- uint32_t ptrs[2];
- char bytes[8];
- } pair;
+ uint32_t ptrs[2];
while (1)
{
- size_t len = sizeof (pair);
- size_t n;
-
- while (len > 0
- && (n = TEMP_FAILURE_RETRY (read (fd, &pair.bytes[8 - len],
- len))) != 0)
- len -= n;
-
- if (len != 0)
- /* Nothing to read. */
+ if (!read_exactly (fd, ptrs, sizeof (ptrs), false))
break;
printf ("this = %#010" PRIx32 ", caller = %#010" PRIx32 "\n",
- must_swap ? bswap_32 (pair.ptrs[0]) : pair.ptrs[0],
- must_swap ? bswap_32 (pair.ptrs[1]) : pair.ptrs[1]);
+ must_swap ? bswap_32 (ptrs[0]) : ptrs[0],
+ must_swap ? bswap_32 (ptrs[1]) : ptrs[1]);
}
}
else if (word == 0xdeb00008)
{
- union
- {
- uint64_t ptrs[2];
- char bytes[16];
- } pair;
+ uint64_t ptrs[2];
while (1)
{
- size_t len = sizeof (pair);
- size_t n;
-
- while (len > 0
- && (n = TEMP_FAILURE_RETRY (read (fd, &pair.bytes[8 - len],
- len))) != 0)
- len -= n;
-
- if (len != 0)
- /* Nothing to read. */
+ if (!read_exactly (fd, ptrs, sizeof (ptrs), false))
break;
printf ("this = %#018" PRIx64 ", caller = %#018" PRIx64 "\n",
- must_swap ? bswap_64 (pair.ptrs[0]) : pair.ptrs[0],
- must_swap ? bswap_64 (pair.ptrs[1]) : pair.ptrs[1]);
+ must_swap ? bswap_64 (ptrs[0]) : ptrs[0],
+ must_swap ? bswap_64 (ptrs[1]) : ptrs[1]);
}
}
else
diff --git a/debug/tst-fortify-syslog.c b/debug/tst-fortify-syslog.c
index a7ddbf7..2712acf 100644
--- a/debug/tst-fortify-syslog.c
+++ b/debug/tst-fortify-syslog.c
@@ -22,7 +22,6 @@
#include <syslog.h>
#include <string.h>
#include <unistd.h>
-#include <stdio.h>
#include <support/check.h>
#include <support/support.h>
@@ -46,18 +45,13 @@ handler (int sig)
_exit (127);
}
-#define FAIL() \
- do { \
- printf ("Failure on line %d\n", __LINE__); \
- support_record_failure (); \
- } while (0)
#define CHK_FAIL_START \
chk_fail_ok = 1; \
if (! setjmp (chk_fail_buf)) \
{
#define CHK_FAIL_END \
chk_fail_ok = 0; \
- FAIL (); \
+ FAIL ("not supposed to reach here"); \
}
static void
diff --git a/elf/Makefile b/elf/Makefile
index a50a988..8a5678a 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -414,6 +414,10 @@ tests += \
tst-dlmopen4 \
tst-dlopen-self \
tst-dlopen-tlsmodid \
+ tst-dlopen-tlsreinit1 \
+ tst-dlopen-tlsreinit2 \
+ tst-dlopen-tlsreinit3 \
+ tst-dlopen-tlsreinit4 \
tst-dlopenfail \
tst-dlopenfail-2 \
tst-dlopenrpath \
@@ -443,6 +447,7 @@ tests += \
tst-p_align1 \
tst-p_align2 \
tst-p_align3 \
+ tst-recursive-tls \
tst-relsort1 \
tst-ro-dynamic \
tst-rtld-run-static \
@@ -837,6 +842,9 @@ modules-names += \
tst-dlmopen-twice-mod1 \
tst-dlmopen-twice-mod2 \
tst-dlmopen1mod \
+ tst-dlopen-tlsreinitmod1 \
+ tst-dlopen-tlsreinitmod2 \
+ tst-dlopen-tlsreinitmod3 \
tst-dlopenfaillinkmod \
tst-dlopenfailmod1 \
tst-dlopenfailmod2 \
@@ -877,6 +885,23 @@ modules-names += \
tst-null-argv-lib \
tst-p_alignmod-base \
tst-p_alignmod3 \
+ tst-recursive-tlsmallocmod \
+ tst-recursive-tlsmod0 \
+ tst-recursive-tlsmod1 \
+ tst-recursive-tlsmod2 \
+ tst-recursive-tlsmod3 \
+ tst-recursive-tlsmod4 \
+ tst-recursive-tlsmod5 \
+ tst-recursive-tlsmod6 \
+ tst-recursive-tlsmod7 \
+ tst-recursive-tlsmod8 \
+ tst-recursive-tlsmod9 \
+ tst-recursive-tlsmod10 \
+ tst-recursive-tlsmod11 \
+ tst-recursive-tlsmod12 \
+ tst-recursive-tlsmod13 \
+ tst-recursive-tlsmod14 \
+ tst-recursive-tlsmod15 \
tst-relsort1mod1 \
tst-relsort1mod2 \
tst-ro-dynamic-mod \
@@ -3064,3 +3089,34 @@ CFLAGS-tst-gnu2-tls2mod0.c += -mtls-dialect=$(have-mtls-descriptor)
CFLAGS-tst-gnu2-tls2mod1.c += -mtls-dialect=$(have-mtls-descriptor)
CFLAGS-tst-gnu2-tls2mod2.c += -mtls-dialect=$(have-mtls-descriptor)
endif
+
+$(objpfx)tst-recursive-tls: $(objpfx)tst-recursive-tlsmallocmod.so
+# More objects than DTV_SURPLUS, to trigger DTV reallocation.
+$(objpfx)tst-recursive-tls.out: \
+ $(patsubst %,$(objpfx)tst-recursive-tlsmod%.so, \
+ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)
+$(objpfx)tst-recursive-tlsmod%.os: tst-recursive-tlsmodN.c
+ $(compile-command.c) -DVAR=thread_$* -DFUNC=get_threadvar_$*
+
+# Order matters here. The test needs the constructor for
+# tst-dlopen-tlsreinitmod2.so to be called first.
+LDFLAGS-tst-dlopen-tlsreinitmod1.so = -Wl,--no-as-needed
+$(objpfx)tst-dlopen-tlsreinitmod1.so: \
+ $(objpfx)tst-dlopen-tlsreinitmod3.so $(objpfx)tst-dlopen-tlsreinitmod2.so
+LDFLAGS-tst-dlopen-tlsreinit2 = -Wl,--no-as-needed
+$(objpfx)tst-dlopen-tlsreinit2: \
+ $(objpfx)tst-dlopen-tlsreinitmod3.so $(objpfx)tst-dlopen-tlsreinitmod2.so
+LDFLAGS-tst-dlopen-tlsreinit4 = -Wl,--no-as-needed
+$(objpfx)tst-dlopen-tlsreinit4: \
+ $(objpfx)tst-dlopen-tlsreinitmod3.so $(objpfx)tst-dlopen-tlsreinitmod2.so
+# tst-dlopen-tlsreinitmod2.so is underlinked and refers to
+# tst-dlopen-tlsreinitmod3.so. The dependency is provided via
+# $(objpfx)tst-dlopen-tlsreinitmod1.so.
+tst-dlopen-tlsreinitmod2.so-no-z-defs = yes
+$(objpfx)tst-dlopen-tlsreinit1.out: $(objpfx)tst-dlopen-tlsreinitmod1.so \
+ $(objpfx)tst-dlopen-tlsreinitmod2.so $(objpfx)tst-dlopen-tlsreinitmod3.so
+# Reuse an audit module which provides ample debug logging.
+$(objpfx)tst-dlopen-tlsreinit3.out: $(objpfx)tst-auditmod1.so
+tst-dlopen-tlsreinit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
+$(objpfx)tst-dlopen-tlsreinit4.out: $(objpfx)tst-auditmod1.so
+tst-dlopen-tlsreinit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
diff --git a/elf/dl-open.c b/elf/dl-open.c
index c378da1..8556e7b 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -363,17 +363,8 @@ resize_tls_slotinfo (struct link_map *new)
{
bool any_tls = false;
for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
- {
- struct link_map *imap = new->l_searchlist.r_list[i];
-
- /* Only add TLS memory if this object is loaded now and
- therefore is not yet initialized. */
- if (! imap->l_init_called && imap->l_tls_blocksize > 0)
- {
- _dl_add_to_slotinfo (imap, false);
- any_tls = true;
- }
- }
+ if (_dl_add_to_slotinfo (new->l_searchlist.r_list[i], false))
+ any_tls = true;
return any_tls;
}
@@ -383,22 +374,8 @@ resize_tls_slotinfo (struct link_map *new)
static void
update_tls_slotinfo (struct link_map *new)
{
- unsigned int first_static_tls = new->l_searchlist.r_nlist;
for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
- {
- struct link_map *imap = new->l_searchlist.r_list[i];
-
- /* Only add TLS memory if this object is loaded now and
- therefore is not yet initialized. */
- if (! imap->l_init_called && imap->l_tls_blocksize > 0)
- {
- _dl_add_to_slotinfo (imap, true);
-
- if (imap->l_need_tls_init
- && first_static_tls == new->l_searchlist.r_nlist)
- first_static_tls = i;
- }
- }
+ _dl_add_to_slotinfo (new->l_searchlist.r_list[i], true);
size_t newgen = GL(dl_tls_generation) + 1;
if (__glibc_unlikely (newgen == 0))
@@ -410,13 +387,11 @@ TLS generation counter wrapped! Please report this."));
/* We need a second pass for static tls data, because
_dl_update_slotinfo must not be run while calls to
_dl_add_to_slotinfo are still pending. */
- for (unsigned int i = first_static_tls; i < new->l_searchlist.r_nlist; ++i)
+ for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
{
struct link_map *imap = new->l_searchlist.r_list[i];
- if (imap->l_need_tls_init
- && ! imap->l_init_called
- && imap->l_tls_blocksize > 0)
+ if (imap->l_need_tls_init && imap->l_tls_blocksize > 0)
{
/* For static TLS we have to allocate the memory here and
now, but we can delay updating the DTV. */
diff --git a/elf/dl-tls.c b/elf/dl-tls.c
index 670dbc4..3d529b7 100644
--- a/elf/dl-tls.c
+++ b/elf/dl-tls.c
@@ -75,6 +75,31 @@
/* Default for dl_tls_static_optional. */
#define OPTIONAL_TLS 512
+/* Used to count the number of threads currently executing dynamic TLS
+ updates. Used to avoid recursive malloc calls in __tls_get_addr
+ for an interposed malloc that uses global-dynamic TLS (which is not
+ recommended); see _dl_tls_allocate_active checks. This could be a
+ per-thread flag, but would need TLS access in the dynamic linker. */
+unsigned int _dl_tls_threads_in_update;
+
+static inline void
+_dl_tls_allocate_begin (void)
+{
+ atomic_fetch_add_relaxed (&_dl_tls_threads_in_update, 1);
+}
+
+static inline void
+_dl_tls_allocate_end (void)
+{
+ atomic_fetch_add_relaxed (&_dl_tls_threads_in_update, -1);
+}
+
+static inline bool
+_dl_tls_allocate_active (void)
+{
+ return atomic_load_relaxed (&_dl_tls_threads_in_update) > 0;
+}
+
/* Compute the static TLS surplus based on the namespace count and the
TLS space that can be used for optimizations. */
static inline int
@@ -425,12 +450,18 @@ _dl_allocate_tls_storage (void)
size += TLS_PRE_TCB_SIZE;
#endif
- /* Perform the allocation. Reserve space for the required alignment
- and the pointer to the original allocation. */
+ /* Reserve space for the required alignment and the pointer to the
+ original allocation. */
size_t alignment = GLRO (dl_tls_static_align);
+
+ /* Perform the allocation. */
+ _dl_tls_allocate_begin ();
void *allocated = malloc (size + alignment + sizeof (void *));
if (__glibc_unlikely (allocated == NULL))
- return NULL;
+ {
+ _dl_tls_allocate_end ();
+ return NULL;
+ }
/* Perform alignment and allocate the DTV. */
#if TLS_TCB_AT_TP
@@ -466,6 +497,8 @@ _dl_allocate_tls_storage (void)
result = allocate_dtv (result);
if (result == NULL)
free (allocated);
+
+ _dl_tls_allocate_end ();
return result;
}
@@ -483,6 +516,7 @@ _dl_resize_dtv (dtv_t *dtv, size_t max_modid)
size_t newsize = max_modid + DTV_SURPLUS;
size_t oldsize = dtv[-1].counter;
+ _dl_tls_allocate_begin ();
if (dtv == GL(dl_initial_dtv))
{
/* This is the initial dtv that was either statically allocated in
@@ -502,6 +536,7 @@ _dl_resize_dtv (dtv_t *dtv, size_t max_modid)
if (newp == NULL)
oom ();
}
+ _dl_tls_allocate_end ();
newp[0].counter = newsize;
@@ -517,9 +552,14 @@ _dl_resize_dtv (dtv_t *dtv, size_t max_modid)
/* Allocate initial TLS. RESULT should be a non-NULL pointer to storage
for the TLS space. The DTV may be resized, and so this function may
call malloc to allocate that space. The loader's GL(dl_load_tls_lock)
- is taken when manipulating global TLS-related data in the loader. */
+ is taken when manipulating global TLS-related data in the loader.
+
+ If MAIN_THREAD, this is the first call during process
+ initialization. In this case, TLS initialization for secondary
+ (audit) namespaces is skipped because that has already been handled
+ by dlopen. */
void *
-_dl_allocate_tls_init (void *result, bool init_tls)
+_dl_allocate_tls_init (void *result, bool main_thread)
{
if (result == NULL)
/* The memory allocation failed. */
@@ -592,17 +632,21 @@ _dl_allocate_tls_init (void *result, bool init_tls)
some platforms use in static programs requires it. */
dtv[map->l_tls_modid].pointer.val = dest;
- /* Copy the initialization image and clear the BSS part. For
- audit modules or dependencies with initial-exec TLS, we can not
- set the initial TLS image on default loader initialization
- because it would already be set by the audit setup. However,
- subsequent thread creation would need to follow the default
- behaviour. */
- if (map->l_ns != LM_ID_BASE && !init_tls)
+ /* Copy the initialization image and clear the BSS part.
+ For audit modules or dependencies with initial-exec TLS,
+ we can not set the initial TLS image on default loader
+ initialization because it would already be set by the
+ audit setup, which uses the dlopen code and already
+ clears l_need_tls_init. Calls with !main_thread from
+ pthread_create need to initialze TLS for the current
+ thread regardless of namespace. */
+ if (map->l_ns != LM_ID_BASE && main_thread)
continue;
memset (__mempcpy (dest, map->l_tls_initimage,
map->l_tls_initimage_size), '\0',
map->l_tls_blocksize - map->l_tls_initimage_size);
+ if (main_thread)
+ map->l_need_tls_init = 0;
}
total += cnt;
@@ -626,7 +670,7 @@ _dl_allocate_tls (void *mem)
{
return _dl_allocate_tls_init (mem == NULL
? _dl_allocate_tls_storage ()
- : allocate_dtv (mem), true);
+ : allocate_dtv (mem), false);
}
rtld_hidden_def (_dl_allocate_tls)
@@ -676,7 +720,9 @@ allocate_dtv_entry (size_t alignment, size_t size)
if (powerof2 (alignment) && alignment <= _Alignof (max_align_t))
{
/* The alignment is supported by malloc. */
+ _dl_tls_allocate_begin ();
void *ptr = malloc (size);
+ _dl_tls_allocate_end ();
return (struct dtv_pointer) { ptr, ptr };
}
@@ -688,7 +734,10 @@ allocate_dtv_entry (size_t alignment, size_t size)
/* Perform the allocation. This is the pointer we need to free
later. */
+ _dl_tls_allocate_begin ();
void *start = malloc (alloc_size);
+ _dl_tls_allocate_end ();
+
if (start == NULL)
return (struct dtv_pointer) {};
@@ -826,7 +875,11 @@ _dl_update_slotinfo (unsigned long int req_modid, size_t new_gen)
free implementation. Checking here papers over at
least some dynamic TLS usage by interposed mallocs. */
if (dtv[modid].pointer.to_free != NULL)
- free (dtv[modid].pointer.to_free);
+ {
+ _dl_tls_allocate_begin ();
+ free (dtv[modid].pointer.to_free);
+ _dl_tls_allocate_end ();
+ }
dtv[modid].pointer.val = TLS_DTV_UNALLOCATED;
dtv[modid].pointer.to_free = NULL;
@@ -956,10 +1009,22 @@ __tls_get_addr (GET_ADDR_ARGS)
size_t gen = atomic_load_relaxed (&GL(dl_tls_generation));
if (__glibc_unlikely (dtv[0].counter != gen))
{
- /* Update DTV up to the global generation, see CONCURRENCY NOTES
- in _dl_update_slotinfo. */
- gen = atomic_load_acquire (&GL(dl_tls_generation));
- return update_get_addr (GET_ADDR_PARAM, gen);
+ if (_dl_tls_allocate_active ()
+ && GET_ADDR_MODULE < _dl_tls_initial_modid_limit)
+ /* This is a reentrant __tls_get_addr call, but we can
+ satisfy it because it's an initially-loaded module ID.
+ These TLS slotinfo slots do not change, so the
+ out-of-date generation counter does not matter. However,
+ if not in a TLS update, still update_get_addr below, to
+ get off the slow path eventually. */
+ ;
+ else
+ {
+ /* Update DTV up to the global generation, see CONCURRENCY NOTES
+ in _dl_update_slotinfo. */
+ gen = atomic_load_acquire (&GL(dl_tls_generation));
+ return update_get_addr (GET_ADDR_PARAM, gen);
+ }
}
void *p = dtv[GET_ADDR_MODULE].pointer.val;
@@ -969,7 +1034,7 @@ __tls_get_addr (GET_ADDR_ARGS)
return (char *) p + GET_ADDR_OFFSET;
}
-#endif
+#endif /* SHARED */
/* Look up the module's TLS block as for __tls_get_addr,
@@ -1018,10 +1083,52 @@ _dl_tls_get_addr_soft (struct link_map *l)
return data;
}
+size_t _dl_tls_initial_modid_limit;
void
+_dl_tls_initial_modid_limit_setup (void)
+{
+ struct dtv_slotinfo_list *listp = GL(dl_tls_dtv_slotinfo_list);
+ size_t idx;
+ for (idx = 0; idx < listp->len; ++idx)
+ {
+ struct link_map *l = listp->slotinfo[idx].map;
+ if (l == NULL
+ /* The object can be unloaded, so its modid can be
+ reassociated. */
+ || !(l->l_type == lt_executable || l->l_type == lt_library))
+ break;
+ }
+ _dl_tls_initial_modid_limit = idx;
+}
+
+
+/* Add module to slot information data. If DO_ADD is false, only the
+ required memory is allocated. Must be called with
+ GL (dl_load_tls_lock) acquired. If the function has already been
+ called for the link map L with !DO_ADD, then this function will not
+ raise an exception, otherwise it is possible that it encounters a
+ memory allocation failure.
+
+ Return false if L has already been added to the slotinfo data, or
+ if L has no TLS data. If the returned value is true, L has been
+ added with this call (DO_ADD), or has been added in a previous call
+ (!DO_ADD).
+
+ The expected usage is as follows: Call _dl_add_to_slotinfo for
+ several link maps with DO_ADD set to false, and record if any calls
+ result in a true result. If there was a true result, call
+ _dl_add_to_slotinfo again, this time with DO_ADD set to true. (For
+ simplicity, it's possible to call the function for link maps where
+ the previous result was false.) The return value from the second
+ round of calls can be ignored. If there was true result initially,
+ call _dl_update_slotinfo to update the TLS generation counter. */
+bool
_dl_add_to_slotinfo (struct link_map *l, bool do_add)
{
+ if (l->l_tls_blocksize == 0 || l->l_tls_in_slotinfo)
+ return false;
+
/* Now that we know the object is loaded successfully add
modules containing TLS data to the dtv info table. We
might have to increase its size. */
@@ -1050,9 +1157,11 @@ _dl_add_to_slotinfo (struct link_map *l, bool do_add)
the first slot. */
assert (idx == 0);
+ _dl_tls_allocate_begin ();
listp = (struct dtv_slotinfo_list *)
malloc (sizeof (struct dtv_slotinfo_list)
+ TLS_SLOTINFO_SURPLUS * sizeof (struct dtv_slotinfo));
+ _dl_tls_allocate_end ();
if (listp == NULL)
{
/* We ran out of memory while resizing the dtv slotinfo list. */
@@ -1075,7 +1184,10 @@ cannot create TLS data structures"));
atomic_store_relaxed (&listp->slotinfo[idx].map, l);
atomic_store_relaxed (&listp->slotinfo[idx].gen,
GL(dl_tls_generation) + 1);
+ l->l_tls_in_slotinfo = true;
}
+
+ return true;
}
#if PTHREAD_IN_LIBC
diff --git a/elf/rtld.c b/elf/rtld.c
index ac4bb23..3ca9a11 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -788,6 +788,8 @@ init_tls (size_t naudit)
_dl_fatal_printf ("\
cannot allocate TLS data structures for initial thread\n");
+ _dl_tls_initial_modid_limit_setup ();
+
/* Store for detection of the special case by __tls_get_addr
so it knows not to pass this dtv to the normal realloc. */
GL(dl_initial_dtv) = GET_DTV (tcbp);
@@ -2335,7 +2337,7 @@ dl_main (const ElfW(Phdr) *phdr,
into the main thread's TLS area, which we allocated above.
Note: thread-local variables must only be accessed after completing
the next step. */
- _dl_allocate_tls_init (tcbp, false);
+ _dl_allocate_tls_init (tcbp, true);
/* And finally install it for the main thread. */
if (! __rtld_tls_init_tp_called)
diff --git a/elf/tst-dlopen-tlsreinit1.c b/elf/tst-dlopen-tlsreinit1.c
new file mode 100644
index 0000000..2016b9b
--- /dev/null
+++ b/elf/tst-dlopen-tlsreinit1.c
@@ -0,0 +1,40 @@
+/* Test that dlopen preserves already accessed TLS (bug 31717).
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdbool.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+#include <ctype.h>
+
+static int
+do_test (void)
+{
+ void *handle = xdlopen ("tst-dlopen-tlsreinitmod1.so", RTLD_NOW);
+
+ bool *tlsreinitmod3_tested = xdlsym (handle, "tlsreinitmod3_tested");
+ TEST_VERIFY (*tlsreinitmod3_tested);
+
+ xdlclose (handle);
+
+ /* This crashes if the libc.so.6 TLS image has been reverted. */
+ TEST_VERIFY (!isupper ('@'));
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-dlopen-tlsreinit2.c b/elf/tst-dlopen-tlsreinit2.c
new file mode 100644
index 0000000..90ad2c7
--- /dev/null
+++ b/elf/tst-dlopen-tlsreinit2.c
@@ -0,0 +1,39 @@
+/* Test that dlopen preserves already accessed TLS (bug 31717).
+ Variant with initially-linked modules.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <ctype.h>
+#include <stdbool.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+
+
+static int
+do_test (void)
+{
+ /* Defined in tst-dlopen-tlsreinitmod3.so. */
+ extern bool tlsreinitmod3_tested;
+ TEST_VERIFY (tlsreinitmod3_tested);
+
+ /* This crashes if the libc.so.6 TLS image has been reverted. */
+ TEST_VERIFY (!isupper ('@'));
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-dlopen-tlsreinit3.c b/elf/tst-dlopen-tlsreinit3.c
new file mode 100644
index 0000000..79bd585
--- /dev/null
+++ b/elf/tst-dlopen-tlsreinit3.c
@@ -0,0 +1,2 @@
+/* Same code, but run with LD_AUDIT=tst-auditmod1.so. */
+#include "tst-dlopen-tlsreinit1.c"
diff --git a/elf/tst-dlopen-tlsreinit4.c b/elf/tst-dlopen-tlsreinit4.c
new file mode 100644
index 0000000..344c921
--- /dev/null
+++ b/elf/tst-dlopen-tlsreinit4.c
@@ -0,0 +1,2 @@
+/* Same code, but run with LD_AUDIT=tst-auditmod1.so. */
+#include "tst-dlopen-tlsreinit2.c"
diff --git a/elf/tst-dlopen-tlsreinitmod1.c b/elf/tst-dlopen-tlsreinitmod1.c
new file mode 100644
index 0000000..354cc3d
--- /dev/null
+++ b/elf/tst-dlopen-tlsreinitmod1.c
@@ -0,0 +1,20 @@
+/* Test that dlopen preserves already accessed TLS (bug 31717), module 1.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This module triggers loading of tst-dlopen-tlsreinitmod2.so and
+ tst-dlopen-tlsreinitmod3.so. */
diff --git a/elf/tst-dlopen-tlsreinitmod2.c b/elf/tst-dlopen-tlsreinitmod2.c
new file mode 100644
index 0000000..677e69b
--- /dev/null
+++ b/elf/tst-dlopen-tlsreinitmod2.c
@@ -0,0 +1,30 @@
+/* Test that dlopen preserves already accessed TLS (bug 31717), module 2.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+/* Defined in tst-dlopen-tlsreinitmod3.so. This an underlinked symbol
+ dependency. */
+extern void call_tlsreinitmod3 (void);
+
+static void __attribute__ ((constructor))
+tlsreinitmod2_init (void)
+{
+ puts ("info: constructor of tst-dlopen-tlsreinitmod2.so invoked");
+ call_tlsreinitmod3 ();
+}
diff --git a/elf/tst-dlopen-tlsreinitmod3.c b/elf/tst-dlopen-tlsreinitmod3.c
new file mode 100644
index 0000000..ef769c5
--- /dev/null
+++ b/elf/tst-dlopen-tlsreinitmod3.c
@@ -0,0 +1,102 @@
+/* Test that dlopen preserves already accessed TLS (bug 31717), module 3.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* Used to verify from the main program that the test ran. */
+bool tlsreinitmod3_tested;
+
+/* This TLS variable must not revert back to the initial state after
+ dlopen. */
+static __thread int tlsreinitmod3_state = 1;
+
+/* Set from the ELF constructor during dlopen. */
+static bool tlsreinitmod3_constructed;
+
+/* Second half of test, behind a compiler barrier. The compiler
+ barrier is necessary to prevent carrying over TLS address
+ information from call_tlsreinitmod3 to call_tlsreinitmod3_tail. */
+void call_tlsreinitmod3_tail (void *self) __attribute__ ((weak));
+
+/* Called from tst-dlopen-tlsreinitmod2.so. */
+void
+call_tlsreinitmod3 (void)
+{
+ printf ("info: call_tlsreinitmod3 invoked (state=%d)\n",
+ tlsreinitmod3_state);
+
+ if (tlsreinitmod3_constructed)
+ {
+ puts ("error: call_tlsreinitmod3 called after ELF constructor");
+ fflush (stdout);
+ /* Cannot rely on test harness due to dynamic linking. */
+ _exit (1);
+ }
+
+ tlsreinitmod3_state = 2;
+
+ /* Self-dlopen. This will run the ELF constructor. */
+ void *self = dlopen ("tst-dlopen-tlsreinitmod3.so", RTLD_NOW);
+ if (self == NULL)
+ {
+ printf ("error: dlopen: %s\n", dlerror ());
+ fflush (stdout);
+ /* Cannot rely on test harness due to dynamic linking. */
+ _exit (1);
+ }
+
+ call_tlsreinitmod3_tail (self);
+}
+
+void
+call_tlsreinitmod3_tail (void *self)
+{
+ printf ("info: dlopen returned in tlsreinitmod3 (state=%d)\n",
+ tlsreinitmod3_state);
+
+ if (!tlsreinitmod3_constructed)
+ {
+ puts ("error: dlopen did not call tlsreinitmod3 ELF constructor");
+ fflush (stdout);
+ /* Cannot rely on test harness due to dynamic linking. */
+ _exit (1);
+ }
+
+ if (tlsreinitmod3_state != 2)
+ {
+ puts ("error: TLS state reverted in tlsreinitmod3");
+ fflush (stdout);
+ /* Cannot rely on test harness due to dynamic linking. */
+ _exit (1);
+ }
+
+ dlclose (self);
+
+ /* Signal test completion to the main program. */
+ tlsreinitmod3_tested = true;
+}
+
+static void __attribute__ ((constructor))
+tlsreinitmod3_init (void)
+{
+ puts ("info: constructor of tst-dlopen-tlsreinitmod3.so invoked");
+ tlsreinitmod3_constructed = true;
+}
diff --git a/elf/tst-recursive-tls.c b/elf/tst-recursive-tls.c
new file mode 100644
index 0000000..716d1f7
--- /dev/null
+++ b/elf/tst-recursive-tls.c
@@ -0,0 +1,60 @@
+/* Test with interposed malloc with dynamic TLS.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <stdio.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+
+/* Defined in tst-recursive-tlsmallocmod.so. */
+extern __thread unsigned int malloc_subsytem_counter;
+
+static int
+do_test (void)
+{
+ /* 16 is large enough to exercise the DTV resizing case. */
+ void *handles[16];
+
+ for (unsigned int i = 0; i < array_length (handles); ++i)
+ {
+ /* Re-use the TLS slot for module 0. */
+ if (i > 0)
+ xdlclose (handles[0]);
+
+ char soname[30];
+ snprintf (soname, sizeof (soname), "tst-recursive-tlsmod%u.so", i);
+ handles[i] = xdlopen (soname, RTLD_NOW);
+
+ if (i > 0)
+ {
+ handles[0] = xdlopen ("tst-recursive-tlsmod0.so", RTLD_NOW);
+ int (*fptr) (void) = xdlsym (handles[0], "get_threadvar_0");
+ /* May trigger TLS storage allocation using malloc. */
+ TEST_COMPARE (fptr (), 0);
+ }
+ }
+
+ for (unsigned int i = 0; i < array_length (handles); ++i)
+ xdlclose (handles[i]);
+
+ printf ("info: malloc subsystem calls: %u\n", malloc_subsytem_counter);
+ TEST_VERIFY (malloc_subsytem_counter > 0);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-recursive-tlsmallocmod.c b/elf/tst-recursive-tlsmallocmod.c
new file mode 100644
index 0000000..c24e994
--- /dev/null
+++ b/elf/tst-recursive-tlsmallocmod.c
@@ -0,0 +1,64 @@
+/* Interposed malloc with dynamic TLS.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+#include <dlfcn.h>
+
+__thread unsigned int malloc_subsytem_counter;
+
+static __typeof (malloc) *malloc_fptr;
+static __typeof (free) *free_fptr;
+static __typeof (calloc) *calloc_fptr;
+static __typeof (realloc) *realloc_fptr;
+
+static void __attribute__ ((constructor))
+init (void)
+{
+ malloc_fptr = dlsym (RTLD_NEXT, "malloc");
+ free_fptr = dlsym (RTLD_NEXT, "free");
+ calloc_fptr = dlsym (RTLD_NEXT, "calloc");
+ realloc_fptr = dlsym (RTLD_NEXT, "realloc");
+}
+
+void *
+malloc (size_t size)
+{
+ ++malloc_subsytem_counter;
+ return malloc_fptr (size);
+}
+
+void
+free (void *ptr)
+{
+ ++malloc_subsytem_counter;
+ return free_fptr (ptr);
+}
+
+void *
+calloc (size_t a, size_t b)
+{
+ ++malloc_subsytem_counter;
+ return calloc_fptr (a, b);
+}
+
+void *
+realloc (void *ptr, size_t size)
+{
+ ++malloc_subsytem_counter;
+ return realloc_fptr (ptr, size);
+}
diff --git a/elf/tst-recursive-tlsmodN.c b/elf/tst-recursive-tlsmodN.c
new file mode 100644
index 0000000..bb7592a
--- /dev/null
+++ b/elf/tst-recursive-tlsmodN.c
@@ -0,0 +1,28 @@
+/* Test module with global-dynamic TLS. Used to trigger DTV reallocation.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Compiled with VAR and FUNC set via -D. FUNC requires some
+ relocation against TLS variable VAR. */
+
+__thread int VAR;
+
+int
+FUNC (void)
+{
+ return VAR;
+}
diff --git a/include/libc-internal.h b/include/libc-internal.h
index 87ac591..1ef43ff 100644
--- a/include/libc-internal.h
+++ b/include/libc-internal.h
@@ -53,6 +53,9 @@ extern __typeof (__profile_frequency) __profile_frequency attribute_hidden;
is not for an audit module, not loaded via dlmopen, and not loaded
via static dlopen either). */
extern _Bool __libc_initial attribute_hidden;
+#else
+/* The static libc is always the initial namespace. */
+# define __libc_initial ((_Bool) 1)
#endif
#endif /* _LIBC_INTERNAL */
diff --git a/include/link.h b/include/link.h
index cb0d7d8..5ed445d 100644
--- a/include/link.h
+++ b/include/link.h
@@ -212,6 +212,7 @@ struct link_map
unsigned int l_find_object_processed:1; /* Zero if _dl_find_object_update
needs to process this
lt_library map. */
+ unsigned int l_tls_in_slotinfo:1; /* TLS slotinfo updated in dlopen. */
/* NODELETE status of the map. Only valid for maps of type
lt_loaded. Lazy binding sets l_nodelete_active directly,
diff --git a/libio/Makefile b/libio/Makefile
index 27623c9..b92aeaf 100644
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -212,6 +212,12 @@ aux := fileops genops stdfiles stdio strops
ifeq ($(build-shared),yes)
generated += tst-bz24228.mtrace tst-bz24228.check
aux += oldfileops oldstdfiles
+tests += \
+ tst-stderr-compat \
+# tests
+tests-2.0 += \
+ tst-stderr-compat \
+# tests-2.0
endif
shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops \
diff --git a/libio/bits/stdio2.h b/libio/bits/stdio2.h
index f9e8d37..0dc4e87 100644
--- a/libio/bits/stdio2.h
+++ b/libio/bits/stdio2.h
@@ -195,24 +195,24 @@ __fortify_function __wur __fortified_attr_access (__write_only__, 1, 2)
__nonnull ((3)) char *
fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
{
- size_t sz = __glibc_objsize (__s);
- if (__glibc_safe_or_unknown_len (__n, sizeof (char), sz))
+ size_t __sz = __glibc_objsize (__s);
+ if (__glibc_safe_or_unknown_len (__n, sizeof (char), __sz))
return __fgets_alias (__s, __n, __stream);
- if (__glibc_unsafe_len (__n, sizeof (char), sz))
- return __fgets_chk_warn (__s, sz, __n, __stream);
- return __fgets_chk (__s, sz, __n, __stream);
+ if (__glibc_unsafe_len (__n, sizeof (char), __sz))
+ return __fgets_chk_warn (__s, __sz, __n, __stream);
+ return __fgets_chk (__s, __sz, __n, __stream);
}
__fortify_function __wur __nonnull ((4)) size_t
fread (void *__restrict __ptr, size_t __size, size_t __n,
FILE *__restrict __stream)
{
- size_t sz = __glibc_objsize0 (__ptr);
- if (__glibc_safe_or_unknown_len (__n, __size, sz))
+ size_t __sz = __glibc_objsize0 (__ptr);
+ if (__glibc_safe_or_unknown_len (__n, __size, __sz))
return __fread_alias (__ptr, __size, __n, __stream);
- if (__glibc_unsafe_len (__n, __size, sz))
- return __fread_chk_warn (__ptr, sz, __size, __n, __stream);
- return __fread_chk (__ptr, sz, __size, __n, __stream);
+ if (__glibc_unsafe_len (__n, __size, __sz))
+ return __fread_chk_warn (__ptr, __sz, __size, __n, __stream);
+ return __fread_chk (__ptr, __sz, __size, __n, __stream);
}
#ifdef __USE_GNU
@@ -220,12 +220,12 @@ __fortify_function __wur __fortified_attr_access (__write_only__, 1, 2)
__nonnull ((3)) char *
fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream)
{
- size_t sz = __glibc_objsize (__s);
- if (__glibc_safe_or_unknown_len (__n, sizeof (char), sz))
+ size_t __sz = __glibc_objsize (__s);
+ if (__glibc_safe_or_unknown_len (__n, sizeof (char), __sz))
return __fgets_unlocked_alias (__s, __n, __stream);
- if (__glibc_unsafe_len (__n, sizeof (char), sz))
- return __fgets_unlocked_chk_warn (__s, sz, __n, __stream);
- return __fgets_unlocked_chk (__s, sz, __n, __stream);
+ if (__glibc_unsafe_len (__n, sizeof (char), __sz))
+ return __fgets_unlocked_chk_warn (__s, __sz, __n, __stream);
+ return __fgets_unlocked_chk (__s, __sz, __n, __stream);
}
#endif
@@ -235,8 +235,8 @@ __fortify_function __wur __nonnull ((4)) size_t
fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
FILE *__restrict __stream)
{
- size_t sz = __glibc_objsize0 (__ptr);
- if (__glibc_safe_or_unknown_len (__n, __size, sz))
+ size_t __sz = __glibc_objsize0 (__ptr);
+ if (__glibc_safe_or_unknown_len (__n, __size, __sz))
{
# ifdef __USE_EXTERN_INLINES
if (__builtin_constant_p (__size)
@@ -261,9 +261,9 @@ fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
# endif
return __fread_unlocked_alias (__ptr, __size, __n, __stream);
}
- if (__glibc_unsafe_len (__n, __size, sz))
- return __fread_unlocked_chk_warn (__ptr, sz, __size, __n, __stream);
- return __fread_unlocked_chk (__ptr, sz, __size, __n, __stream);
+ if (__glibc_unsafe_len (__n, __size, __sz))
+ return __fread_unlocked_chk_warn (__ptr, __sz, __size, __n, __stream);
+ return __fread_unlocked_chk (__ptr, __sz, __size, __n, __stream);
}
#endif
diff --git a/libio/genops.c b/libio/genops.c
index bc45e60..02292be 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -635,7 +635,7 @@ _IO_sputbackc (FILE *fp, int c)
{
int result;
- if (fp->_IO_read_ptr > fp->_IO_read_base
+ if (fp->_IO_read_ptr > fp->_IO_read_base && !_IO_in_backup (fp)
&& (unsigned char)fp->_IO_read_ptr[-1] == (unsigned char)c)
{
fp->_IO_read_ptr--;
@@ -789,6 +789,12 @@ _IO_unbuffer_all (void)
legacy = 1;
#endif
+ /* Free up the backup area if it was ever allocated. */
+ if (_IO_have_backup (fp))
+ _IO_free_backup_area (fp);
+ if (!legacy && fp->_mode > 0 && _IO_have_wbackup (fp))
+ _IO_free_wbackup_area (fp);
+
if (! (fp->_flags & _IO_UNBUFFERED)
/* Iff stream is un-orientated, it wasn't used. */
&& (legacy || fp->_mode != 0))
diff --git a/libio/libioP.h b/libio/libioP.h
index 1af287b..616253f 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -577,8 +577,8 @@ extern void _IO_old_init (FILE *fp, int flags) __THROW;
((__fp)->_wide_data->_IO_write_base \
= (__fp)->_wide_data->_IO_write_ptr = __p, \
(__fp)->_wide_data->_IO_write_end = (__ep))
-#define _IO_have_backup(fp) ((fp)->_IO_save_base != NULL)
-#define _IO_have_wbackup(fp) ((fp)->_wide_data->_IO_save_base != NULL)
+#define _IO_have_backup(fp) ((fp)->_IO_backup_base != NULL)
+#define _IO_have_wbackup(fp) ((fp)->_wide_data->_IO_backup_base != NULL)
#define _IO_in_backup(fp) ((fp)->_flags & _IO_IN_BACKUP)
#define _IO_have_markers(fp) ((fp)->_markers != NULL)
#define _IO_blen(fp) ((fp)->_IO_buf_end - (fp)->_IO_buf_base)
diff --git a/libio/tst-stderr-compat.c b/libio/tst-stderr-compat.c
new file mode 100644
index 0000000..8221415
--- /dev/null
+++ b/libio/tst-stderr-compat.c
@@ -0,0 +1,52 @@
+/* Test that fclose works on stderr from glibc 2.0.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+# define _LIBC
+# define _IO_USE_OLD_IO_FILE
+# include <stdio.h>
+# include <support/check.h>
+
+extern FILE _IO_stderr_;
+compat_symbol_reference (libc, _IO_stderr_, _IO_stderr_, GLIBC_2_0);
+compat_symbol_reference (libc, fclose, fclose, GLIBC_2_0);
+
+__attribute__ ((weak, noclone, noinline))
+void
+do_fclose (FILE *fp)
+{
+ TEST_VERIFY_EXIT (fclose (fp) == 0);
+}
+
+static int
+do_test (void)
+{
+ do_fclose (&_IO_stderr_);
+ return 0;
+}
+#else
+static int
+do_test (void)
+{
+ return 0;
+}
+#endif
+
+#include <support/test-driver.c>
diff --git a/localedata/tst-ctype.c b/localedata/tst-ctype.c
index 9de979a..a236897 100644
--- a/localedata/tst-ctype.c
+++ b/localedata/tst-ctype.c
@@ -21,6 +21,8 @@
#include <stdio.h>
#include <string.h>
+#include <support/check.h>
+
static const char lower[] = "abcdefghijklmnopqrstuvwxyz";
static const char upper[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
@@ -53,19 +55,11 @@ static struct classes
#define nclasses (sizeof (classes) / sizeof (classes[0]))
-#define FAIL(str, args...) \
- { \
- printf (" " str "\n", ##args); \
- ++errors; \
- }
-
-
static int
do_test (void)
{
const char *cp;
const char *cp2;
- int errors = 0;
char *inpline = NULL;
size_t inplinelen = 0;
char *resline = NULL;
@@ -394,11 +388,8 @@ punct = %04x alnum = %04x\n",
{
if (((__ctype_b[(unsigned int) *inp] & classes[n].mask) != 0)
!= (*resp != '0'))
- {
- printf (" is%s('%c' = '\\x%02x') %s true\n", inpline,
- *inp, *inp, *resp == '1' ? "not" : "is");
- ++errors;
- }
+ FAIL (" is%s('%c' = '\\x%02x') %s true\n", inpline,
+ *inp, *inp, *resp == '1' ? "not" : "is");
++inp;
++resp;
}
@@ -408,11 +399,8 @@ punct = %04x alnum = %04x\n",
while (*inp != '\0')
{
if (tolower (*inp) != *resp)
- {
- printf (" tolower('%c' = '\\x%02x') != '%c'\n",
- *inp, *inp, *resp);
- ++errors;
- }
+ FAIL (" tolower('%c' = '\\x%02x') != '%c'\n",
+ *inp, *inp, *resp);
++inp;
++resp;
}
@@ -422,11 +410,8 @@ punct = %04x alnum = %04x\n",
while (*inp != '\0')
{
if (toupper (*inp) != *resp)
- {
- printf (" toupper('%c' = '\\x%02x') != '%c'\n",
- *inp, *inp, *resp);
- ++errors;
- }
+ FAIL (" toupper('%c' = '\\x%02x') != '%c'\n",
+ *inp, *inp, *resp);
++inp;
++resp;
}
@@ -436,14 +421,7 @@ punct = %04x alnum = %04x\n",
}
- if (errors != 0)
- {
- printf (" %d error%s for `%s' locale\n\n\n", errors,
- errors == 1 ? "" : "s", setlocale (LC_ALL, NULL));
- return 1;
- }
-
- printf (" No errors for `%s' locale\n\n\n", setlocale (LC_ALL, NULL));
+ printf ("Completed testing for `%s' locale\n\n\n", setlocale (LC_ALL, NULL));
return 0;
}
diff --git a/malloc/Makefile b/malloc/Makefile
index cc14cf6..ef7d4fa 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -28,6 +28,8 @@ tests := \
mallocbug \
tst-aligned-alloc \
tst-aligned-alloc-random \
+ tst-aligned-alloc-random-thread \
+ tst-aligned-alloc-random-thread-cross \
tst-alloc_buffer \
tst-calloc \
tst-free-errno \
@@ -151,6 +153,8 @@ ifeq ($(have-GLIBC_2.23)$(build-shared),yesyes)
# the tests expect specific internal behavior that is changed due to linking to
# libmcheck.a.
tests-exclude-mcheck = \
+ tst-aligned-alloc-random-thread \
+ tst-aligned-alloc-random-thread-cross \
tst-compathooks-off \
tst-compathooks-on \
tst-malloc-backtrace \
@@ -417,7 +421,11 @@ $(objpfx)tst-mallocstate: $(objpfx)libc_malloc_debug.so
$(objpfx)tst-mallocstate-malloc-check: $(objpfx)libc_malloc_debug.so
$(objpfx)tst-aligned-alloc-random.out: $(objpfx)tst-aligned_alloc-lib.so
+$(objpfx)tst-aligned-alloc-random-thread.out: $(objpfx)tst-aligned_alloc-lib.so
+$(objpfx)tst-aligned-alloc-random-thread-cross.out: $(objpfx)tst-aligned_alloc-lib.so
$(objpfx)tst-malloc-random.out: $(objpfx)tst-aligned_alloc-lib.so
tst-aligned-alloc-random-ENV = LD_PRELOAD=$(objpfx)tst-aligned_alloc-lib.so
+tst-aligned-alloc-random-thread-ENV = LD_PRELOAD=$(objpfx)tst-aligned_alloc-lib.so
+tst-aligned-alloc-random-thread-cross-ENV = LD_PRELOAD=$(objpfx)tst-aligned_alloc-lib.so
tst-malloc-random-ENV = LD_PRELOAD=$(objpfx)tst-aligned_alloc-lib.so
diff --git a/malloc/tst-aligned-alloc-random-thread-cross.c b/malloc/tst-aligned-alloc-random-thread-cross.c
new file mode 100644
index 0000000..360ecc5
--- /dev/null
+++ b/malloc/tst-aligned-alloc-random-thread-cross.c
@@ -0,0 +1,19 @@
+/* multi-threaded memory allocation and cross-thread deallocation test.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+#define CROSS_THREAD_DEALLOC
+#include "tst-aligned-alloc-random-thread.c"
diff --git a/malloc/tst-aligned-alloc-random-thread.c b/malloc/tst-aligned-alloc-random-thread.c
new file mode 100644
index 0000000..e95f792
--- /dev/null
+++ b/malloc/tst-aligned-alloc-random-thread.c
@@ -0,0 +1,145 @@
+/* multi-threaded memory allocation/deallocation test.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xthread.h>
+#include <support/test-driver.h>
+#include <sys/sysinfo.h>
+#include <unistd.h>
+
+#ifndef ITERATIONS
+# define ITERATIONS 16
+#endif
+
+#ifndef NUM_THREADS
+# define NUM_THREADS 8
+#endif
+
+#ifndef NUM_ALLOCATIONS
+# define NUM_ALLOCATIONS 2048
+#endif
+
+static pthread_barrier_t barrier;
+
+__thread unsigned int seed;
+
+typedef struct
+{
+ int id;
+ pthread_t thread;
+} thread;
+
+thread threads[NUM_THREADS];
+
+void *allocations[NUM_THREADS][NUM_ALLOCATIONS];
+
+void
+run_thread_dealloc (int id)
+{
+ for (int i = 0; i < NUM_ALLOCATIONS; i++)
+ {
+ free (allocations[id][i]);
+ allocations[id][i] = NULL;
+ }
+}
+
+void
+run_thread_alloc (int id)
+{
+ size_t msb, size;
+ for (int i = 0; i < NUM_ALLOCATIONS; i++)
+ {
+ msb = 1 << rand_r (&seed) % 16;
+ size = msb + rand_r (&seed) % msb;
+ allocations[id][i] = malloc (size);
+ TEST_VERIFY_EXIT (allocations[id][i] != NULL);
+ }
+}
+
+void *
+run_allocations (void *arg)
+{
+ int id = *((int *) arg);
+ seed = time (NULL) + id;
+
+ /* Stage 1: First half o the threads allocating memory and the second
+ * half waiting for them to finish
+ */
+ if (id < NUM_THREADS / 2)
+ run_thread_alloc (id);
+
+ xpthread_barrier_wait (&barrier);
+
+ /* Stage 2: Half of the threads allocationg memory and the other
+ * half deallocating:
+ * - In the non cross-thread dealloc scenario the first half will be
+ * deallocating the memory allocated by themselves in stage 1 and the
+ * second half will be allocating memory.
+ * - In the cross-thread dealloc scenario the first half will continue
+ * to allocate memory and the second half will deallocate the memory
+ * allocated by the first half in stage 1.
+ */
+ if (id < NUM_THREADS / 2)
+#ifndef CROSS_THREAD_DEALLOC
+ run_thread_dealloc (id);
+#else
+ run_thread_alloc (id + NUM_THREADS / 2);
+#endif
+ else
+#ifndef CROSS_THREAD_DEALLOC
+ run_thread_alloc (id);
+#else
+ run_thread_dealloc (id - NUM_THREADS / 2);
+#endif
+
+ xpthread_barrier_wait (&barrier);
+
+ // Stage 3: Second half of the threads deallocating and the first half
+ // waiting for them to finish.
+ if (id >= NUM_THREADS / 2)
+ run_thread_dealloc (id);
+
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ xpthread_barrier_init (&barrier, NULL, NUM_THREADS);
+
+ for (int i = 0; i < ITERATIONS; i++)
+ {
+ for (int t = 0; t < NUM_THREADS; t++)
+ {
+ threads[t].id = t;
+ threads[t].thread
+ = xpthread_create (NULL, run_allocations, &threads[t].id);
+ }
+
+ for (int t = 0; t < NUM_THREADS; t++)
+ xpthread_join (threads[t].thread);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/malloc/tst-aligned_alloc-lib.c b/malloc/tst-aligned_alloc-lib.c
index 0205df5..9ef1f83 100644
--- a/malloc/tst-aligned_alloc-lib.c
+++ b/malloc/tst-aligned_alloc-lib.c
@@ -17,37 +17,38 @@
License along with the GNU C Library; see the file COPYING.LIB. If
not, see <https://www.gnu.org/licenses/>. */
-#include <array_length.h>
#include <libc-symbols.h>
#include <stdlib.h>
+#include <time.h>
extern void *__libc_malloc (size_t size);
extern void *__libc_calloc (size_t n, size_t size);
+__thread unsigned int seed = 0;
+
int aligned_alloc_count = 0;
int libc_malloc_count = 0;
int libc_calloc_count = 0;
-/* Get a random alignment value. Biased towards the smaller values. Must be
- a power of 2. */
-static size_t get_random_alignment (void)
-{
- size_t aligns[] = {
- 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384
- };
-
- return aligns[random () % array_length (aligns)];
-}
-
-static void *get_random_alloc (size_t size)
+static void *
+get_random_alloc (size_t size)
{
void *retval;
size_t align;
+ struct timespec tp;
+
+ if (seed == 0)
+ {
+ clock_gettime (CLOCK_REALTIME, &tp);
+ seed = tp.tv_nsec;
+ }
- switch (random() % 3)
- {
+ switch (rand_r (&seed) % 3)
+ {
case 1:
- align = get_random_alignment ();
+ /* Get a random alignment value. Biased towards the smaller
+ * values up to 16384. Must be a power of 2. */
+ align = 1 << rand_r (&seed) % 15;
retval = aligned_alloc (align, size);
aligned_alloc_count++;
break;
@@ -59,13 +60,13 @@ static void *get_random_alloc (size_t size)
retval = __libc_malloc (size);
libc_malloc_count++;
break;
- }
+ }
return retval;
}
-
-void * __random_malloc (size_t size)
+void *
+__random_malloc (size_t size)
{
return get_random_alloc (size);
}
diff --git a/manual/llio.texi b/manual/llio.texi
index fae49d1..a65230d 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -1781,7 +1781,7 @@ There is no existing mapping in at least part of the given region.
@end deftypefun
-@deftypefun {void *} mremap (void *@var{address}, size_t @var{length}, size_t @var{new_length}, int @var{flag})
+@deftypefun {void *} mremap (void *@var{address}, size_t @var{length}, size_t @var{new_length}, int @var{flag}, ... /* void *@var{new_address} */)
@standards{GNU, sys/mman.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
@@ -1790,12 +1790,40 @@ area. @var{address} and @var{length} must cover a region entirely mapped
in the same @code{mmap} statement. A new mapping with the same
characteristics will be returned with the length @var{new_length}.
-One option is possible, @code{MREMAP_MAYMOVE}. If it is given in
-@var{flags}, the system may remove the existing mapping and create a new
-one of the desired length in another location.
+Possible flags are
-The address of the resulting mapping is returned, or @math{-1}. Possible
-error codes include:
+@table @code
+
+@item MREMAP_MAYMOVE
+If it is given in @var{flags}, the system may remove the existing mapping
+and create a new one of the desired length in another location.
+
+@item MREMAP_FIXED
+If it is given in @var{flags}, @code{mremap} accepts a fifth argument,
+@code{void *new_address}, which specifies a page-aligned address to
+which the mapping must be moved. Any previous mapping at the address
+range specified by @var{new_address} and @var{new_size} is unmapped.
+
+@code{MREMAP_FIXED} must be used together with @code{MREMAP_MAYMOVE}.
+
+@item MREMAP_DONTUNMAP
+If it is given in @var{flags}, @code{mremap} accepts a fifth argument,
+@code{void *new_address}, which specifies a page-aligned address. Any
+previous mapping at the address range specified by @var{new_address} and
+@var{new_size} is unmapped. If @var{new_address} is @code{NULL}, the
+kernel chooses the page-aligned address at which to create the mapping.
+Otherwise, the kernel takes it as a hint about where to place the mapping.
+The mapping at the address range specified by @var{old_address} and
+@var{old_size} isn't unmapped.
+
+@code{MREMAP_DONTUNMAP} must be used together with @code{MREMAP_MAYMOVE}.
+@var{old_size} must be the same as @var{new_size}. This flag bit is
+Linux-specific.
+
+@end table
+
+The address of the resulting mapping is returned, or @code{MAP_FAILED}.
+Possible error codes include:
@table @code
@@ -1804,7 +1832,7 @@ There is no existing mapping in at least part of the original region, or
the region covers two or more distinct mappings.
@item EINVAL
-The address given is misaligned or inappropriate.
+Any arguments are inappropriate, including unknown @var{flags} values.
@item EAGAIN
The region has pages locked, and if extended it would exceed the
diff --git a/manual/resource.texi b/manual/resource.texi
index 37462ab..743cc94 100644
--- a/manual/resource.texi
+++ b/manual/resource.texi
@@ -192,8 +192,8 @@ If the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a
@standards{BSD, sys/resource.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
@c Direct syscall on most systems; lock-taking critical section on HURD.
-Store the current and maximum limits for the resource @var{resource}
-in @code{*@var{rlp}}.
+Change the current and maximum limits of the process for the resource
+@var{resource} to the values provided in @code{*@var{rlp}}.
The return value is @code{0} on success and @code{-1} on failure. The
following @code{errno} error condition is possible:
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 002fce7..393ed9c 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -903,21 +903,17 @@ This function is a GNU extension.
@deftypefun int putc (int @var{c}, FILE *@var{stream})
@standards{ISO, stdio.h}
@safety{@prelim{}@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{} @aculock{}}}
-This is just like @code{fputc}, except that most systems implement it as
-a macro, making it faster. One consequence is that it may evaluate the
-@var{stream} argument more than once, which is an exception to the
-general rule for macros. @code{putc} is usually the best function to
-use for writing a single character.
+This is just like @code{fputc}, except that it may be implemented as
+a macro and may evaluate the @var{stream} argument more than once.
+Therefore, @var{stream} should never be an expression with side-effects.
@end deftypefun
@deftypefun wint_t putwc (wchar_t @var{wc}, FILE *@var{stream})
@standards{ISO, wchar.h}
@safety{@prelim{}@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{} @aculock{}}}
-This is just like @code{fputwc}, except that it can be implement as
-a macro, making it faster. One consequence is that it may evaluate the
-@var{stream} argument more than once, which is an exception to the
-general rule for macros. @code{putwc} is usually the best function to
-use for writing a single wide character.
+This is just like @code{fputwc}, except that it may be implemented as
+a macro and may evaluate the @var{stream} argument more than once.
+Therefore, @var{stream} should never be an expression with side-effects.
@end deftypefun
@deftypefun int putc_unlocked (int @var{c}, FILE *@var{stream})
@@ -1110,20 +1106,17 @@ This function is a GNU extension.
@deftypefun int getc (FILE *@var{stream})
@standards{ISO, stdio.h}
@safety{@prelim{}@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@aculock{} @acucorrupt{}}}
-This is just like @code{fgetc}, except that it is permissible (and
-typical) for it to be implemented as a macro that evaluates the
-@var{stream} argument more than once. @code{getc} is often highly
-optimized, so it is usually the best function to use to read a single
-character.
+This is just like @code{fgetc}, except that it may be implemented as
+a macro and may evaluate the @var{stream} argument more than once.
+Therefore, @var{stream} should never be an expression with side-effects.
@end deftypefun
@deftypefun wint_t getwc (FILE *@var{stream})
@standards{ISO, wchar.h}
@safety{@prelim{}@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@aculock{} @acucorrupt{}}}
-This is just like @code{fgetwc}, except that it is permissible for it to
-be implemented as a macro that evaluates the @var{stream} argument more
-than once. @code{getwc} can be highly optimized, so it is usually the
-best function to use to read a single wide character.
+This is just like @code{fgetwc}, except that it may be implemented as
+a macro and may evaluate the @var{stream} argument more than once.
+Therefore, @var{stream} should never be an expression with side-effects.
@end deftypefun
@deftypefun int getc_unlocked (FILE *@var{stream})
@@ -1474,11 +1467,9 @@ program; usually @code{ungetc} is used only to unread a character that
was just read from the same stream. @Theglibc{} supports this
even on files opened in binary mode, but other systems might not.
-@Theglibc{} only supports one character of pushback---in other
-words, it does not work to call @code{ungetc} twice without doing input
-in between. Other systems might let you push back multiple characters;
-then reading from the stream retrieves the characters in the reverse
-order that they were pushed.
+@Theglibc{} supports pushing back multiple characters; subsequently
+reading from the stream retrieves the characters in the reverse order
+that they were pushed.
Pushing back characters doesn't alter the file; only the internal
buffering for the stream is affected. If a file positioning function
diff --git a/math/Makefile b/math/Makefile
index 79ef4eb..c98ee4e 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -261,6 +261,9 @@ tests-static = test-fpucw-static test-fpucw-ieee-static \
# The tested symbols matherr, _LIB_VERSION have been removed in glibc 2.27.
ifeq ($(have-GLIBC_2.26)$(build-shared),yesyes)
tests += test-matherr test-matherr-2
+tests-2.0 += \
+ test-matherr-2 \
+ # tests-2.0
endif
# These tests use internal (unexported) GMP functions and are linked
@@ -462,6 +465,7 @@ CFLAGS-test-flt-eval-method.c += -fexcess-precision=standard
CFLAGS-test-fe-snans-always-signal.c += $(config-cflags-signaling-nans)
CFLAGS-test-nan-const.c += -fno-builtin
+CFLAGS-test-nan-payload.c += -fno-builtin
include ../Rules
diff --git a/math/test-nan-payload.c b/math/test-nan-payload.c
index 4a81dc3..413791e 100644
--- a/math/test-nan-payload.c
+++ b/math/test-nan-payload.c
@@ -16,6 +16,9 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#define _LIBC_TEST 1
+#define __STDC_WANT_IEC_60559_TYPES_EXT__
+#include <errno.h>
#include <float.h>
#include <math.h>
#include <stdio.h>
@@ -31,7 +34,7 @@
#define CHECK_IS_NAN(TYPE, A) \
do \
{ \
- if (isnan (A)) \
+ if (isnan (A) && !issignaling (A)) \
puts ("PASS: " #TYPE " " #A); \
else \
{ \
@@ -41,6 +44,19 @@
} \
while (0)
+#define CHECK_PAYLOAD(TYPE, FUNC, A, P) \
+ do \
+ { \
+ if (FUNC (&(A)) == (P)) \
+ puts ("PASS: " #TYPE " payload " #A); \
+ else \
+ { \
+ puts ("FAIL: " #TYPE " payload " #A); \
+ result = 1; \
+ } \
+ } \
+ while (0)
+
#define CHECK_SAME_NAN(TYPE, A, B) \
do \
{ \
@@ -67,33 +83,97 @@
} \
while (0)
+#define CLEAR_ERRNO \
+ do \
+ { \
+ errno = 12345; \
+ } \
+ while (0)
+
+#define CHECK_ERRNO(TYPE, A) \
+ do \
+ { \
+ if (errno == 12345) \
+ puts ("PASS: " #TYPE " " #A " errno"); \
+ else \
+ { \
+ puts ("FAIL: " #TYPE " " #A " errno"); \
+ result = 1; \
+ } \
+ } \
+ while (0)
+
/* Cannot test payloads by memcmp for formats where NaNs have padding
bits. */
#define CAN_TEST_EQ(MANT_DIG) ((MANT_DIG) != 64 && (MANT_DIG) != 106)
-#define RUN_TESTS(TYPE, SFUNC, FUNC, MANT_DIG) \
+#define RUN_TESTS(TYPE, SFUNC, FUNC, PLFUNC, MANT_DIG) \
do \
{ \
+ CLEAR_ERRNO; \
TYPE n123 = WRAP_NAN (FUNC, "123"); \
+ CHECK_ERRNO (TYPE, n123); \
CHECK_IS_NAN (TYPE, n123); \
+ CLEAR_ERRNO; \
TYPE s123 = WRAP_STRTO (SFUNC, "NAN(123)"); \
+ CHECK_ERRNO (TYPE, s123); \
CHECK_IS_NAN (TYPE, s123); \
+ CLEAR_ERRNO; \
TYPE n456 = WRAP_NAN (FUNC, "456"); \
+ CHECK_ERRNO (TYPE, n456); \
CHECK_IS_NAN (TYPE, n456); \
+ CLEAR_ERRNO; \
TYPE s456 = WRAP_STRTO (SFUNC, "NAN(456)"); \
+ CHECK_ERRNO (TYPE, s456); \
CHECK_IS_NAN (TYPE, s456); \
+ CLEAR_ERRNO; \
+ TYPE nh123 = WRAP_NAN (FUNC, "0x123"); \
+ CHECK_ERRNO (TYPE, nh123); \
+ CHECK_IS_NAN (TYPE, nh123); \
+ CLEAR_ERRNO; \
+ TYPE sh123 = WRAP_STRTO (SFUNC, "NAN(0x123)"); \
+ CHECK_ERRNO (TYPE, sh123); \
+ CHECK_IS_NAN (TYPE, sh123); \
+ CLEAR_ERRNO; \
TYPE n123x = WRAP_NAN (FUNC, "123)"); \
+ CHECK_ERRNO (TYPE, n123x); \
CHECK_IS_NAN (TYPE, n123x); \
+ CLEAR_ERRNO; \
TYPE nemp = WRAP_NAN (FUNC, ""); \
+ CHECK_ERRNO (TYPE, nemp); \
CHECK_IS_NAN (TYPE, nemp); \
+ CLEAR_ERRNO; \
TYPE semp = WRAP_STRTO (SFUNC, "NAN()"); \
+ CHECK_ERRNO (TYPE, semp); \
CHECK_IS_NAN (TYPE, semp); \
+ CLEAR_ERRNO; \
TYPE sx = WRAP_STRTO (SFUNC, "NAN"); \
+ CHECK_ERRNO (TYPE, sx); \
CHECK_IS_NAN (TYPE, sx); \
+ CLEAR_ERRNO; \
+ TYPE novf = WRAP_NAN (FUNC, "9999999999" \
+ "99999999999999999999" \
+ "9999999999"); \
+ CHECK_ERRNO (TYPE, novf); \
+ CHECK_IS_NAN (TYPE, novf); \
+ CLEAR_ERRNO; \
+ TYPE sovf = WRAP_STRTO (SFUNC, "NAN(9999999999" \
+ "99999999999999999999" \
+ "9999999999)"); \
+ CHECK_ERRNO (TYPE, sovf); \
+ CHECK_IS_NAN (TYPE, sovf); \
if (CAN_TEST_EQ (MANT_DIG)) \
CHECK_SAME_NAN (TYPE, n123, s123); \
+ CHECK_PAYLOAD (TYPE, PLFUNC, n123, 123); \
+ CHECK_PAYLOAD (TYPE, PLFUNC, s123, 123); \
if (CAN_TEST_EQ (MANT_DIG)) \
CHECK_SAME_NAN (TYPE, n456, s456); \
+ CHECK_PAYLOAD (TYPE, PLFUNC, n456, 456); \
+ CHECK_PAYLOAD (TYPE, PLFUNC, s456, 456); \
+ if (CAN_TEST_EQ (MANT_DIG)) \
+ CHECK_SAME_NAN (TYPE, nh123, sh123); \
+ CHECK_PAYLOAD (TYPE, PLFUNC, nh123, 0x123); \
+ CHECK_PAYLOAD (TYPE, PLFUNC, sh123, 0x123); \
if (CAN_TEST_EQ (MANT_DIG)) \
CHECK_SAME_NAN (TYPE, nemp, semp); \
if (CAN_TEST_EQ (MANT_DIG)) \
@@ -110,9 +190,31 @@ static int
do_test (void)
{
int result = 0;
- RUN_TESTS (float, strtof, nanf, FLT_MANT_DIG);
- RUN_TESTS (double, strtod, nan, DBL_MANT_DIG);
- RUN_TESTS (long double, strtold, nanl, LDBL_MANT_DIG);
+ RUN_TESTS (float, strtof, nanf, getpayloadf, FLT_MANT_DIG);
+ RUN_TESTS (double, strtod, nan, getpayload, DBL_MANT_DIG);
+ RUN_TESTS (long double, strtold, nanl, getpayloadl, LDBL_MANT_DIG);
+#if __HAVE_FLOAT16
+ RUN_TESTS (_Float16, strtof16, nanf16, getpayloadf16, FLT16_MANT_DIG);
+#endif
+#if __HAVE_FLOAT32
+ RUN_TESTS (_Float32, strtof32, nanf32, getpayloadf32, FLT32_MANT_DIG);
+#endif
+#if __HAVE_FLOAT64
+ RUN_TESTS (_Float64, strtof64, nanf64, getpayloadf64, FLT64_MANT_DIG);
+#endif
+#if __HAVE_FLOAT128
+ RUN_TESTS (_Float128, strtof128, nanf128, getpayloadf128, FLT128_MANT_DIG);
+#endif
+#if __HAVE_FLOAT32X
+ RUN_TESTS (_Float32x, strtof32x, nanf32x, getpayloadf32x, FLT32X_MANT_DIG);
+#endif
+#if __HAVE_FLOAT64X
+ RUN_TESTS (_Float64x, strtof64x, nanf64x, getpayloadf64x, FLT64X_MANT_DIG);
+#endif
+#if __HAVE_FLOAT128X
+ RUN_TESTS (_Float128x, strtof128x, nanf128x, getpayloadf128x,
+ FLT128X_MANT_DIG);
+#endif
return result;
}
diff --git a/math/test-tgmath2.c b/math/test-tgmath2.c
index 37afa8a..4aeb877 100644
--- a/math/test-tgmath2.c
+++ b/math/test-tgmath2.c
@@ -24,6 +24,8 @@
#include <string.h>
#include <tgmath.h>
+#include <support/check.h>
+
//#define DEBUG
typedef complex float cfloat;
@@ -87,13 +89,6 @@ enum
int count;
int counts[Tlast][C_last];
-#define FAIL(str) \
- do \
- { \
- printf ("%s failure on line %d\n", (str), __LINE__); \
- result = 1; \
- } \
- while (0)
#define TEST_TYPE_ONLY(expr, rettype) \
do \
{ \
@@ -133,8 +128,6 @@ int counts[Tlast][C_last];
int
test_cos (const int Vint4, const long long int Vllong4)
{
- int result = 0;
-
TEST (cos (vfloat1), float, cos);
TEST (cos (vdouble1), double, cos);
TEST (cos (vldouble1), ldouble, cos);
@@ -152,7 +145,7 @@ test_cos (const int Vint4, const long long int Vllong4)
TEST (cos (Vcdouble1), cdouble, cos);
TEST (cos (Vcldouble1), cldouble, cos);
- return result;
+ return 0;
}
int
diff --git a/misc/Makefile b/misc/Makefile
index c273ec6..235fc7e 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -251,6 +251,8 @@ tests := \
tst-mntent-blank-passno \
tst-mntent-escape \
tst-mntent2 \
+ tst-mremap1 \
+ tst-mremap2 \
tst-preadvwritev \
tst-preadvwritev2 \
tst-preadvwritev64 \
diff --git a/misc/tst-mremap1.c b/misc/tst-mremap1.c
new file mode 100644
index 0000000..0469991
--- /dev/null
+++ b/misc/tst-mremap1.c
@@ -0,0 +1,46 @@
+/* Test mremap with MREMAP_MAYMOVE.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/mman.h>
+#include <support/xstdlib.h>
+#include <support/xunistd.h>
+#include <support/check.h>
+#include <support/test-driver.h>
+
+static int
+do_test (void)
+{
+ size_t old_size = getpagesize ();
+ char *old_addr = xmmap (NULL, old_size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1);
+ old_addr[0] = 1;
+ old_addr[old_size - 1] = 2;
+
+ /* Test MREMAP_MAYMOVE. */
+ size_t new_size = old_size + old_size;
+ char *new_addr = mremap (old_addr, old_size, new_size, MREMAP_MAYMOVE);
+ TEST_VERIFY_EXIT (new_addr != MAP_FAILED);
+ new_addr[0] = 1;
+ new_addr[new_size - 1] = 2;
+ xmunmap (new_addr, new_size);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/misc/tst-mremap2.c b/misc/tst-mremap2.c
new file mode 100644
index 0000000..45be7f0
--- /dev/null
+++ b/misc/tst-mremap2.c
@@ -0,0 +1,54 @@
+/* Test mremap with MREMAP_FIXED.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/mman.h>
+#include <support/xstdlib.h>
+#include <support/xunistd.h>
+#include <support/test-driver.h>
+#include <mremap-failure.h>
+
+static int
+do_test (void)
+{
+ size_t old_size = getpagesize ();
+ size_t new_size = old_size + old_size;
+ char *old_addr = xmmap (NULL, old_size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1);
+ old_addr[0] = 1;
+ old_addr[old_size - 1] = 2;
+
+ char *fixed_addr = xmmap (NULL, new_size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1);
+ fixed_addr[0] = 1;
+ fixed_addr[new_size - 1] = 2;
+
+ /* Test MREMAP_FIXED. */
+ char *new_addr = mremap (old_addr, old_size, new_size,
+ MREMAP_FIXED | MREMAP_MAYMOVE,
+ fixed_addr);
+ if (new_addr == MAP_FAILED)
+ return mremap_failure_exit (errno);
+ new_addr[0] = 1;
+ new_addr[new_size - 1] = 2;
+ xmunmap (new_addr, new_size);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index f35a836..2cb562f 100644
--- a/nptl/allocatestack.c
+++ b/nptl/allocatestack.c
@@ -139,7 +139,7 @@ get_cached_stack (size_t *sizep, void **memp)
memset (dtv, '\0', (dtv[-1].counter + 1) * sizeof (dtv_t));
/* Re-initialize the TLS. */
- _dl_allocate_tls_init (TLS_TPADJ (result), true);
+ _dl_allocate_tls_init (TLS_TPADJ (result), false);
return result;
}
diff --git a/posix/tst-truncate-common.c b/posix/tst-truncate-common.c
index b774fa4..b8c561f 100644
--- a/posix/tst-truncate-common.c
+++ b/posix/tst-truncate-common.c
@@ -21,6 +21,8 @@
#include <sys/stat.h>
#include <unistd.h>
+#include <support/check.h>
+
static void do_prepare (void);
#define PREPARE(argc, argv) do_prepare ()
static int do_test (void);
@@ -42,9 +44,6 @@ do_prepare (void)
}
}
-#define FAIL(str) \
- do { printf ("error: %s (line %d)\n", str, __LINE__); return 1; } while (0)
-
static int
do_test_with_offset (off_t offset)
{
@@ -54,35 +53,35 @@ do_test_with_offset (off_t offset)
memset (buf, 0xcf, sizeof (buf));
if (pwrite (temp_fd, buf, sizeof (buf), offset) != sizeof (buf))
- FAIL ("write failed");
+ FAIL_RET ("write failed");
if (fstat (temp_fd, &st) < 0 || st.st_size != (offset + sizeof (buf)))
- FAIL ("initial size wrong");
+ FAIL_RET ("initial size wrong");
if (ftruncate (temp_fd, offset + 800) < 0)
- FAIL ("size reduction with ftruncate failed");
+ FAIL_RET ("size reduction with ftruncate failed");
if (fstat (temp_fd, &st) < 0 || st.st_size != (offset + 800))
- FAIL ("size after reduction with ftruncate is incorrect");
+ FAIL_RET ("size after reduction with ftruncate is incorrect");
/* The following test covers more than POSIX. POSIX does not require
that ftruncate() can increase the file size. But we are testing
Unix systems. */
if (ftruncate (temp_fd, offset + 1200) < 0)
- FAIL ("size increate with ftruncate failed");
+ FAIL_RET ("size increate with ftruncate failed");
if (fstat (temp_fd, &st) < 0 || st.st_size != (offset + 1200))
- FAIL ("size after increase is incorrect");
+ FAIL_RET ("size after increase is incorrect");
if (truncate (temp_filename, offset + 800) < 0)
- FAIL ("size reduction with truncate failed");
+ FAIL_RET ("size reduction with truncate failed");
if (fstat (temp_fd, &st) < 0 || st.st_size != (offset + 800))
- FAIL ("size after reduction with truncate incorrect");
+ FAIL_RET ("size after reduction with truncate incorrect");
/* The following test covers more than POSIX. POSIX does not require
that truncate() can increase the file size. But we are testing
Unix systems. */
if (truncate (temp_filename, (offset + 1200)) < 0)
- FAIL ("size increase with truncate failed");
+ FAIL_RET ("size increase with truncate failed");
if (fstat (temp_fd, &st) < 0 || st.st_size != (offset + 1200))
- FAIL ("size increase with truncate is incorrect");
+ FAIL_RET ("size increase with truncate is incorrect");
return 0;
}
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 3a4a206..9c77613 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -947,9 +947,11 @@ send_dg(res_state statp,
seconds /= statp->nscount;
if (seconds <= 0)
seconds = 1;
- bool single_request_reopen = (statp->options & RES_SNGLKUPREOP) != 0;
- bool single_request = (((statp->options & RES_SNGLKUP) != 0)
- | single_request_reopen);
+ bool single_request_reopen = ((statp->options & RES_SNGLKUPREOP)
+ || (statp->_flags & RES_F_SNGLKUPREOP));
+ bool single_request = ((statp->options & RES_SNGLKUP)
+ || (statp->_flags & RES_F_SNGLKUP)
+ || single_request_reopen);
int save_gotsomewhere = *gotsomewhere;
int retval;
@@ -1006,14 +1008,14 @@ send_dg(res_state statp,
have received the first answer. */
if (!single_request)
{
- statp->options |= RES_SNGLKUP;
+ statp->_flags |= RES_F_SNGLKUP;
single_request = true;
*gotsomewhere = save_gotsomewhere;
goto retry;
}
else if (!single_request_reopen)
{
- statp->options |= RES_SNGLKUPREOP;
+ statp->_flags |= RES_F_SNGLKUPREOP;
single_request_reopen = true;
*gotsomewhere = save_gotsomewhere;
__res_iclose (statp, false);
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index 24b164f..944af3e 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -26,6 +26,8 @@
#define RES_F_VC 0x00000001 /* Socket is TCP. */
#define RES_F_CONN 0x00000002 /* Socket is connected. */
#define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors. */
+#define RES_F_SNGLKUP 0x00200000 /* Private version of RES_SNGLKUP. */
+#define RES_F_SNGLKUPREOP 0x00400000 /* Private version of RES_SNGLKUPREOP. */
/* The structure HEADER is normally aligned on a word boundary. In
some code, we need to access this structure when it may be aligned
diff --git a/resolv/tst-resolv-short-response.c b/resolv/tst-resolv-short-response.c
index be354ae..9b06b0c 100644
--- a/resolv/tst-resolv-short-response.c
+++ b/resolv/tst-resolv-short-response.c
@@ -33,8 +33,10 @@ response (const struct resolv_response_context *ctx,
{
case 0:
/* First server times out. */
- struct resolv_response_flags flags = {.rcode = rcode};
- resolv_response_init (b, flags);
+ {
+ struct resolv_response_flags flags = {.rcode = rcode};
+ resolv_response_init (b, flags);
+ }
break;
case 1:
/* Second server sends reply. */
diff --git a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh
index 5d3e61f..ad238403 100755
--- a/scripts/check-local-headers.sh
+++ b/scripts/check-local-headers.sh
@@ -33,7 +33,7 @@ exec ${AWK} -v includedir="$includedir" '
BEGIN {
status = 0
exclude = "^" includedir \
- "/(.*-.*-.*/|.*-.*/|)(asm[-/]|arch|linux/|selinux/|mach/|mach_debug/|device/|hurd/(((hurd|ioctl)_types|paths)\\.h|ioctls\\.defs|ihash\\.h|version\\.h)|gd|nss3/|nspr4?/|c\\+\\+/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h)"
+ "/(.*-.*-.*/|.*-.*/|)(asm[-/]|arch|linux/|selinux/|mach/|mach_debug/|device/|hurd/(((hurd|ioctl)_types|paths)\\.h|ioctls\\.defs|ihash\\.h|version\\.h)|gd|nss3/|nspr4?/|c\\+\\+/|sys/(capability|sdt(|-config))\\.h|libaudit\\.h|audit(_logging|-records)\\.h)"
}
/^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
{
diff --git a/socket/bits/socket2.h b/socket/bits/socket2.h
index a88cb64..71f8d9c 100644
--- a/socket/bits/socket2.h
+++ b/socket/bits/socket2.h
@@ -33,12 +33,12 @@ extern ssize_t __REDIRECT (__recv_chk_warn,
__fortify_function ssize_t
recv (int __fd, void *__buf, size_t __n, int __flags)
{
- size_t sz = __glibc_objsize0 (__buf);
- if (__glibc_safe_or_unknown_len (__n, sizeof (char), sz))
+ size_t __sz = __glibc_objsize0 (__buf);
+ if (__glibc_safe_or_unknown_len (__n, sizeof (char), __sz))
return __recv_alias (__fd, __buf, __n, __flags);
- if (__glibc_unsafe_len (__n, sizeof (char), sz))
- return __recv_chk_warn (__fd, __buf, __n, sz, __flags);
- return __recv_chk (__fd, __buf, __n, sz, __flags);
+ if (__glibc_unsafe_len (__n, sizeof (char), __sz))
+ return __recv_chk_warn (__fd, __buf, __n, __sz, __flags);
+ return __recv_chk (__fd, __buf, __n, __sz, __flags);
}
extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n,
@@ -61,11 +61,11 @@ __fortify_function ssize_t
recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
__SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len)
{
- size_t sz = __glibc_objsize0 (__buf);
- if (__glibc_safe_or_unknown_len (__n, sizeof (char), sz))
+ size_t __sz = __glibc_objsize0 (__buf);
+ if (__glibc_safe_or_unknown_len (__n, sizeof (char), __sz))
return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len);
- if (__glibc_unsafe_len (__n, sizeof (char), sz))
- return __recvfrom_chk_warn (__fd, __buf, __n, sz, __flags, __addr,
+ if (__glibc_unsafe_len (__n, sizeof (char), __sz))
+ return __recvfrom_chk_warn (__fd, __buf, __n, __sz, __flags, __addr,
__addr_len);
- return __recvfrom_chk (__fd, __buf, __n, sz, __flags, __addr, __addr_len);
+ return __recvfrom_chk (__fd, __buf, __n, __sz, __flags, __addr, __addr_len);
}
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index e312565..c822434 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -206,6 +206,7 @@ tests := \
tst-cookie \
tst-dprintf-length \
tst-fdopen \
+ tst-fdopen2 \
tst-ferror \
tst-fgets \
tst-fileno \
@@ -215,6 +216,7 @@ tests := \
tst-fmemopen4 \
tst-fphex \
tst-fphex-wide \
+ tst-fread \
tst-fseek \
tst-fwrite \
tst-gets \
@@ -243,6 +245,7 @@ tests := \
tst-scanf-binary-c2x \
tst-scanf-binary-gnu11 \
tst-scanf-binary-gnu89 \
+ tst-scanf-bz27650 \
tst-scanf-intn \
tst-scanf-round \
tst-scanf-to_inpunct \
@@ -256,6 +259,7 @@ tests := \
tst-swscanf \
tst-tmpnam \
tst-ungetc \
+ tst-ungetc-leak \
tst-unlockedio \
tst-vfprintf-mbs-prec \
tst-vfprintf-user-type \
@@ -300,6 +304,7 @@ tests-special += \
$(objpfx)tst-printfsz-islongdouble.out \
$(objpfx)tst-setvbuf1-cmp.out \
$(objpfx)tst-unbputc.out \
+ $(objpfx)tst-ungetc-leak-mem.out \
$(objpfx)tst-vfprintf-width-prec-mem.out \
# tests-special
@@ -313,6 +318,9 @@ generated += \
tst-printf-fp-free.mtrace \
tst-printf-fp-leak-mem.out \
tst-printf-fp-leak.mtrace \
+ tst-scanf-bz27650.mtrace \
+ tst-ungetc-leak-mem.out \
+ tst-ungetc-leak.mtrace \
tst-vfprintf-width-prec-mem.out \
tst-vfprintf-width-prec.mtrace \
# generated
@@ -402,6 +410,12 @@ tst-printf-fp-free-ENV = \
tst-printf-fp-leak-ENV = \
MALLOC_TRACE=$(objpfx)tst-printf-fp-leak.mtrace \
LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
+tst-scanf-bz27650-ENV = \
+ MALLOC_TRACE=$(objpfx)tst-scanf-bz27650.mtrace \
+ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so
+tst-ungetc-leak-ENV = \
+ MALLOC_TRACE=$(objpfx)tst-ungetc-leak.mtrace \
+ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so
$(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc
$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
diff --git a/stdio-common/tst-fdopen2.c b/stdio-common/tst-fdopen2.c
new file mode 100644
index 0000000..0c6625f
--- /dev/null
+++ b/stdio-common/tst-fdopen2.c
@@ -0,0 +1,246 @@
+/* Test the fdopen function.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+#include <support/temp_file.h>
+
+char *tmp_dir;
+char *path_to_file;
+
+void
+prepare_tmp_dir (void)
+{
+ tmp_dir = support_create_temp_directory ("tst-fdopen2");
+ path_to_file = xasprintf ("%s/tst-fdopen2.txt", tmp_dir);
+}
+
+/* open temp file descriptor with mode. */
+int
+open_tmp_fd (int mode)
+{
+ int fd = xopen (path_to_file, mode, 0644);
+ return fd;
+}
+
+
+/* close and remove temp file with close. */
+void
+close_tmp_fd (int fd)
+{
+ xclose (fd);
+ xunlink (path_to_file);
+}
+
+/* close and remove temp file with fclose. */
+void
+close_tmp_fp (FILE *fp)
+{
+ fclose (fp);
+ xunlink (path_to_file);
+}
+
+/* test "w" fdopen mode. */
+void
+do_test_fdopen_w (void)
+{
+ int fd, ret;
+ FILE *fp;
+ fd = open_tmp_fd (O_WRONLY | O_CREAT | O_TRUNC);
+
+ /* test mode mismatch. */
+ fp = fdopen (fd, "r");
+ if (fp != NULL || errno != EINVAL)
+ {
+ close_tmp_fd (fd);
+ FAIL_EXIT1 ("fdopen (%d, r) should fail with EINVAL: %m", fd);
+ }
+
+ fp = fdopen (fd, "w");
+ if (fp == NULL)
+ {
+ close_tmp_fd (fd);
+ FAIL_EXIT1 ("fdopen (%d, w): %m", fd);
+ }
+
+ const void *buf = "AAAA";
+ ret = fwrite (buf, 1, 4, fp);
+ if (ret != 4)
+ {
+ close_tmp_fp (fp);
+ FAIL_EXIT1 ("fwrite (): %m");
+ }
+
+ unsigned char buf2[4];
+ rewind (fp);
+ clearerr (fp);
+ /* fread should fail in "w" mode */
+ ret = fread (buf2, 1, 4, fp);
+ if (ret != 0 || ferror (fp) == 0)
+ {
+ close_tmp_fp (fp);
+ FAIL_EXIT1 ("fread should fail in \"w\" mode");
+ }
+
+ fclose (fp);
+}
+
+/* test "r" fdopen mode. */
+void
+do_test_fdopen_r (void)
+{
+ int fd, ret;
+ FILE *fp;
+ fd = open_tmp_fd (O_RDONLY);
+
+ /* test mode mismatch. */
+ fp = fdopen (fd, "w");
+ if (fp != NULL || errno != EINVAL)
+ {
+ close_tmp_fd (fd);
+ FAIL_EXIT1 ("fdopen (%d, w) should fail with EINVAL: %m", fd);
+ }
+
+ fp = fdopen (fd, "r");
+ if (fp == NULL)
+ {
+ close_tmp_fd (fd);
+ FAIL_EXIT1 ("fdopen (%d, w): %m", fd);
+ }
+
+ const void *buf = "BBBB";
+ /* fwrite should fail in "r" mode. */
+ ret = fwrite (buf, 1, 4, fp);
+ if (ret != 0 || ferror (fp) == 0)
+ {
+ close_tmp_fp (fp);
+ FAIL_EXIT1 ("fwrite should fail in \"r\" mode");
+ }
+
+ unsigned char buf2[4];
+ ret = fread (buf2, 1, 4, fp);
+ if (ret != 4)
+ {
+ close_tmp_fp (fp);
+ FAIL_EXIT1 ("fread (): %m");
+ }
+
+ fclose (fp);
+}
+
+/* test "a" fdopen mode. */
+void
+do_test_fdopen_a (void)
+{
+ int fd, ret;
+ FILE *fp;
+ fd = open_tmp_fd (O_WRONLY | O_CREAT | O_APPEND);
+
+ /* test mode mismatch. */
+ fp = fdopen (fd, "r+");
+ if (fp != NULL || errno != EINVAL)
+ {
+ close_tmp_fd (fd);
+ FAIL_EXIT1 ("fdopen (%d, \"r+\") should fail with EINVAL: %m", fd);
+ }
+
+ fp = fdopen (fd, "a");
+ if (fp == NULL)
+ {
+ close_tmp_fd (fd);
+ FAIL_EXIT1 ("fdopen (%d, w): %m", fd);
+ }
+
+ const void *buf = "CCCC";
+ ret = fwrite (buf, 1, 4, fp);
+ if (ret != 4)
+ {
+ close_tmp_fp (fp);
+ FAIL_EXIT1 ("fwrite (): %m");
+ }
+
+ /* fread should fail in "a" mode. */
+ unsigned char buf2[4];
+ clearerr (fp);
+ ret = fread (buf2, 1, 4, fp);
+ if (ret != 0 || ferror (fp) == 0)
+ {
+ close_tmp_fp (fp);
+ FAIL_EXIT1 ("fread should fail \"a\" mode");
+ }
+
+ fclose (fp);
+}
+
+void
+do_test_fdopen_mode (int mode, const char *fmode)
+{
+ int fd, ret;
+ FILE *fp;
+ fd = open_tmp_fd (mode);
+
+ fp = fdopen (fd, fmode);
+ if (fp == NULL)
+ {
+ close_tmp_fd (fd);
+ FAIL_EXIT1 ("fdopen (%d, %s): %m", fd, fmode);
+ }
+
+ const void *buf = "EEEE";
+ ret = fwrite (buf, 1, 4, fp);
+ if (ret != 4)
+ {
+ close_tmp_fp (fp);
+ FAIL_EXIT1 ("fwrite () in mode:%s returns %d: %m", fmode, ret);
+ }
+
+ rewind (fp);
+ unsigned char buf2[4];
+ ret = fread (buf2, 1, 4, fp);
+ if (ret != 4)
+ {
+ close_tmp_fp (fp);
+ FAIL_EXIT1 ("fread () in mode:%s returns %d: %m", fmode, ret);
+ }
+
+ fclose (fp);
+}
+
+static int
+do_test (void)
+{
+
+ prepare_tmp_dir ();
+
+ do_test_fdopen_w ();
+ do_test_fdopen_r ();
+ do_test_fdopen_a ();
+
+ /* test r+ w+ a+ fdopen modes. */
+ do_test_fdopen_mode (O_RDWR, "r+");
+ do_test_fdopen_mode (O_RDWR | O_CREAT | O_TRUNC, "w+");
+ do_test_fdopen_mode (O_RDWR | O_CREAT | O_APPEND, "a+");
+ xunlink (path_to_file);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/stdio-common/tst-fread.c b/stdio-common/tst-fread.c
new file mode 100644
index 0000000..4d9a789
--- /dev/null
+++ b/stdio-common/tst-fread.c
@@ -0,0 +1,134 @@
+/* Test fread.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <support/check.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/test-driver.h>
+#include <support/xstdio.h>
+#include <support/xunistd.h>
+
+int
+do_test (void)
+{
+ char *temp_dir = support_create_temp_directory ("tst-fread");
+ char *file1 = xasprintf ("%s/file1", temp_dir);
+ support_write_file_string (file1, "file1");
+ add_temp_file (file1);
+ FILE *fp;
+ size_t ret;
+ char buf[1024];
+
+ verbose_printf ("test single-byte reads\n");
+ fp = xfopen (file1, "r");
+ memset (buf, 0, sizeof buf);
+ ret = fread (buf, 1, 2, fp);
+ TEST_COMPARE (ret, 2);
+ TEST_COMPARE (buf[0], 'f');
+ TEST_COMPARE (buf[1], 'i');
+ TEST_COMPARE (feof (fp), 0);
+ TEST_COMPARE (ftell (fp), 2);
+ memset (buf, 0, sizeof buf);
+ ret = fread (buf, 1, 3, fp);
+ TEST_COMPARE (ret, 3);
+ TEST_COMPARE (buf[0], 'l');
+ TEST_COMPARE (buf[1], 'e');
+ TEST_COMPARE (buf[2], '1');
+ TEST_COMPARE (ftell (fp), 5);
+ TEST_COMPARE (feof (fp), 0);
+ memset (buf, 0, sizeof buf);
+ ret = fread (buf, 1, 1, fp);
+ TEST_COMPARE (ret, 0);
+ TEST_COMPARE (!!feof (fp), 1);
+ TEST_COMPARE (ferror (fp), 0);
+ TEST_COMPARE (ftell (fp), 5);
+ xfclose (fp);
+
+ verbose_printf ("test single-byte reads, EOF part way through\n");
+ fp = xfopen (file1, "r");
+ memset (buf, 0, sizeof buf);
+ ret = fread (buf, 1, sizeof buf, fp);
+ TEST_COMPARE (ret, 5);
+ TEST_COMPARE (buf[0], 'f');
+ TEST_COMPARE (buf[1], 'i');
+ TEST_COMPARE (buf[2], 'l');
+ TEST_COMPARE (buf[3], 'e');
+ TEST_COMPARE (buf[4], '1');
+ TEST_COMPARE (!!feof (fp), 1);
+ TEST_COMPARE (ferror (fp), 0);
+ TEST_COMPARE (ftell (fp), 5);
+ xfclose (fp);
+
+ verbose_printf ("test multi-byte reads\n");
+ fp = xfopen (file1, "r");
+ memset (buf, 0, sizeof buf);
+ ret = fread (buf, 2, 2, fp);
+ TEST_COMPARE (ret, 2);
+ TEST_COMPARE (buf[0], 'f');
+ TEST_COMPARE (buf[1], 'i');
+ TEST_COMPARE (buf[2], 'l');
+ TEST_COMPARE (buf[3], 'e');
+ TEST_COMPARE (feof (fp), 0);
+ TEST_COMPARE (ftell (fp), 4);
+ memset (buf, 0, sizeof buf);
+ ret = fread (buf, 3, 3, fp);
+ TEST_COMPARE (ret, 0);
+ /* The bytes written for a partial element read are unspecified. */
+ TEST_COMPARE (!!feof (fp), 1);
+ TEST_COMPARE (ferror (fp), 0);
+ TEST_COMPARE (ftell (fp), 5);
+ xfclose (fp);
+
+ verbose_printf ("test read error\n");
+ fp = xfopen (file1, "r");
+ xclose (fileno (fp));
+ memset (buf, 0, sizeof buf);
+ ret = fread (buf, 1, sizeof buf, fp);
+ TEST_COMPARE (ret, 0);
+ TEST_COMPARE (feof (fp), 0);
+ TEST_COMPARE (!!ferror (fp), 1);
+ fclose (fp);
+
+ verbose_printf ("test zero size\n");
+ fp = xfopen (file1, "r");
+ ret = fread (buf, 0, SIZE_MAX, fp);
+ TEST_COMPARE (ret, 0);
+ TEST_COMPARE (feof (fp), 0);
+ TEST_COMPARE (ferror (fp), 0);
+ TEST_COMPARE (ftell (fp), 0);
+ xfclose (fp);
+
+ verbose_printf ("test zero items\n");
+ fp = xfopen (file1, "r");
+ ret = fread (buf, SIZE_MAX, 0, fp);
+ TEST_COMPARE (ret, 0);
+ TEST_COMPARE (feof (fp), 0);
+ TEST_COMPARE (ferror (fp), 0);
+ TEST_COMPARE (ftell (fp), 0);
+ xfclose (fp);
+
+ free (temp_dir);
+ free (file1);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/stdio-common/tst-scanf-bz27650.c b/stdio-common/tst-scanf-bz27650.c
new file mode 100644
index 0000000..3a742bc
--- /dev/null
+++ b/stdio-common/tst-scanf-bz27650.c
@@ -0,0 +1,108 @@
+/* Test for BZ #27650, formatted input matching beyond INT_MAX.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <error.h>
+#include <errno.h>
+#include <limits.h>
+#include <mcheck.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <sys/types.h>
+
+#include <support/check.h>
+#include <support/test-driver.h>
+
+/* Produce a stream of more than INT_MAX characters via buffer BUF of
+ size SIZE according to bookkeeping in COOKIE and then return EOF. */
+
+static ssize_t
+io_read (void *cookie, char *buf, size_t size)
+{
+ unsigned int *written = cookie;
+ unsigned int w = *written;
+
+ if (w > INT_MAX)
+ return 0;
+
+ memset (buf, 'a', size);
+ *written = w + size;
+ return size;
+}
+
+/* Consume a stream of more than INT_MAX characters from an artificial
+ input stream of which none is the new line character. The call to
+ fscanf is supposed to complete upon the EOF condition of input,
+ however in the presence of BZ #27650 it will terminate prematurely
+ with characters still outstanding in input. Diagnose the condition
+ and return status accordingly. */
+
+int
+do_test (void)
+{
+ static cookie_io_functions_t io_funcs = { .read = io_read };
+ unsigned int written = 0;
+ FILE *in;
+ int v;
+
+ mtrace ();
+
+ in = fopencookie (&written, "r", io_funcs);
+ if (in == NULL)
+ {
+ FAIL ("fopencookie: %m");
+ goto out;
+ }
+
+ v = fscanf (in, "%*[^\n]");
+ if (ferror (in))
+ {
+ FAIL ("fscanf: input failure, at %u: %m", written);
+ goto out_close;
+ }
+ else if (v == EOF)
+ {
+ FAIL ("fscanf: unexpected end of file, at %u", written);
+ goto out_close;
+ }
+
+ if (!feof (in))
+ {
+ v = fgetc (in);
+ if (ferror (in))
+ FAIL ("fgetc: input failure: %m");
+ else if (v == EOF)
+ FAIL ("fgetc: unexpected end of file after missing end of file");
+ else if (v == '\n')
+ FAIL ("unexpected new line character received");
+ else
+ FAIL ("character received after end of file expected: \\x%02x", v);
+ }
+
+out_close:
+ if (fclose (in) != 0)
+ FAIL ("fclose: %m");
+
+out:
+ return EXIT_SUCCESS;
+}
+
+#define TIMEOUT (DEFAULT_TIMEOUT * 8)
+#include <support/test-driver.c>
diff --git a/stdio-common/tst-ungetc-leak.c b/stdio-common/tst-ungetc-leak.c
new file mode 100644
index 0000000..6c5152b
--- /dev/null
+++ b/stdio-common/tst-ungetc-leak.c
@@ -0,0 +1,32 @@
+/* Test for memory leak with ungetc when stream is unused.
+ Copyright The GNU Toolchain Authors.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <mcheck.h>
+#include <support/check.h>
+#include <support/support.h>
+
+static int
+do_test (void)
+{
+ mtrace ();
+ TEST_COMPARE (ungetc('y', stdin), 'y');
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/stdio-common/tst-ungetc.c b/stdio-common/tst-ungetc.c
index 1344b2b..388b202 100644
--- a/stdio-common/tst-ungetc.c
+++ b/stdio-common/tst-ungetc.c
@@ -1,70 +1,74 @@
-/* Test for ungetc bugs. */
+/* Test for ungetc bugs.
+ Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright The GNU Toolchain Authors.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
-#include <unistd.h>
-
-#undef assert
-#define assert(x) \
- if (!(x)) \
- { \
- fputs ("test failed: " #x "\n", stderr); \
- retval = 1; \
- goto the_end; \
- }
+#include <support/check.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/xstdio.h>
+#include <support/xunistd.h>
-int
-main (int argc, char *argv[])
+static int
+do_test (void)
{
- char name[] = "/tmp/tst-ungetc.XXXXXX";
+ char *name = NULL;
FILE *fp = NULL;
- int retval = 0;
int c;
char buffer[64];
- int fd = mkstemp (name);
+ int fd = create_temp_file ("tst-ungetc.", &name);
if (fd == -1)
- {
- printf ("mkstemp failed: %m\n");
- return 1;
- }
- close (fd);
- fp = fopen (name, "w");
- assert (fp != NULL)
- fputs ("bla", fp);
- fclose (fp);
- fp = NULL;
+ FAIL_EXIT1 ("cannot create temporary file: %m");
+ xclose (fd);
- fp = fopen (name, "r");
- assert (fp != NULL);
- assert (ungetc ('z', fp) == 'z');
- assert (getc (fp) == 'z');
- assert (getc (fp) == 'b');
- assert (getc (fp) == 'l');
- assert (ungetc ('m', fp) == 'm');
- assert (getc (fp) == 'm');
- assert ((c = getc (fp)) == 'a');
- assert (getc (fp) == EOF);
- assert (ungetc (c, fp) == c);
- assert (feof (fp) == 0);
- assert (getc (fp) == c);
- assert (getc (fp) == EOF);
- fclose (fp);
- fp = NULL;
+ fp = xfopen (name, "w");
+ fputs ("bla", fp);
+ xfclose (fp);
- fp = fopen (name, "r");
- assert (fp != NULL);
- assert (getc (fp) == 'b');
- assert (getc (fp) == 'l');
- assert (ungetc ('b', fp) == 'b');
- assert (fread (buffer, 1, 64, fp) == 2);
- assert (buffer[0] == 'b');
- assert (buffer[1] == 'a');
+ fp = xfopen (name, "r");
+ TEST_VERIFY_EXIT (ungetc ('z', fp) == 'z');
+ TEST_VERIFY_EXIT (getc (fp) == 'z');
+ TEST_VERIFY_EXIT (getc (fp) == 'b');
+ TEST_VERIFY_EXIT (getc (fp) == 'l');
+ TEST_VERIFY_EXIT (ungetc ('m', fp) == 'm');
+ TEST_VERIFY_EXIT (ungetc ('n', fp) == 'n');
+ TEST_VERIFY_EXIT (getc (fp) == 'n');
+ TEST_VERIFY_EXIT (getc (fp) == 'm');
+ TEST_VERIFY_EXIT ((c = getc (fp)) == 'a');
+ TEST_VERIFY_EXIT (getc (fp) == EOF);
+ TEST_VERIFY_EXIT (ungetc (c, fp) == c);
+ TEST_VERIFY_EXIT (feof (fp) == 0);
+ TEST_VERIFY_EXIT (getc (fp) == c);
+ TEST_VERIFY_EXIT (getc (fp) == EOF);
+ xfclose (fp);
-the_end:
- if (fp != NULL)
- fclose (fp);
- unlink (name);
+ fp = xfopen (name, "r");
+ TEST_VERIFY_EXIT (getc (fp) == 'b');
+ TEST_VERIFY_EXIT (getc (fp) == 'l');
+ TEST_VERIFY_EXIT (ungetc ('b', fp) == 'b');
+ TEST_VERIFY_EXIT (fread (buffer, 1, 64, fp) == 2);
+ TEST_VERIFY_EXIT (buffer[0] == 'b');
+ TEST_VERIFY_EXIT (buffer[1] == 'a');
+ xfclose (fp);
- return retval;
+ return 0;
}
+
+#include <support/test-driver.c>
diff --git a/stdlib/bits/stdlib.h b/stdlib/bits/stdlib.h
index 1c7191b..32f7ef5 100644
--- a/stdlib/bits/stdlib.h
+++ b/stdlib/bits/stdlib.h
@@ -36,16 +36,16 @@ extern char *__REDIRECT_NTH (__realpath_chk_warn,
__fortify_function __wur char *
__NTH (realpath (const char *__restrict __name, char *__restrict __resolved))
{
- size_t sz = __glibc_objsize (__resolved);
+ size_t __sz = __glibc_objsize (__resolved);
- if (sz == (size_t) -1)
+ if (__sz == (size_t) -1)
return __realpath_alias (__name, __resolved);
#if defined _LIBC_LIMITS_H_ && defined PATH_MAX
- if (__glibc_unsafe_len (PATH_MAX, sizeof (char), sz))
- return __realpath_chk_warn (__name, __resolved, sz);
+ if (__glibc_unsafe_len (PATH_MAX, sizeof (char), __sz))
+ return __realpath_chk_warn (__name, __resolved, __sz);
#endif
- return __realpath_chk (__name, __resolved, sz);
+ return __realpath_chk (__name, __resolved, __sz);
}
diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c
index e48bf4d..7ce735f 100644
--- a/stdlib/gen-tst-strtod-round.c
+++ b/stdlib/gen-tst-strtod-round.c
@@ -46,6 +46,7 @@ static int
string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd)
{
mpfr_clear_overflow ();
+ mpfr_clear_underflow ();
#ifdef WORKAROUND
mpfr_t f2;
mpfr_init2 (f2, 100000);
@@ -53,12 +54,16 @@ string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd)
int r = mpfr_set (f, f2, rnd);
r |= mpfr_subnormalize (f, r, rnd);
mpfr_clear (f2);
- return r0 | r;
+ r |= r0;
#else
int r = mpfr_strtofr (f, s, NULL, 0, rnd);
r |= mpfr_subnormalize (f, r, rnd);
- return r;
#endif
+ if (r == 0)
+ /* The MPFR underflow flag is set for exact subnormal results,
+ which is not wanted here. */
+ mpfr_clear_underflow ();
+ return r;
}
void
@@ -70,6 +75,21 @@ print_fp (FILE *fout, mpfr_t f, const char *suffix)
mpfr_fprintf (fout, "\t%Ra%s", f, suffix);
}
+static const char *
+suffix_to_print (bool overflow, bool underflow, bool underflow_before_rounding,
+ bool with_comma)
+{
+ if (overflow)
+ return with_comma ? ", true, false,\n" : ", true, false";
+ if (underflow)
+ return with_comma ? ", false, true,\n" : ", false, true";
+ if (underflow_before_rounding)
+ return (with_comma
+ ? ", false, !TININESS_AFTER_ROUNDING,\n"
+ : ", false, !TININESS_AFTER_ROUNDING");
+ return with_comma ? ", false, false,\n" : ", false, false";
+}
+
static void
round_str (FILE *fout, const char *s, int prec, int emin, int emax,
bool ibm_ld)
@@ -80,8 +100,11 @@ round_str (FILE *fout, const char *s, int prec, int emin, int emax,
mpfr_set_emin (emin);
mpfr_set_emax (emax);
mpfr_init (f);
+ string_to_fp (f, s, MPFR_RNDZ);
+ bool underflow_before_rounding = mpfr_underflow_p () != 0;
int r = string_to_fp (f, s, MPFR_RNDD);
bool overflow = mpfr_overflow_p () != 0;
+ bool underflow = mpfr_underflow_p () != 0;
if (ibm_ld)
{
assert (prec == 106 && emin == -1073 && emax == 1024);
@@ -97,19 +120,27 @@ round_str (FILE *fout, const char *s, int prec, int emin, int emax,
}
}
mpfr_fprintf (fout, "\t%s,\n", r ? "false" : "true");
- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
+ print_fp (fout, f,
+ suffix_to_print (overflow, underflow, underflow_before_rounding,
+ true));
string_to_fp (f, s, MPFR_RNDN);
overflow = (mpfr_overflow_p () != 0
|| (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
+ print_fp (fout, f,
+ suffix_to_print (overflow, underflow, underflow_before_rounding,
+ true));
string_to_fp (f, s, MPFR_RNDZ);
overflow = (mpfr_overflow_p () != 0
|| (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
+ print_fp (fout, f,
+ suffix_to_print (overflow, underflow, underflow_before_rounding,
+ true));
string_to_fp (f, s, MPFR_RNDU);
overflow = (mpfr_overflow_p () != 0
|| (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
- print_fp (fout, f, overflow ? ", true" : ", false");
+ print_fp (fout, f,
+ suffix_to_print (overflow, underflow, underflow_before_rounding,
+ false));
mpfr_clear (f);
if (ibm_ld)
mpfr_clear (max_value);
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index be515ce..beb97b3 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -222,6 +222,7 @@ round_and_return (mp_limb_t *retval, intmax_t exponent, int negative,
mp_size_t shift = MIN_EXP - 1 - exponent;
bool is_tiny = true;
+ bool old_half_bit = (round_limb & (((mp_limb_t) 1) << round_bit)) != 0;
more_bits |= (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0;
if (shift == MANT_DIG)
@@ -292,6 +293,7 @@ round_and_return (mp_limb_t *retval, intmax_t exponent, int negative,
round_bit = shift - 1;
(void) __mpn_rshift (retval, retval, RETURN_LIMB_SIZE, shift);
}
+ more_bits |= old_half_bit;
/* This is a hook for the m68k long double format, where the
exponent bias is the same for normalized and denormalized
numbers. */
diff --git a/stdlib/strtod_nan_main.c b/stdlib/strtod_nan_main.c
index 4cb286d..39fb7e9 100644
--- a/stdlib/strtod_nan_main.c
+++ b/stdlib/strtod_nan_main.c
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <errno.h>
#include <ieee754.h>
#include <locale.h>
#include <math.h>
@@ -50,7 +51,9 @@ STRTOD_NAN (const STRING_TYPE *str, STRING_TYPE **endptr, STRING_TYPE endc)
STRING_TYPE *endp;
unsigned long long int mant;
+ int save_errno = errno;
mant = STRTOULL (str, &endp, 0);
+ __set_errno (save_errno);
if (endp == cp)
SET_NAN_PAYLOAD (retval, mant);
diff --git a/stdlib/tst-strtod-round-data b/stdlib/tst-strtod-round-data
index 84ab705..9489fbc 100644
--- a/stdlib/tst-strtod-round-data
+++ b/stdlib/tst-strtod-round-data
@@ -265,3 +265,15 @@
1.000000000000000000000000000000000385185988877447170611195588516985463707620329643077639047987759113311767578125
1.0000000000000000000000000000000001925929944387235853055977942584927318538101648215388195239938795566558837890625
1.00000000000000000000000000000000009629649721936179265279889712924636592690508241076940976199693977832794189453125
+0x30000002222225p-1077
+0x0.7fffffffffffeap-1022
+0x0.7fffffffffffe9p-1022
+0x0.7ffffd4p-126
+0x0.7ffffffffffffffd4p-16382
+0x0.7ffffffffffffffd4p-16383
+0x0.7ffffffffffffffffffffffffffeap-16382
+0x0.7000004p-126
+0x0.70000000000002p-1022
+0x0.70000000000000004p-16382
+0x0.70000000000000004p-16383
+0x0.70000000000000000000000000002p-16382
diff --git a/stdlib/tst-strtod-round-data.h b/stdlib/tst-strtod-round-data.h
index 8899d15..ed50eb2 100644
--- a/stdlib/tst-strtod-round-data.h
+++ b/stdlib/tst-strtod-round-data.h
@@ -2,1852 +2,1852 @@
static const struct test tests[] = {
TEST ("3.518437208883201171875E+013",
false,
- 0x2p+44, false,
- 0x2p+44, false,
- 0x2p+44, false,
- 0x2.000004p+44, false,
- false,
- 0x2.0000000000002p+44, false,
- 0x2.0000000000004p+44, false,
- 0x2.0000000000002p+44, false,
- 0x2.0000000000004p+44, false,
- true,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- true,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- true,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- true,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false,
- 0x2.0000000000003p+44, false),
+ 0x2p+44, false, false,
+ 0x2p+44, false, false,
+ 0x2p+44, false, false,
+ 0x2.000004p+44, false, false,
+ false,
+ 0x2.0000000000002p+44, false, false,
+ 0x2.0000000000004p+44, false, false,
+ 0x2.0000000000002p+44, false, false,
+ 0x2.0000000000004p+44, false, false,
+ true,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ true,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ true,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ true,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false,
+ 0x2.0000000000003p+44, false, false),
TEST ("1.00000005960464477550",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000004p+0, false,
- false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000004p+0, false,
- false,
- 0x1.0000010000000002048242f2ffp+0, false,
- 0x1.0000010000000002048242f2ff8p+0, false,
- 0x1.0000010000000002048242f2ffp+0, false,
- 0x1.0000010000000002048242f2ff8p+0, false,
- false,
- 0x1.0000010000000002048242f2ff66p+0, false,
- 0x1.0000010000000002048242f2ff67p+0, false,
- 0x1.0000010000000002048242f2ff66p+0, false,
- 0x1.0000010000000002048242f2ff67p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000004p+0, false, false,
+ false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000004p+0, false, false,
+ false,
+ 0x1.0000010000000002048242f2ffp+0, false, false,
+ 0x1.0000010000000002048242f2ff8p+0, false, false,
+ 0x1.0000010000000002048242f2ffp+0, false, false,
+ 0x1.0000010000000002048242f2ff8p+0, false, false,
+ false,
+ 0x1.0000010000000002048242f2ff66p+0, false, false,
+ 0x1.0000010000000002048242f2ff67p+0, false, false,
+ 0x1.0000010000000002048242f2ff66p+0, false, false,
+ 0x1.0000010000000002048242f2ff67p+0, false, false),
TEST ("1.0000000596046447755",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000004p+0, false,
- false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000002p+0, false,
- 0x1.0000010000000004p+0, false,
- false,
- 0x1.0000010000000002048242f2ffp+0, false,
- 0x1.0000010000000002048242f2ff8p+0, false,
- 0x1.0000010000000002048242f2ffp+0, false,
- 0x1.0000010000000002048242f2ff8p+0, false,
- false,
- 0x1.0000010000000002048242f2ff66p+0, false,
- 0x1.0000010000000002048242f2ff67p+0, false,
- 0x1.0000010000000002048242f2ff66p+0, false,
- 0x1.0000010000000002048242f2ff67p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000004p+0, false, false,
+ false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ 0x1.0000010000000004p+0, false, false,
+ false,
+ 0x1.0000010000000002048242f2ffp+0, false, false,
+ 0x1.0000010000000002048242f2ff8p+0, false, false,
+ 0x1.0000010000000002048242f2ffp+0, false, false,
+ 0x1.0000010000000002048242f2ff8p+0, false, false,
+ false,
+ 0x1.0000010000000002048242f2ff66p+0, false, false,
+ 0x1.0000010000000002048242f2ff67p+0, false, false,
+ 0x1.0000010000000002048242f2ff66p+0, false, false,
+ 0x1.0000010000000002048242f2ff67p+0, false, false),
TEST ("1.000000059604644776",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.000001000000000ap+0, false,
- 0x1.000001000000000cp+0, false,
- 0x1.000001000000000ap+0, false,
- 0x1.000001000000000cp+0, false,
- false,
- 0x1.000001000000000ap+0, false,
- 0x1.000001000000000cp+0, false,
- 0x1.000001000000000ap+0, false,
- 0x1.000001000000000cp+0, false,
- false,
- 0x1.000001000000000b3db12bdc21p+0, false,
- 0x1.000001000000000b3db12bdc21p+0, false,
- 0x1.000001000000000b3db12bdc21p+0, false,
- 0x1.000001000000000b3db12bdc218p+0, false,
- false,
- 0x1.000001000000000b3db12bdc213cp+0, false,
- 0x1.000001000000000b3db12bdc213dp+0, false,
- 0x1.000001000000000b3db12bdc213cp+0, false,
- 0x1.000001000000000b3db12bdc213dp+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.000001000000000ap+0, false, false,
+ 0x1.000001000000000cp+0, false, false,
+ 0x1.000001000000000ap+0, false, false,
+ 0x1.000001000000000cp+0, false, false,
+ false,
+ 0x1.000001000000000ap+0, false, false,
+ 0x1.000001000000000cp+0, false, false,
+ 0x1.000001000000000ap+0, false, false,
+ 0x1.000001000000000cp+0, false, false,
+ false,
+ 0x1.000001000000000b3db12bdc21p+0, false, false,
+ 0x1.000001000000000b3db12bdc21p+0, false, false,
+ 0x1.000001000000000b3db12bdc21p+0, false, false,
+ 0x1.000001000000000b3db12bdc218p+0, false, false,
+ false,
+ 0x1.000001000000000b3db12bdc213cp+0, false, false,
+ 0x1.000001000000000b3db12bdc213dp+0, false, false,
+ 0x1.000001000000000b3db12bdc213cp+0, false, false,
+ 0x1.000001000000000b3db12bdc213dp+0, false, false),
TEST ("1.000000059604644775",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffffffp+0, false,
- 0x1.000001p+0, false,
- 0x1.000000fffffffp+0, false,
- 0x1.000001p+0, false,
- false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffffap+0, false,
- false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffff8p+0, false,
- 0x1.000000fffffffffap+0, false,
- false,
- 0x1.000000fffffffff8cb535a09dd8p+0, false,
- 0x1.000000fffffffff8cb535a09dd8p+0, false,
- 0x1.000000fffffffff8cb535a09dd8p+0, false,
- 0x1.000000fffffffff8cb535a09dep+0, false,
- false,
- 0x1.000000fffffffff8cb535a09dd9p+0, false,
- 0x1.000000fffffffff8cb535a09dd91p+0, false,
- 0x1.000000fffffffff8cb535a09dd9p+0, false,
- 0x1.000000fffffffff8cb535a09dd91p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000000fffffffp+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000000fffffffp+0, false, false,
+ 0x1.000001p+0, false, false,
+ false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffffap+0, false, false,
+ false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffff8p+0, false, false,
+ 0x1.000000fffffffffap+0, false, false,
+ false,
+ 0x1.000000fffffffff8cb535a09dd8p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd8p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd8p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dep+0, false, false,
+ false,
+ 0x1.000000fffffffff8cb535a09dd9p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd91p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd9p+0, false, false,
+ 0x1.000000fffffffff8cb535a09dd91p+0, false, false),
TEST ("1.00000005960464478",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.0000010000000054p+0, false,
- 0x1.0000010000000056p+0, false,
- 0x1.0000010000000054p+0, false,
- 0x1.0000010000000056p+0, false,
- false,
- 0x1.0000010000000054p+0, false,
- 0x1.0000010000000056p+0, false,
- 0x1.0000010000000054p+0, false,
- 0x1.0000010000000056p+0, false,
- false,
- 0x1.0000010000000055072873252f8p+0, false,
- 0x1.0000010000000055072873253p+0, false,
- 0x1.0000010000000055072873252f8p+0, false,
- 0x1.0000010000000055072873253p+0, false,
- false,
- 0x1.0000010000000055072873252febp+0, false,
- 0x1.0000010000000055072873252febp+0, false,
- 0x1.0000010000000055072873252febp+0, false,
- 0x1.0000010000000055072873252fecp+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.0000010000000054p+0, false, false,
+ 0x1.0000010000000056p+0, false, false,
+ 0x1.0000010000000054p+0, false, false,
+ 0x1.0000010000000056p+0, false, false,
+ false,
+ 0x1.0000010000000054p+0, false, false,
+ 0x1.0000010000000056p+0, false, false,
+ 0x1.0000010000000054p+0, false, false,
+ 0x1.0000010000000056p+0, false, false,
+ false,
+ 0x1.0000010000000055072873252f8p+0, false, false,
+ 0x1.0000010000000055072873253p+0, false, false,
+ 0x1.0000010000000055072873252f8p+0, false, false,
+ 0x1.0000010000000055072873253p+0, false, false,
+ false,
+ 0x1.0000010000000055072873252febp+0, false, false,
+ 0x1.0000010000000055072873252febp+0, false, false,
+ 0x1.0000010000000055072873252febp+0, false, false,
+ 0x1.0000010000000055072873252fecp+0, false, false),
TEST ("1.0000000596046448",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.00000100000001c4p+0, false,
- 0x1.00000100000001c6p+0, false,
- 0x1.00000100000001c4p+0, false,
- 0x1.00000100000001c6p+0, false,
- false,
- 0x1.00000100000001c4p+0, false,
- 0x1.00000100000001c6p+0, false,
- 0x1.00000100000001c4p+0, false,
- 0x1.00000100000001c6p+0, false,
- false,
- 0x1.00000100000001c5f67cd79279p+0, false,
- 0x1.00000100000001c5f67cd792798p+0, false,
- 0x1.00000100000001c5f67cd79279p+0, false,
- 0x1.00000100000001c5f67cd792798p+0, false,
- false,
- 0x1.00000100000001c5f67cd7927953p+0, false,
- 0x1.00000100000001c5f67cd7927954p+0, false,
- 0x1.00000100000001c5f67cd7927953p+0, false,
- 0x1.00000100000001c5f67cd7927954p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.00000100000001c4p+0, false, false,
+ 0x1.00000100000001c6p+0, false, false,
+ 0x1.00000100000001c4p+0, false, false,
+ 0x1.00000100000001c6p+0, false, false,
+ false,
+ 0x1.00000100000001c4p+0, false, false,
+ 0x1.00000100000001c6p+0, false, false,
+ 0x1.00000100000001c4p+0, false, false,
+ 0x1.00000100000001c6p+0, false, false,
+ false,
+ 0x1.00000100000001c5f67cd79279p+0, false, false,
+ 0x1.00000100000001c5f67cd792798p+0, false, false,
+ 0x1.00000100000001c5f67cd79279p+0, false, false,
+ 0x1.00000100000001c5f67cd792798p+0, false, false,
+ false,
+ 0x1.00000100000001c5f67cd7927953p+0, false, false,
+ 0x1.00000100000001c5f67cd7927954p+0, false, false,
+ 0x1.00000100000001c5f67cd7927953p+0, false, false,
+ 0x1.00000100000001c5f67cd7927954p+0, false, false),
TEST ("1.000000059604645",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.0000010000001p+0, false,
- 0x1.0000010000001p+0, false,
- 0x1.0000010000001p+0, false,
- 0x1.0000010000002p+0, false,
- false,
- 0x1.000001000000102ep+0, false,
- 0x1.000001000000103p+0, false,
- 0x1.000001000000102ep+0, false,
- 0x1.000001000000103p+0, false,
- false,
- 0x1.000001000000102ep+0, false,
- 0x1.000001000000103p+0, false,
- 0x1.000001000000102ep+0, false,
- 0x1.000001000000103p+0, false,
- false,
- 0x1.000001000000102f4fc8c3d757p+0, false,
- 0x1.000001000000102f4fc8c3d7578p+0, false,
- 0x1.000001000000102f4fc8c3d757p+0, false,
- 0x1.000001000000102f4fc8c3d7578p+0, false,
- false,
- 0x1.000001000000102f4fc8c3d75769p+0, false,
- 0x1.000001000000102f4fc8c3d75769p+0, false,
- 0x1.000001000000102f4fc8c3d75769p+0, false,
- 0x1.000001000000102f4fc8c3d7576ap+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.0000010000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ 0x1.0000010000002p+0, false, false,
+ false,
+ 0x1.000001000000102ep+0, false, false,
+ 0x1.000001000000103p+0, false, false,
+ 0x1.000001000000102ep+0, false, false,
+ 0x1.000001000000103p+0, false, false,
+ false,
+ 0x1.000001000000102ep+0, false, false,
+ 0x1.000001000000103p+0, false, false,
+ 0x1.000001000000102ep+0, false, false,
+ 0x1.000001000000103p+0, false, false,
+ false,
+ 0x1.000001000000102f4fc8c3d757p+0, false, false,
+ 0x1.000001000000102f4fc8c3d7578p+0, false, false,
+ 0x1.000001000000102f4fc8c3d757p+0, false, false,
+ 0x1.000001000000102f4fc8c3d7578p+0, false, false,
+ false,
+ 0x1.000001000000102f4fc8c3d75769p+0, false, false,
+ 0x1.000001000000102f4fc8c3d75769p+0, false, false,
+ 0x1.000001000000102f4fc8c3d75769p+0, false, false,
+ 0x1.000001000000102f4fc8c3d7576ap+0, false, false),
TEST ("1.00000005960464",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffffeap+0, false,
- 0x1.000000fffffeap+0, false,
- 0x1.000000fffffeap+0, false,
- 0x1.000000fffffebp+0, false,
- false,
- 0x1.000000fffffea7e4p+0, false,
- 0x1.000000fffffea7e6p+0, false,
- 0x1.000000fffffea7e4p+0, false,
- 0x1.000000fffffea7e6p+0, false,
- false,
- 0x1.000000fffffea7e4p+0, false,
- 0x1.000000fffffea7e6p+0, false,
- 0x1.000000fffffea7e4p+0, false,
- 0x1.000000fffffea7e6p+0, false,
- false,
- 0x1.000000fffffea7e5975eb11da7p+0, false,
- 0x1.000000fffffea7e5975eb11da78p+0, false,
- 0x1.000000fffffea7e5975eb11da7p+0, false,
- 0x1.000000fffffea7e5975eb11da78p+0, false,
- false,
- 0x1.000000fffffea7e5975eb11da74ap+0, false,
- 0x1.000000fffffea7e5975eb11da74bp+0, false,
- 0x1.000000fffffea7e5975eb11da74ap+0, false,
- 0x1.000000fffffea7e5975eb11da74bp+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000000fffffeap+0, false, false,
+ 0x1.000000fffffeap+0, false, false,
+ 0x1.000000fffffeap+0, false, false,
+ 0x1.000000fffffebp+0, false, false,
+ false,
+ 0x1.000000fffffea7e4p+0, false, false,
+ 0x1.000000fffffea7e6p+0, false, false,
+ 0x1.000000fffffea7e4p+0, false, false,
+ 0x1.000000fffffea7e6p+0, false, false,
+ false,
+ 0x1.000000fffffea7e4p+0, false, false,
+ 0x1.000000fffffea7e6p+0, false, false,
+ 0x1.000000fffffea7e4p+0, false, false,
+ 0x1.000000fffffea7e6p+0, false, false,
+ false,
+ 0x1.000000fffffea7e5975eb11da7p+0, false, false,
+ 0x1.000000fffffea7e5975eb11da78p+0, false, false,
+ 0x1.000000fffffea7e5975eb11da7p+0, false, false,
+ 0x1.000000fffffea7e5975eb11da78p+0, false, false,
+ false,
+ 0x1.000000fffffea7e5975eb11da74ap+0, false, false,
+ 0x1.000000fffffea7e5975eb11da74bp+0, false, false,
+ 0x1.000000fffffea7e5975eb11da74ap+0, false, false,
+ 0x1.000000fffffea7e5975eb11da74bp+0, false, false),
TEST ("1.0000000596046",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffff36p+0, false,
- 0x1.000000fffff36p+0, false,
- 0x1.000000fffff36p+0, false,
- 0x1.000000fffff37p+0, false,
- false,
- 0x1.000000fffff36596p+0, false,
- 0x1.000000fffff36598p+0, false,
- 0x1.000000fffff36596p+0, false,
- 0x1.000000fffff36598p+0, false,
- false,
- 0x1.000000fffff36596p+0, false,
- 0x1.000000fffff36598p+0, false,
- 0x1.000000fffff36596p+0, false,
- 0x1.000000fffff36598p+0, false,
- false,
- 0x1.000000fffff36597d40e1b5026p+0, false,
- 0x1.000000fffff36597d40e1b50268p+0, false,
- 0x1.000000fffff36597d40e1b5026p+0, false,
- 0x1.000000fffff36597d40e1b50268p+0, false,
- false,
- 0x1.000000fffff36597d40e1b502655p+0, false,
- 0x1.000000fffff36597d40e1b502656p+0, false,
- 0x1.000000fffff36597d40e1b502655p+0, false,
- 0x1.000000fffff36597d40e1b502656p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000000fffff36p+0, false, false,
+ 0x1.000000fffff36p+0, false, false,
+ 0x1.000000fffff36p+0, false, false,
+ 0x1.000000fffff37p+0, false, false,
+ false,
+ 0x1.000000fffff36596p+0, false, false,
+ 0x1.000000fffff36598p+0, false, false,
+ 0x1.000000fffff36596p+0, false, false,
+ 0x1.000000fffff36598p+0, false, false,
+ false,
+ 0x1.000000fffff36596p+0, false, false,
+ 0x1.000000fffff36598p+0, false, false,
+ 0x1.000000fffff36596p+0, false, false,
+ 0x1.000000fffff36598p+0, false, false,
+ false,
+ 0x1.000000fffff36597d40e1b5026p+0, false, false,
+ 0x1.000000fffff36597d40e1b50268p+0, false, false,
+ 0x1.000000fffff36597d40e1b5026p+0, false, false,
+ 0x1.000000fffff36597d40e1b50268p+0, false, false,
+ false,
+ 0x1.000000fffff36597d40e1b502655p+0, false, false,
+ 0x1.000000fffff36597d40e1b502656p+0, false, false,
+ 0x1.000000fffff36597d40e1b502655p+0, false, false,
+ 0x1.000000fffff36597d40e1b502656p+0, false, false),
TEST ("1.000000059605",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001000063fp+0, false,
- 0x1.000001000064p+0, false,
- 0x1.000001000063fp+0, false,
- 0x1.000001000064p+0, false,
- false,
- 0x1.000001000063fcap+0, false,
- 0x1.000001000063fca2p+0, false,
- 0x1.000001000063fcap+0, false,
- 0x1.000001000063fca2p+0, false,
- false,
- 0x1.000001000063fcap+0, false,
- 0x1.000001000063fca2p+0, false,
- 0x1.000001000063fcap+0, false,
- 0x1.000001000063fca2p+0, false,
- false,
- 0x1.000001000063fca17533f5572f8p+0, false,
- 0x1.000001000063fca17533f5573p+0, false,
- 0x1.000001000063fca17533f5572f8p+0, false,
- 0x1.000001000063fca17533f5573p+0, false,
- false,
- 0x1.000001000063fca17533f5572fe9p+0, false,
- 0x1.000001000063fca17533f5572feap+0, false,
- 0x1.000001000063fca17533f5572fe9p+0, false,
- 0x1.000001000063fca17533f5572feap+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001000063fp+0, false, false,
+ 0x1.000001000064p+0, false, false,
+ 0x1.000001000063fp+0, false, false,
+ 0x1.000001000064p+0, false, false,
+ false,
+ 0x1.000001000063fcap+0, false, false,
+ 0x1.000001000063fca2p+0, false, false,
+ 0x1.000001000063fcap+0, false, false,
+ 0x1.000001000063fca2p+0, false, false,
+ false,
+ 0x1.000001000063fcap+0, false, false,
+ 0x1.000001000063fca2p+0, false, false,
+ 0x1.000001000063fcap+0, false, false,
+ 0x1.000001000063fca2p+0, false, false,
+ false,
+ 0x1.000001000063fca17533f5572f8p+0, false, false,
+ 0x1.000001000063fca17533f5573p+0, false, false,
+ 0x1.000001000063fca17533f5572f8p+0, false, false,
+ 0x1.000001000063fca17533f5573p+0, false, false,
+ false,
+ 0x1.000001000063fca17533f5572fe9p+0, false, false,
+ 0x1.000001000063fca17533f5572feap+0, false, false,
+ 0x1.000001000063fca17533f5572fe9p+0, false, false,
+ 0x1.000001000063fca17533f5572feap+0, false, false),
TEST ("1.00000005960",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffae49p+0, false,
- 0x1.000000fffae4ap+0, false,
- 0x1.000000fffae49p+0, false,
- 0x1.000000fffae4ap+0, false,
- false,
- 0x1.000000fffae49ca8p+0, false,
- 0x1.000000fffae49caap+0, false,
- 0x1.000000fffae49ca8p+0, false,
- 0x1.000000fffae49caap+0, false,
- false,
- 0x1.000000fffae49ca8p+0, false,
- 0x1.000000fffae49caap+0, false,
- 0x1.000000fffae49ca8p+0, false,
- 0x1.000000fffae49caap+0, false,
- false,
- 0x1.000000fffae49ca916dacfff38p+0, false,
- 0x1.000000fffae49ca916dacfff38p+0, false,
- 0x1.000000fffae49ca916dacfff38p+0, false,
- 0x1.000000fffae49ca916dacfff388p+0, false,
- false,
- 0x1.000000fffae49ca916dacfff382dp+0, false,
- 0x1.000000fffae49ca916dacfff382dp+0, false,
- 0x1.000000fffae49ca916dacfff382dp+0, false,
- 0x1.000000fffae49ca916dacfff382ep+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000000fffae49p+0, false, false,
+ 0x1.000000fffae4ap+0, false, false,
+ 0x1.000000fffae49p+0, false, false,
+ 0x1.000000fffae4ap+0, false, false,
+ false,
+ 0x1.000000fffae49ca8p+0, false, false,
+ 0x1.000000fffae49caap+0, false, false,
+ 0x1.000000fffae49ca8p+0, false, false,
+ 0x1.000000fffae49caap+0, false, false,
+ false,
+ 0x1.000000fffae49ca8p+0, false, false,
+ 0x1.000000fffae49caap+0, false, false,
+ 0x1.000000fffae49ca8p+0, false, false,
+ 0x1.000000fffae49caap+0, false, false,
+ false,
+ 0x1.000000fffae49ca916dacfff38p+0, false, false,
+ 0x1.000000fffae49ca916dacfff38p+0, false, false,
+ 0x1.000000fffae49ca916dacfff38p+0, false, false,
+ 0x1.000000fffae49ca916dacfff388p+0, false, false,
+ false,
+ 0x1.000000fffae49ca916dacfff382dp+0, false, false,
+ 0x1.000000fffae49ca916dacfff382dp+0, false, false,
+ 0x1.000000fffae49ca916dacfff382dp+0, false, false,
+ 0x1.000000fffae49ca916dacfff382ep+0, false, false),
TEST ("1.0000000596",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffae49p+0, false,
- 0x1.000000fffae4ap+0, false,
- 0x1.000000fffae49p+0, false,
- 0x1.000000fffae4ap+0, false,
- false,
- 0x1.000000fffae49ca8p+0, false,
- 0x1.000000fffae49caap+0, false,
- 0x1.000000fffae49ca8p+0, false,
- 0x1.000000fffae49caap+0, false,
- false,
- 0x1.000000fffae49ca8p+0, false,
- 0x1.000000fffae49caap+0, false,
- 0x1.000000fffae49ca8p+0, false,
- 0x1.000000fffae49caap+0, false,
- false,
- 0x1.000000fffae49ca916dacfff38p+0, false,
- 0x1.000000fffae49ca916dacfff38p+0, false,
- 0x1.000000fffae49ca916dacfff38p+0, false,
- 0x1.000000fffae49ca916dacfff388p+0, false,
- false,
- 0x1.000000fffae49ca916dacfff382dp+0, false,
- 0x1.000000fffae49ca916dacfff382dp+0, false,
- 0x1.000000fffae49ca916dacfff382dp+0, false,
- 0x1.000000fffae49ca916dacfff382ep+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000000fffae49p+0, false, false,
+ 0x1.000000fffae4ap+0, false, false,
+ 0x1.000000fffae49p+0, false, false,
+ 0x1.000000fffae4ap+0, false, false,
+ false,
+ 0x1.000000fffae49ca8p+0, false, false,
+ 0x1.000000fffae49caap+0, false, false,
+ 0x1.000000fffae49ca8p+0, false, false,
+ 0x1.000000fffae49caap+0, false, false,
+ false,
+ 0x1.000000fffae49ca8p+0, false, false,
+ 0x1.000000fffae49caap+0, false, false,
+ 0x1.000000fffae49ca8p+0, false, false,
+ 0x1.000000fffae49caap+0, false, false,
+ false,
+ 0x1.000000fffae49ca916dacfff38p+0, false, false,
+ 0x1.000000fffae49ca916dacfff38p+0, false, false,
+ 0x1.000000fffae49ca916dacfff38p+0, false, false,
+ 0x1.000000fffae49ca916dacfff388p+0, false, false,
+ false,
+ 0x1.000000fffae49ca916dacfff382dp+0, false, false,
+ 0x1.000000fffae49ca916dacfff382dp+0, false, false,
+ 0x1.000000fffae49ca916dacfff382dp+0, false, false,
+ 0x1.000000fffae49ca916dacfff382ep+0, false, false),
TEST ("1.000000060",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.00000101b2b29p+0, false,
- 0x1.00000101b2b2ap+0, false,
- 0x1.00000101b2b29p+0, false,
- 0x1.00000101b2b2ap+0, false,
- false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a48p+0, false,
- false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a48p+0, false,
- false,
- 0x1.00000101b2b29a4692b67b7ca3p+0, false,
- 0x1.00000101b2b29a4692b67b7ca3p+0, false,
- 0x1.00000101b2b29a4692b67b7ca3p+0, false,
- 0x1.00000101b2b29a4692b67b7ca38p+0, false,
- false,
- 0x1.00000101b2b29a4692b67b7ca313p+0, false,
- 0x1.00000101b2b29a4692b67b7ca314p+0, false,
- 0x1.00000101b2b29a4692b67b7ca313p+0, false,
- 0x1.00000101b2b29a4692b67b7ca314p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.00000101b2b29p+0, false, false,
+ 0x1.00000101b2b2ap+0, false, false,
+ 0x1.00000101b2b29p+0, false, false,
+ 0x1.00000101b2b2ap+0, false, false,
+ false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a48p+0, false, false,
+ false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a48p+0, false, false,
+ false,
+ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca38p+0, false, false,
+ false,
+ 0x1.00000101b2b29a4692b67b7ca313p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca314p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca313p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca314p+0, false, false),
TEST ("1.00000006",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.00000101b2b29p+0, false,
- 0x1.00000101b2b2ap+0, false,
- 0x1.00000101b2b29p+0, false,
- 0x1.00000101b2b2ap+0, false,
- false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a48p+0, false,
- false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a46p+0, false,
- 0x1.00000101b2b29a48p+0, false,
- false,
- 0x1.00000101b2b29a4692b67b7ca3p+0, false,
- 0x1.00000101b2b29a4692b67b7ca3p+0, false,
- 0x1.00000101b2b29a4692b67b7ca3p+0, false,
- 0x1.00000101b2b29a4692b67b7ca38p+0, false,
- false,
- 0x1.00000101b2b29a4692b67b7ca313p+0, false,
- 0x1.00000101b2b29a4692b67b7ca314p+0, false,
- 0x1.00000101b2b29a4692b67b7ca313p+0, false,
- 0x1.00000101b2b29a4692b67b7ca314p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.00000101b2b29p+0, false, false,
+ 0x1.00000101b2b2ap+0, false, false,
+ 0x1.00000101b2b29p+0, false, false,
+ 0x1.00000101b2b2ap+0, false, false,
+ false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a48p+0, false, false,
+ false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a46p+0, false, false,
+ 0x1.00000101b2b29a48p+0, false, false,
+ false,
+ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca38p+0, false, false,
+ false,
+ 0x1.00000101b2b29a4692b67b7ca313p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca314p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca313p+0, false, false,
+ 0x1.00000101b2b29a4692b67b7ca314p+0, false, false),
TEST ("1.0000001",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001ad7f29ap+0, false,
- 0x1.000001ad7f29bp+0, false,
- 0x1.000001ad7f29ap+0, false,
- 0x1.000001ad7f29bp+0, false,
- false,
- 0x1.000001ad7f29abcap+0, false,
- 0x1.000001ad7f29abcap+0, false,
- 0x1.000001ad7f29abcap+0, false,
- 0x1.000001ad7f29abccp+0, false,
- false,
- 0x1.000001ad7f29abcap+0, false,
- 0x1.000001ad7f29abcap+0, false,
- 0x1.000001ad7f29abcap+0, false,
- 0x1.000001ad7f29abccp+0, false,
- false,
- 0x1.000001ad7f29abcaf485787a65p+0, false,
- 0x1.000001ad7f29abcaf485787a65p+0, false,
- 0x1.000001ad7f29abcaf485787a65p+0, false,
- 0x1.000001ad7f29abcaf485787a658p+0, false,
- false,
- 0x1.000001ad7f29abcaf485787a652p+0, false,
- 0x1.000001ad7f29abcaf485787a6521p+0, false,
- 0x1.000001ad7f29abcaf485787a652p+0, false,
- 0x1.000001ad7f29abcaf485787a6521p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001ad7f29ap+0, false, false,
+ 0x1.000001ad7f29bp+0, false, false,
+ 0x1.000001ad7f29ap+0, false, false,
+ 0x1.000001ad7f29bp+0, false, false,
+ false,
+ 0x1.000001ad7f29abcap+0, false, false,
+ 0x1.000001ad7f29abcap+0, false, false,
+ 0x1.000001ad7f29abcap+0, false, false,
+ 0x1.000001ad7f29abccp+0, false, false,
+ false,
+ 0x1.000001ad7f29abcap+0, false, false,
+ 0x1.000001ad7f29abcap+0, false, false,
+ 0x1.000001ad7f29abcap+0, false, false,
+ 0x1.000001ad7f29abccp+0, false, false,
+ false,
+ 0x1.000001ad7f29abcaf485787a65p+0, false, false,
+ 0x1.000001ad7f29abcaf485787a65p+0, false, false,
+ 0x1.000001ad7f29abcaf485787a65p+0, false, false,
+ 0x1.000001ad7f29abcaf485787a658p+0, false, false,
+ false,
+ 0x1.000001ad7f29abcaf485787a652p+0, false, false,
+ 0x1.000001ad7f29abcaf485787a6521p+0, false, false,
+ 0x1.000001ad7f29abcaf485787a652p+0, false, false,
+ 0x1.000001ad7f29abcaf485787a6521p+0, false, false),
TEST ("1.000000",
true,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- true,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- true,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- true,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- true,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- true,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ true,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ true,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ true,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ true,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ true,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false),
TEST ("1.00000000000000011113",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- false,
- 0x1.0000000000000801fc96557232p+0, false,
- 0x1.0000000000000801fc96557232p+0, false,
- 0x1.0000000000000801fc96557232p+0, false,
- 0x1.0000000000000801fc965572328p+0, false,
- false,
- 0x1.0000000000000801fc9655723222p+0, false,
- 0x1.0000000000000801fc9655723222p+0, false,
- 0x1.0000000000000801fc9655723222p+0, false,
- 0x1.0000000000000801fc9655723223p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ false,
+ 0x1.0000000000000801fc96557232p+0, false, false,
+ 0x1.0000000000000801fc96557232p+0, false, false,
+ 0x1.0000000000000801fc96557232p+0, false, false,
+ 0x1.0000000000000801fc965572328p+0, false, false,
+ false,
+ 0x1.0000000000000801fc9655723222p+0, false, false,
+ 0x1.0000000000000801fc9655723222p+0, false, false,
+ 0x1.0000000000000801fc9655723222p+0, false, false,
+ 0x1.0000000000000801fc9655723223p+0, false, false),
TEST ("1.00000000000000011103",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- false,
- 0x1.00000000000008002459c076c48p+0, false,
- 0x1.00000000000008002459c076c5p+0, false,
- 0x1.00000000000008002459c076c48p+0, false,
- 0x1.00000000000008002459c076c5p+0, false,
- false,
- 0x1.00000000000008002459c076c4f7p+0, false,
- 0x1.00000000000008002459c076c4f8p+0, false,
- 0x1.00000000000008002459c076c4f7p+0, false,
- 0x1.00000000000008002459c076c4f8p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ false,
+ 0x1.00000000000008002459c076c48p+0, false, false,
+ 0x1.00000000000008002459c076c5p+0, false, false,
+ 0x1.00000000000008002459c076c48p+0, false, false,
+ 0x1.00000000000008002459c076c5p+0, false, false,
+ false,
+ 0x1.00000000000008002459c076c4f7p+0, false, false,
+ 0x1.00000000000008002459c076c4f8p+0, false, false,
+ 0x1.00000000000008002459c076c4f7p+0, false, false,
+ 0x1.00000000000008002459c076c4f8p+0, false, false),
TEST ("1.00000000000000011102",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- false,
- 0x1.00000000000007fff5207e5dap+0, false,
- 0x1.00000000000007fff5207e5da08p+0, false,
- 0x1.00000000000007fff5207e5dap+0, false,
- 0x1.00000000000007fff5207e5da08p+0, false,
- false,
- 0x1.00000000000007fff5207e5da073p+0, false,
- 0x1.00000000000007fff5207e5da073p+0, false,
- 0x1.00000000000007fff5207e5da073p+0, false,
- 0x1.00000000000007fff5207e5da074p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ false,
+ 0x1.00000000000007fff5207e5dap+0, false, false,
+ 0x1.00000000000007fff5207e5da08p+0, false, false,
+ 0x1.00000000000007fff5207e5dap+0, false, false,
+ 0x1.00000000000007fff5207e5da08p+0, false, false,
+ false,
+ 0x1.00000000000007fff5207e5da073p+0, false, false,
+ 0x1.00000000000007fff5207e5da073p+0, false, false,
+ 0x1.00000000000007fff5207e5da073p+0, false, false,
+ 0x1.00000000000007fff5207e5da074p+0, false, false),
TEST ("1.00000000000000011101",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- false,
- 0x1.00000000000007ffc5e73c447b8p+0, false,
- 0x1.00000000000007ffc5e73c447cp+0, false,
- 0x1.00000000000007ffc5e73c447b8p+0, false,
- 0x1.00000000000007ffc5e73c447cp+0, false,
- false,
- 0x1.00000000000007ffc5e73c447befp+0, false,
- 0x1.00000000000007ffc5e73c447befp+0, false,
- 0x1.00000000000007ffc5e73c447befp+0, false,
- 0x1.00000000000007ffc5e73c447bfp+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ false,
+ 0x1.00000000000007ffc5e73c447b8p+0, false, false,
+ 0x1.00000000000007ffc5e73c447cp+0, false, false,
+ 0x1.00000000000007ffc5e73c447b8p+0, false, false,
+ 0x1.00000000000007ffc5e73c447cp+0, false, false,
+ false,
+ 0x1.00000000000007ffc5e73c447befp+0, false, false,
+ 0x1.00000000000007ffc5e73c447befp+0, false, false,
+ 0x1.00000000000007ffc5e73c447befp+0, false, false,
+ 0x1.00000000000007ffc5e73c447bfp+0, false, false),
TEST ("1.0000000000000001111",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.0000000000000802p+0, false,
- false,
- 0x1.00000000000008016eea8f26c48p+0, false,
- 0x1.00000000000008016eea8f26c48p+0, false,
- 0x1.00000000000008016eea8f26c48p+0, false,
- 0x1.00000000000008016eea8f26c5p+0, false,
- false,
- 0x1.00000000000008016eea8f26c495p+0, false,
- 0x1.00000000000008016eea8f26c496p+0, false,
- 0x1.00000000000008016eea8f26c495p+0, false,
- 0x1.00000000000008016eea8f26c496p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.0000000000000802p+0, false, false,
+ false,
+ 0x1.00000000000008016eea8f26c48p+0, false, false,
+ 0x1.00000000000008016eea8f26c48p+0, false, false,
+ 0x1.00000000000008016eea8f26c48p+0, false, false,
+ 0x1.00000000000008016eea8f26c5p+0, false, false,
+ false,
+ 0x1.00000000000008016eea8f26c495p+0, false, false,
+ 0x1.00000000000008016eea8f26c496p+0, false, false,
+ 0x1.00000000000008016eea8f26c495p+0, false, false,
+ 0x1.00000000000008016eea8f26c496p+0, false, false),
TEST ("1.000000000000000111",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000007fep+0, false,
- 0x1.00000000000008p+0, false,
- false,
- 0x1.00000000000007ff96adfa2b57p+0, false,
- 0x1.00000000000007ff96adfa2b578p+0, false,
- 0x1.00000000000007ff96adfa2b57p+0, false,
- 0x1.00000000000007ff96adfa2b578p+0, false,
- false,
- 0x1.00000000000007ff96adfa2b576ap+0, false,
- 0x1.00000000000007ff96adfa2b576bp+0, false,
- 0x1.00000000000007ff96adfa2b576ap+0, false,
- 0x1.00000000000007ff96adfa2b576bp+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000007fep+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ false,
+ 0x1.00000000000007ff96adfa2b57p+0, false, false,
+ 0x1.00000000000007ff96adfa2b578p+0, false, false,
+ 0x1.00000000000007ff96adfa2b57p+0, false, false,
+ 0x1.00000000000007ff96adfa2b578p+0, false, false,
+ false,
+ 0x1.00000000000007ff96adfa2b576ap+0, false, false,
+ 0x1.00000000000007ff96adfa2b576bp+0, false, false,
+ 0x1.00000000000007ff96adfa2b576ap+0, false, false,
+ 0x1.00000000000007ff96adfa2b576bp+0, false, false),
TEST ("1.00000000000000011",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1.00000000000007ecp+0, false,
- 0x1.00000000000007eep+0, false,
- 0x1.00000000000007ecp+0, false,
- 0x1.00000000000007eep+0, false,
- false,
- 0x1.00000000000007ecp+0, false,
- 0x1.00000000000007eep+0, false,
- 0x1.00000000000007ecp+0, false,
- 0x1.00000000000007eep+0, false,
- false,
- 0x1.00000000000007ed24502859138p+0, false,
- 0x1.00000000000007ed24502859138p+0, false,
- 0x1.00000000000007ed24502859138p+0, false,
- 0x1.00000000000007ed2450285914p+0, false,
- false,
- 0x1.00000000000007ed2450285913bfp+0, false,
- 0x1.00000000000007ed2450285913bfp+0, false,
- 0x1.00000000000007ed2450285913bfp+0, false,
- 0x1.00000000000007ed2450285913cp+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1.00000000000007ecp+0, false, false,
+ 0x1.00000000000007eep+0, false, false,
+ 0x1.00000000000007ecp+0, false, false,
+ 0x1.00000000000007eep+0, false, false,
+ false,
+ 0x1.00000000000007ecp+0, false, false,
+ 0x1.00000000000007eep+0, false, false,
+ 0x1.00000000000007ecp+0, false, false,
+ 0x1.00000000000007eep+0, false, false,
+ false,
+ 0x1.00000000000007ed24502859138p+0, false, false,
+ 0x1.00000000000007ed24502859138p+0, false, false,
+ 0x1.00000000000007ed24502859138p+0, false, false,
+ 0x1.00000000000007ed2450285914p+0, false, false,
+ false,
+ 0x1.00000000000007ed2450285913bfp+0, false, false,
+ 0x1.00000000000007ed2450285913bfp+0, false, false,
+ 0x1.00000000000007ed2450285913bfp+0, false, false,
+ 0x1.00000000000007ed2450285913cp+0, false, false),
TEST ("1.0000000000000001",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1.0000000000000734p+0, false,
- 0x1.0000000000000734p+0, false,
- 0x1.0000000000000734p+0, false,
- 0x1.0000000000000736p+0, false,
- false,
- 0x1.0000000000000734p+0, false,
- 0x1.0000000000000734p+0, false,
- 0x1.0000000000000734p+0, false,
- 0x1.0000000000000736p+0, false,
- false,
- 0x1.0000000000000734aca5f6226fp+0, false,
- 0x1.0000000000000734aca5f6226fp+0, false,
- 0x1.0000000000000734aca5f6226fp+0, false,
- 0x1.0000000000000734aca5f6226f8p+0, false,
- false,
- 0x1.0000000000000734aca5f6226f0ap+0, false,
- 0x1.0000000000000734aca5f6226f0bp+0, false,
- 0x1.0000000000000734aca5f6226f0ap+0, false,
- 0x1.0000000000000734aca5f6226f0bp+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1.0000000000000734p+0, false, false,
+ 0x1.0000000000000734p+0, false, false,
+ 0x1.0000000000000734p+0, false, false,
+ 0x1.0000000000000736p+0, false, false,
+ false,
+ 0x1.0000000000000734p+0, false, false,
+ 0x1.0000000000000734p+0, false, false,
+ 0x1.0000000000000734p+0, false, false,
+ 0x1.0000000000000736p+0, false, false,
+ false,
+ 0x1.0000000000000734aca5f6226fp+0, false, false,
+ 0x1.0000000000000734aca5f6226fp+0, false, false,
+ 0x1.0000000000000734aca5f6226fp+0, false, false,
+ 0x1.0000000000000734aca5f6226f8p+0, false, false,
+ false,
+ 0x1.0000000000000734aca5f6226f0ap+0, false, false,
+ 0x1.0000000000000734aca5f6226f0bp+0, false, false,
+ 0x1.0000000000000734aca5f6226f0ap+0, false, false,
+ 0x1.0000000000000734aca5f6226f0bp+0, false, false),
TEST ("3929201589819414e-25",
false,
- 0x1.b0053p-32, false,
- 0x1.b00532p-32, false,
- 0x1.b0053p-32, false,
- 0x1.b00532p-32, false,
- false,
- 0x1.b005314e2421ep-32, false,
- 0x1.b005314e2421ep-32, false,
- 0x1.b005314e2421ep-32, false,
- 0x1.b005314e2421fp-32, false,
- false,
- 0x1.b005314e2421e7fep-32, false,
- 0x1.b005314e2421e8p-32, false,
- 0x1.b005314e2421e7fep-32, false,
- 0x1.b005314e2421e8p-32, false,
- false,
- 0x1.b005314e2421e7fep-32, false,
- 0x1.b005314e2421e8p-32, false,
- 0x1.b005314e2421e7fep-32, false,
- 0x1.b005314e2421e8p-32, false,
- false,
- 0x1.b005314e2421e7ffb472840c5ap-32, false,
- 0x1.b005314e2421e7ffb472840c5a8p-32, false,
- 0x1.b005314e2421e7ffb472840c5ap-32, false,
- 0x1.b005314e2421e7ffb472840c5a8p-32, false,
- false,
- 0x1.b005314e2421e7ffb472840c5a6ep-32, false,
- 0x1.b005314e2421e7ffb472840c5a6fp-32, false,
- 0x1.b005314e2421e7ffb472840c5a6ep-32, false,
- 0x1.b005314e2421e7ffb472840c5a6fp-32, false),
+ 0x1.b0053p-32, false, false,
+ 0x1.b00532p-32, false, false,
+ 0x1.b0053p-32, false, false,
+ 0x1.b00532p-32, false, false,
+ false,
+ 0x1.b005314e2421ep-32, false, false,
+ 0x1.b005314e2421ep-32, false, false,
+ 0x1.b005314e2421ep-32, false, false,
+ 0x1.b005314e2421fp-32, false, false,
+ false,
+ 0x1.b005314e2421e7fep-32, false, false,
+ 0x1.b005314e2421e8p-32, false, false,
+ 0x1.b005314e2421e7fep-32, false, false,
+ 0x1.b005314e2421e8p-32, false, false,
+ false,
+ 0x1.b005314e2421e7fep-32, false, false,
+ 0x1.b005314e2421e8p-32, false, false,
+ 0x1.b005314e2421e7fep-32, false, false,
+ 0x1.b005314e2421e8p-32, false, false,
+ false,
+ 0x1.b005314e2421e7ffb472840c5ap-32, false, false,
+ 0x1.b005314e2421e7ffb472840c5a8p-32, false, false,
+ 0x1.b005314e2421e7ffb472840c5ap-32, false, false,
+ 0x1.b005314e2421e7ffb472840c5a8p-32, false, false,
+ false,
+ 0x1.b005314e2421e7ffb472840c5a6ep-32, false, false,
+ 0x1.b005314e2421e7ffb472840c5a6fp-32, false, false,
+ 0x1.b005314e2421e7ffb472840c5a6ep-32, false, false,
+ 0x1.b005314e2421e7ffb472840c5a6fp-32, false, false),
TEST ("0.0000000000000000000000000000000000000000000021019476964872"
"256063855943749348741969203929128147736576356024258346866240"
"28790902229957282543182373046875",
false,
- 0x8p-152, false,
- 0x1p-148, false,
- 0x8p-152, false,
- 0x1p-148, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false),
+ 0x8p-152, false, true,
+ 0x1p-148, false, true,
+ 0x8p-152, false, true,
+ 0x1p-148, false, true,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false),
TEST ("1.00000005960464477539062499",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000000fffffffp+0, false,
- 0x1.000001p+0, false,
- 0x1.000000fffffffp+0, false,
- 0x1.000001p+0, false,
- false,
- 0x1.000000fffffffffep+0, false,
- 0x1.000001p+0, false,
- 0x1.000000fffffffffep+0, false,
- 0x1.000001p+0, false,
- false,
- 0x1.000000fffffffffep+0, false,
- 0x1.000001p+0, false,
- 0x1.000000fffffffffep+0, false,
- 0x1.000001p+0, false,
- false,
- 0x1.000000fffffffffffffffce7b78p+0, false,
- 0x1.000000fffffffffffffffce7b8p+0, false,
- 0x1.000000fffffffffffffffce7b78p+0, false,
- 0x1.000000fffffffffffffffce7b8p+0, false,
- false,
- 0x1.000000fffffffffffffffce7b7e7p+0, false,
- 0x1.000000fffffffffffffffce7b7e7p+0, false,
- 0x1.000000fffffffffffffffce7b7e7p+0, false,
- 0x1.000000fffffffffffffffce7b7e8p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000000fffffffp+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000000fffffffp+0, false, false,
+ 0x1.000001p+0, false, false,
+ false,
+ 0x1.000000fffffffffep+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000000fffffffffep+0, false, false,
+ 0x1.000001p+0, false, false,
+ false,
+ 0x1.000000fffffffffep+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000000fffffffffep+0, false, false,
+ 0x1.000001p+0, false, false,
+ false,
+ 0x1.000000fffffffffffffffce7b78p+0, false, false,
+ 0x1.000000fffffffffffffffce7b8p+0, false, false,
+ 0x1.000000fffffffffffffffce7b78p+0, false, false,
+ 0x1.000000fffffffffffffffce7b8p+0, false, false,
+ false,
+ 0x1.000000fffffffffffffffce7b7e7p+0, false, false,
+ 0x1.000000fffffffffffffffce7b7e7p+0, false, false,
+ 0x1.000000fffffffffffffffce7b7e7p+0, false, false,
+ 0x1.000000fffffffffffffffce7b7e8p+0, false, false),
TEST ("1.000000059604644775390625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- true,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- true,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- true,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- true,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ true,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ true,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ true,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ true,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false),
TEST ("1.00000005960464477539062501",
false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000001p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000000002p+0, false,
- false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.000001p+0, false,
- 0x1.0000010000000002p+0, false,
- false,
- 0x1.00000100000000000000031848p+0, false,
- 0x1.00000100000000000000031848p+0, false,
- 0x1.00000100000000000000031848p+0, false,
- 0x1.000001000000000000000318488p+0, false,
- false,
- 0x1.0000010000000000000003184818p+0, false,
- 0x1.0000010000000000000003184819p+0, false,
- 0x1.0000010000000000000003184818p+0, false,
- 0x1.0000010000000000000003184819p+0, false),
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000001p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.000001p+0, false, false,
+ 0x1.0000010000000002p+0, false, false,
+ false,
+ 0x1.00000100000000000000031848p+0, false, false,
+ 0x1.00000100000000000000031848p+0, false, false,
+ 0x1.00000100000000000000031848p+0, false, false,
+ 0x1.000001000000000000000318488p+0, false, false,
+ false,
+ 0x1.0000010000000000000003184818p+0, false, false,
+ 0x1.0000010000000000000003184819p+0, false, false,
+ 0x1.0000010000000000000003184818p+0, false, false,
+ 0x1.0000010000000000000003184819p+0, false, false),
TEST ("1.00000011920928955078125",
true,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false),
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false),
TEST ("1.00000017881393432617187499",
false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000002p+0, false,
- 0x1.000004p+0, false,
- false,
- 0x1.000002fffffffp+0, false,
- 0x1.000003p+0, false,
- 0x1.000002fffffffp+0, false,
- 0x1.000003p+0, false,
- false,
- 0x1.000002fffffffffep+0, false,
- 0x1.000003p+0, false,
- 0x1.000002fffffffffep+0, false,
- 0x1.000003p+0, false,
- false,
- 0x1.000002fffffffffep+0, false,
- 0x1.000003p+0, false,
- 0x1.000002fffffffffep+0, false,
- 0x1.000003p+0, false,
- false,
- 0x1.000002fffffffffffffffce7b78p+0, false,
- 0x1.000002fffffffffffffffce7b8p+0, false,
- 0x1.000002fffffffffffffffce7b78p+0, false,
- 0x1.000002fffffffffffffffce7b8p+0, false,
- false,
- 0x1.000002fffffffffffffffce7b7e7p+0, false,
- 0x1.000002fffffffffffffffce7b7e7p+0, false,
- 0x1.000002fffffffffffffffce7b7e7p+0, false,
- 0x1.000002fffffffffffffffce7b7e8p+0, false),
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000004p+0, false, false,
+ false,
+ 0x1.000002fffffffp+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000002fffffffp+0, false, false,
+ 0x1.000003p+0, false, false,
+ false,
+ 0x1.000002fffffffffep+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000002fffffffffep+0, false, false,
+ 0x1.000003p+0, false, false,
+ false,
+ 0x1.000002fffffffffep+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000002fffffffffep+0, false, false,
+ 0x1.000003p+0, false, false,
+ false,
+ 0x1.000002fffffffffffffffce7b78p+0, false, false,
+ 0x1.000002fffffffffffffffce7b8p+0, false, false,
+ 0x1.000002fffffffffffffffce7b78p+0, false, false,
+ 0x1.000002fffffffffffffffce7b8p+0, false, false,
+ false,
+ 0x1.000002fffffffffffffffce7b7e7p+0, false, false,
+ 0x1.000002fffffffffffffffce7b7e7p+0, false, false,
+ 0x1.000002fffffffffffffffce7b7e7p+0, false, false,
+ 0x1.000002fffffffffffffffce7b7e8p+0, false, false),
TEST ("1.000000178813934326171875",
false,
- 0x1.000002p+0, false,
- 0x1.000004p+0, false,
- 0x1.000002p+0, false,
- 0x1.000004p+0, false,
- true,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- true,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- true,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- true,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- true,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false),
+ 0x1.000002p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000004p+0, false, false,
+ true,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ true,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ true,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ true,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ true,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false),
TEST ("1.00000017881393432617187501",
false,
- 0x1.000002p+0, false,
- 0x1.000004p+0, false,
- 0x1.000002p+0, false,
- 0x1.000004p+0, false,
- false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.0000030000001p+0, false,
- false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.0000030000000002p+0, false,
- false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.000003p+0, false,
- 0x1.0000030000000002p+0, false,
- false,
- 0x1.00000300000000000000031848p+0, false,
- 0x1.00000300000000000000031848p+0, false,
- 0x1.00000300000000000000031848p+0, false,
- 0x1.000003000000000000000318488p+0, false,
- false,
- 0x1.0000030000000000000003184818p+0, false,
- 0x1.0000030000000000000003184819p+0, false,
- 0x1.0000030000000000000003184818p+0, false,
- 0x1.0000030000000000000003184819p+0, false),
+ 0x1.000002p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000002p+0, false, false,
+ 0x1.000004p+0, false, false,
+ false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.0000030000001p+0, false, false,
+ false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.0000030000000002p+0, false, false,
+ false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.000003p+0, false, false,
+ 0x1.0000030000000002p+0, false, false,
+ false,
+ 0x1.00000300000000000000031848p+0, false, false,
+ 0x1.00000300000000000000031848p+0, false, false,
+ 0x1.00000300000000000000031848p+0, false, false,
+ 0x1.000003000000000000000318488p+0, false, false,
+ false,
+ 0x1.0000030000000000000003184818p+0, false, false,
+ 0x1.0000030000000000000003184819p+0, false, false,
+ 0x1.0000030000000000000003184818p+0, false, false,
+ 0x1.0000030000000000000003184819p+0, false, false),
TEST ("1.0000002384185791015625",
true,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- true,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- true,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- true,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- true,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- true,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false,
- 0x1.000004p+0, false),
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ true,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ true,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ true,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ true,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ true,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false,
+ 0x1.000004p+0, false, false),
TEST ("1.08420217248550443400745280086994171142578125e-19",
true,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- true,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- true,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- true,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- true,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- true,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false),
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ true,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ true,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ true,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ true,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ true,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false),
TEST ("1.0842022371089897897127399001987457793916291848290711641311"
"645507812499e-19",
false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2.000004p-64, false,
- false,
- 0x2.000001ffffffep-64, false,
- 0x2.000002p-64, false,
- 0x2.000001ffffffep-64, false,
- 0x2.000002p-64, false,
- false,
- 0x2.000001fffffffffcp-64, false,
- 0x2.000002p-64, false,
- 0x2.000001fffffffffcp-64, false,
- 0x2.000002p-64, false,
- false,
- 0x2.000001fffffffffcp-64, false,
- 0x2.000002p-64, false,
- 0x2.000001fffffffffcp-64, false,
- 0x2.000002p-64, false,
- false,
- 0x2.000001ffffffffffffffffffffp-64, false,
- 0x2.000002p-64, false,
- 0x2.000001ffffffffffffffffffffp-64, false,
- 0x2.000002p-64, false,
- false,
- 0x2.000001fffffffffffffffffffffep-64, false,
- 0x2.000002p-64, false,
- 0x2.000001fffffffffffffffffffffep-64, false,
- 0x2.000002p-64, false),
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2.000004p-64, false, false,
+ false,
+ 0x2.000001ffffffep-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000001ffffffep-64, false, false,
+ 0x2.000002p-64, false, false,
+ false,
+ 0x2.000001fffffffffcp-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000001fffffffffcp-64, false, false,
+ 0x2.000002p-64, false, false,
+ false,
+ 0x2.000001fffffffffcp-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000001fffffffffcp-64, false, false,
+ 0x2.000002p-64, false, false,
+ false,
+ 0x2.000001ffffffffffffffffffffp-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000001ffffffffffffffffffffp-64, false, false,
+ 0x2.000002p-64, false, false,
+ false,
+ 0x2.000001fffffffffffffffffffffep-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000001fffffffffffffffffffffep-64, false, false,
+ 0x2.000002p-64, false, false),
TEST ("1.0842022371089897897127399001987457793916291848290711641311"
"6455078125e-19",
false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2p-64, false,
- 0x2.000004p-64, false,
- true,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- true,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- true,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- true,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- true,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false),
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2.000004p-64, false, false,
+ true,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ true,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ true,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ true,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ true,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false),
TEST ("1.0842022371089897897127399001987457793916291848290711641311"
"645507812501e-19",
false,
- 0x2p-64, false,
- 0x2.000004p-64, false,
- 0x2p-64, false,
- 0x2.000004p-64, false,
- false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.0000020000002p-64, false,
- false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.0000020000000004p-64, false,
- false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.0000020000000004p-64, false,
- false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.00000200000000000000000001p-64, false,
- false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.000002p-64, false,
- 0x2.0000020000000000000000000002p-64, false),
+ 0x2p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2p-64, false, false,
+ 0x2.000004p-64, false, false,
+ false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.0000020000002p-64, false, false,
+ false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.0000020000000004p-64, false, false,
+ false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.0000020000000004p-64, false, false,
+ false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.00000200000000000000000001p-64, false, false,
+ false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.000002p-64, false, false,
+ 0x2.0000020000000000000000000002p-64, false, false),
TEST ("1.0842023017324751454180269995275498473574771196581423282623"
"291015625e-19",
true,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- true,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- true,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- true,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- true,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- true,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false),
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ true,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ true,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ true,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ true,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ true,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false),
TEST ("1.0842023663559605011233140988563539153233250544872134923934"
"936523437499e-19",
false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000004p-64, false,
- 0x2.000008p-64, false,
- false,
- 0x2.000005ffffffep-64, false,
- 0x2.000006p-64, false,
- 0x2.000005ffffffep-64, false,
- 0x2.000006p-64, false,
- false,
- 0x2.000005fffffffffcp-64, false,
- 0x2.000006p-64, false,
- 0x2.000005fffffffffcp-64, false,
- 0x2.000006p-64, false,
- false,
- 0x2.000005fffffffffcp-64, false,
- 0x2.000006p-64, false,
- 0x2.000005fffffffffcp-64, false,
- 0x2.000006p-64, false,
- false,
- 0x2.000005ffffffffffffffffffffp-64, false,
- 0x2.000006p-64, false,
- 0x2.000005ffffffffffffffffffffp-64, false,
- 0x2.000006p-64, false,
- false,
- 0x2.000005fffffffffffffffffffffep-64, false,
- 0x2.000006p-64, false,
- 0x2.000005fffffffffffffffffffffep-64, false,
- 0x2.000006p-64, false),
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000008p-64, false, false,
+ false,
+ 0x2.000005ffffffep-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000005ffffffep-64, false, false,
+ 0x2.000006p-64, false, false,
+ false,
+ 0x2.000005fffffffffcp-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000005fffffffffcp-64, false, false,
+ 0x2.000006p-64, false, false,
+ false,
+ 0x2.000005fffffffffcp-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000005fffffffffcp-64, false, false,
+ 0x2.000006p-64, false, false,
+ false,
+ 0x2.000005ffffffffffffffffffffp-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000005ffffffffffffffffffffp-64, false, false,
+ 0x2.000006p-64, false, false,
+ false,
+ 0x2.000005fffffffffffffffffffffep-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000005fffffffffffffffffffffep-64, false, false,
+ 0x2.000006p-64, false, false),
TEST ("1.0842023663559605011233140988563539153233250544872134923934"
"9365234375e-19",
false,
- 0x2.000004p-64, false,
- 0x2.000008p-64, false,
- 0x2.000004p-64, false,
- 0x2.000008p-64, false,
- true,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- true,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- true,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- true,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- true,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false),
+ 0x2.000004p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000008p-64, false, false,
+ true,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ true,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ true,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ true,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ true,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false),
TEST ("1.0842023663559605011233140988563539153233250544872134923934"
"936523437501e-19",
false,
- 0x2.000004p-64, false,
- 0x2.000008p-64, false,
- 0x2.000004p-64, false,
- 0x2.000008p-64, false,
- false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.0000060000002p-64, false,
- false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.0000060000000004p-64, false,
- false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.0000060000000004p-64, false,
- false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.00000600000000000000000001p-64, false,
- false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.000006p-64, false,
- 0x2.0000060000000000000000000002p-64, false),
+ 0x2.000004p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000004p-64, false, false,
+ 0x2.000008p-64, false, false,
+ false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.0000060000002p-64, false, false,
+ false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.0000060000000004p-64, false, false,
+ false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.0000060000000004p-64, false, false,
+ false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.00000600000000000000000001p-64, false, false,
+ false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.000006p-64, false, false,
+ 0x2.0000060000000000000000000002p-64, false, false),
TEST ("1.0842024309794458568286011981851579832891729893162846565246"
"58203125e-19",
true,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- true,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- true,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- true,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- true,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- true,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false,
- 0x2.000008p-64, false),
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ true,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ true,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ true,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ true,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ true,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false,
+ 0x2.000008p-64, false, false),
TEST ("7.5231638452626400509999138382223723380394595633413601376560"
"1092018187046051025390625e-37",
true,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- true,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- true,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- true,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- true,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- true,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false),
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ true,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ true,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ true,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ true,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ true,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false),
TEST ("7.5231642936781486349413765338158389908126215730251815381410"
"578824437213052434003657253924757242202758789062499e-37",
false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1.000002p-120, false,
- false,
- 0x1.000000fffffffp-120, false,
- 0x1.000001p-120, false,
- 0x1.000000fffffffp-120, false,
- 0x1.000001p-120, false,
- false,
- 0x1.000000fffffffffep-120, false,
- 0x1.000001p-120, false,
- 0x1.000000fffffffffep-120, false,
- 0x1.000001p-120, false,
- false,
- 0x1.000000fffffffffep-120, false,
- 0x1.000001p-120, false,
- 0x1.000000fffffffffep-120, false,
- 0x1.000001p-120, false,
- false,
- 0x1.000000ffffffffffffffffffff8p-120, false,
- 0x1.000001p-120, false,
- 0x1.000000ffffffffffffffffffff8p-120, false,
- 0x1.000001p-120, false,
- false,
- 0x1.000000ffffffffffffffffffffffp-120, false,
- 0x1.000001p-120, false,
- 0x1.000000ffffffffffffffffffffffp-120, false,
- 0x1.000001p-120, false),
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1.000002p-120, false, false,
+ false,
+ 0x1.000000fffffffp-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000000fffffffp-120, false, false,
+ 0x1.000001p-120, false, false,
+ false,
+ 0x1.000000fffffffffep-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000000fffffffffep-120, false, false,
+ 0x1.000001p-120, false, false,
+ false,
+ 0x1.000000fffffffffep-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000000fffffffffep-120, false, false,
+ 0x1.000001p-120, false, false,
+ false,
+ 0x1.000000ffffffffffffffffffff8p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000000ffffffffffffffffffff8p-120, false, false,
+ 0x1.000001p-120, false, false,
+ false,
+ 0x1.000000ffffffffffffffffffffffp-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000000ffffffffffffffffffffffp-120, false, false,
+ 0x1.000001p-120, false, false),
TEST ("7.5231642936781486349413765338158389908126215730251815381410"
"5788244372130524340036572539247572422027587890625e-37",
false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1p-120, false,
- 0x1.000002p-120, false,
- true,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- true,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- true,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- true,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- true,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false),
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1.000002p-120, false, false,
+ true,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ true,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ true,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ true,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ true,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false),
TEST ("7.5231642936781486349413765338158389908126215730251815381410"
"578824437213052434003657253924757242202758789062501e-37",
false,
- 0x1p-120, false,
- 0x1.000002p-120, false,
- 0x1p-120, false,
- 0x1.000002p-120, false,
- false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.0000010000001p-120, false,
- false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.0000010000000002p-120, false,
- false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.0000010000000002p-120, false,
- false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001000000000000000000008p-120, false,
- false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.000001p-120, false,
- 0x1.0000010000000000000000000001p-120, false),
+ 0x1p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1p-120, false, false,
+ 0x1.000002p-120, false, false,
+ false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.0000010000001p-120, false, false,
+ false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.0000010000000002p-120, false, false,
+ false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.0000010000000002p-120, false, false,
+ false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001000000000000000000008p-120, false, false,
+ false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.000001p-120, false, false,
+ 0x1.0000010000000000000000000001p-120, false, false),
TEST ("7.5231647420936572188828392294093056435857835827090029386261"
"048447055721499765468252007849514484405517578125e-37",
true,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- true,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- true,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- true,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- true,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- true,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false),
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ true,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ true,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ true,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ true,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ true,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false),
TEST ("7.5231651905091658028243019250027722963589455923928243391111"
"518069674229947096932846761774271726608276367187499e-37",
false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000002p-120, false,
- 0x1.000004p-120, false,
- false,
- 0x1.000002fffffffp-120, false,
- 0x1.000003p-120, false,
- 0x1.000002fffffffp-120, false,
- 0x1.000003p-120, false,
- false,
- 0x1.000002fffffffffep-120, false,
- 0x1.000003p-120, false,
- 0x1.000002fffffffffep-120, false,
- 0x1.000003p-120, false,
- false,
- 0x1.000002fffffffffep-120, false,
- 0x1.000003p-120, false,
- 0x1.000002fffffffffep-120, false,
- 0x1.000003p-120, false,
- false,
- 0x1.000002ffffffffffffffffffff8p-120, false,
- 0x1.000003p-120, false,
- 0x1.000002ffffffffffffffffffff8p-120, false,
- 0x1.000003p-120, false,
- false,
- 0x1.000002ffffffffffffffffffffffp-120, false,
- 0x1.000003p-120, false,
- 0x1.000002ffffffffffffffffffffffp-120, false,
- 0x1.000003p-120, false),
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000004p-120, false, false,
+ false,
+ 0x1.000002fffffffp-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000002fffffffp-120, false, false,
+ 0x1.000003p-120, false, false,
+ false,
+ 0x1.000002fffffffffep-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000002fffffffffep-120, false, false,
+ 0x1.000003p-120, false, false,
+ false,
+ 0x1.000002fffffffffep-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000002fffffffffep-120, false, false,
+ 0x1.000003p-120, false, false,
+ false,
+ 0x1.000002ffffffffffffffffffff8p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000002ffffffffffffffffffff8p-120, false, false,
+ 0x1.000003p-120, false, false,
+ false,
+ 0x1.000002ffffffffffffffffffffffp-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000002ffffffffffffffffffffffp-120, false, false,
+ 0x1.000003p-120, false, false),
TEST ("7.5231651905091658028243019250027722963589455923928243391111"
"5180696742299470969328467617742717266082763671875e-37",
false,
- 0x1.000002p-120, false,
- 0x1.000004p-120, false,
- 0x1.000002p-120, false,
- 0x1.000004p-120, false,
- true,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- true,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- true,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- true,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- true,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false),
+ 0x1.000002p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000004p-120, false, false,
+ true,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ true,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ true,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ true,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ true,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false),
TEST ("7.5231651905091658028243019250027722963589455923928243391111"
"518069674229947096932846761774271726608276367187501e-37",
false,
- 0x1.000002p-120, false,
- 0x1.000004p-120, false,
- 0x1.000002p-120, false,
- 0x1.000004p-120, false,
- false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.0000030000001p-120, false,
- false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.0000030000000002p-120, false,
- false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.0000030000000002p-120, false,
- false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003000000000000000000008p-120, false,
- false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.000003p-120, false,
- 0x1.0000030000000000000000000001p-120, false),
+ 0x1.000002p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000002p-120, false, false,
+ 0x1.000004p-120, false, false,
+ false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.0000030000001p-120, false, false,
+ false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.0000030000000002p-120, false, false,
+ false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.0000030000000002p-120, false, false,
+ false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003000000000000000000008p-120, false, false,
+ false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.000003p-120, false, false,
+ 0x1.0000030000000000000000000001p-120, false, false),
TEST ("7.5231656389246743867657646205962389491321076020766457395961"
"98769229273839442839744151569902896881103515625e-37",
true,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- true,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- true,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- true,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- true,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- true,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false,
- 0x1.000004p-120, false),
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ true,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ true,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ true,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ true,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ true,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false,
+ 0x1.000004p-120, false, false),
TEST ("340282356779733661637539395458142568447.999",
false,
- 0xf.fffffp+124, false,
- 0xf.fffffp+124, false,
- 0xf.fffffp+124, false,
- INF, true,
- false,
- 0xf.fffff7ffffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff7ffffff8p+124, false,
- 0xf.fffff8p+124, false,
- false,
- 0xf.fffff7fffffffffp+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff7fffffffffp+124, false,
- 0xf.fffff8p+124, false,
- false,
- 0xf.fffff7fffffffffp+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff7fffffffffp+124, false,
- 0xf.fffff8p+124, false,
- false,
- 0xf.fffff7fffffffffffffffffffcp+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff7fffffffffffffffffffcp+124, false,
- 0xf.fffff8p+124, false,
- false,
- 0xf.fffff7fffffffffffffffffffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff7fffffffffffffffffffff8p+124, false,
- 0xf.fffff8p+124, false),
+ 0xf.fffffp+124, false, false,
+ 0xf.fffffp+124, false, false,
+ 0xf.fffffp+124, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffff7ffffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff7ffffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ false,
+ 0xf.fffff7fffffffffp+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff7fffffffffp+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ false,
+ 0xf.fffff7fffffffffp+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff7fffffffffp+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ false,
+ 0xf.fffff7fffffffffffffffffffcp+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff7fffffffffffffffffffcp+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ false,
+ 0xf.fffff7fffffffffffffffffffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff7fffffffffffffffffffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false),
TEST ("340282356779733661637539395458142568448",
false,
- 0xf.fffffp+124, false,
- INF, true,
- 0xf.fffffp+124, false,
- INF, true,
- true,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- true,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- true,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- true,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- true,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false),
+ 0xf.fffffp+124, false, false,
+ INF, true, false,
+ 0xf.fffffp+124, false, false,
+ INF, true, false,
+ true,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ true,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ true,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ true,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ true,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false),
TEST ("340282356779733661637539395458142568448.001",
false,
- 0xf.fffffp+124, false,
- INF, true,
- 0xf.fffffp+124, false,
- INF, true,
- false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff80000008p+124, false,
- false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8000000001p+124, false,
- false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8000000001p+124, false,
- false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff800000000000000000004p+124, false,
- false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff8p+124, false,
- 0xf.fffff80000000000000000000008p+124, false),
+ 0xf.fffffp+124, false, false,
+ INF, true, false,
+ 0xf.fffffp+124, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff80000008p+124, false, false,
+ false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8000000001p+124, false, false,
+ false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8000000001p+124, false, false,
+ false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff800000000000000000004p+124, false, false,
+ false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff8p+124, false, false,
+ 0xf.fffff80000000000000000000008p+124, false, false),
TEST ("-340282356779733661637539395458142568447.999",
false,
- -INF, true,
- -0xf.fffffp+124, false,
- -0xf.fffffp+124, false,
- -0xf.fffffp+124, false,
- false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff7ffffff8p+124, false,
- -0xf.fffff7ffffff8p+124, false,
- false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff7fffffffffp+124, false,
- -0xf.fffff7fffffffffp+124, false,
- false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff7fffffffffp+124, false,
- -0xf.fffff7fffffffffp+124, false,
- false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff7fffffffffffffffffffcp+124, false,
- -0xf.fffff7fffffffffffffffffffcp+124, false,
- false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff7fffffffffffffffffffff8p+124, false,
- -0xf.fffff7fffffffffffffffffffff8p+124, false),
+ -INF, true, false,
+ -0xf.fffffp+124, false, false,
+ -0xf.fffffp+124, false, false,
+ -0xf.fffffp+124, false, false,
+ false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff7ffffff8p+124, false, false,
+ -0xf.fffff7ffffff8p+124, false, false,
+ false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff7fffffffffp+124, false, false,
+ -0xf.fffff7fffffffffp+124, false, false,
+ false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff7fffffffffp+124, false, false,
+ -0xf.fffff7fffffffffp+124, false, false,
+ false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff7fffffffffffffffffffcp+124, false, false,
+ -0xf.fffff7fffffffffffffffffffcp+124, false, false,
+ false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff7fffffffffffffffffffff8p+124, false, false,
+ -0xf.fffff7fffffffffffffffffffff8p+124, false, false),
TEST ("-340282356779733661637539395458142568448",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, false,
- -0xf.fffffp+124, false,
- true,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- true,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- true,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- true,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- true,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, false, false,
+ -0xf.fffffp+124, false, false,
+ true,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ true,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ true,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ true,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ true,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false),
TEST ("-340282356779733661637539395458142568448.001",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, false,
- -0xf.fffffp+124, false,
- false,
- -0xf.fffff80000008p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- false,
- -0xf.fffff8000000001p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- false,
- -0xf.fffff8000000001p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- false,
- -0xf.fffff800000000000000000004p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- false,
- -0xf.fffff80000000000000000000008p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false,
- -0xf.fffff8p+124, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, false, false,
+ -0xf.fffffp+124, false, false,
+ false,
+ -0xf.fffff80000008p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ false,
+ -0xf.fffff8000000001p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ false,
+ -0xf.fffff8000000001p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ false,
+ -0xf.fffff800000000000000000004p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ false,
+ -0xf.fffff80000000000000000000008p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false,
+ -0xf.fffff8p+124, false, false),
TEST ("179769313486231580793728971405303415079934132710037826936173"
"778980444968292764750946649017977587207096330286416692887910"
"946555547851940402630657488671505820681908902000708383676273"
@@ -1855,35 +1855,35 @@ static const struct test tests[] = {
"936475292719074168444365510704342711559699508093042880177904"
"174497791.999",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, false,
- 0xf.ffffffffffff8p+1020, false,
- 0xf.ffffffffffff8p+1020, false,
- INF, true,
- false,
- 0xf.ffffffffffffbffp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffbffp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- false,
- 0xf.ffffffffffffbffp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffbffp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- false,
- 0xf.ffffffffffffbffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, true,
- 0xf.ffffffffffffbffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, true,
- false,
- 0xf.ffffffffffffbffffffffffffff8p+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffbffffffffffffff8p+1020, false,
- 0xf.ffffffffffffcp+1020, false),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffffbffp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffbffp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ false,
+ 0xf.ffffffffffffbffp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffbffp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ false,
+ 0xf.ffffffffffffbffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ 0xf.ffffffffffffbffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ false,
+ 0xf.ffffffffffffbffffffffffffff8p+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffbffffffffffffff8p+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false),
TEST ("179769313486231580793728971405303415079934132710037826936173"
"778980444968292764750946649017977587207096330286416692887910"
"946555547851940402630657488671505820681908902000708383676273"
@@ -1891,35 +1891,35 @@ static const struct test tests[] = {
"936475292719074168444365510704342711559699508093042880177904"
"174497792",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, false,
- INF, true,
- 0xf.ffffffffffff8p+1020, false,
- INF, true,
- true,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- true,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- false,
- 0xf.ffffffffffffcp+1020, true,
- 0xf.ffffffffffffcp+1020, true,
- 0xf.ffffffffffffcp+1020, true,
- 0xf.ffffffffffffcp+1020, true,
- true,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ INF, true, false,
+ true,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ true,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ true,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false),
TEST ("179769313486231580793728971405303415079934132710037826936173"
"778980444968292764750946649017977587207096330286416692887910"
"946555547851940402630657488671505820681908902000708383676273"
@@ -1927,35 +1927,35 @@ static const struct test tests[] = {
"936475292719074168444365510704342711559699508093042880177904"
"174497792.001",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, false,
- INF, true,
- 0xf.ffffffffffff8p+1020, false,
- INF, true,
- false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffc01p+1020, false,
- false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffc01p+1020, false,
- false,
- 0xf.ffffffffffffcp+1020, true,
- 0xf.ffffffffffffcp+1020, true,
- 0xf.ffffffffffffcp+1020, true,
- 0xf.ffffffffffffc0000000000004p+1020, true,
- false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffcp+1020, false,
- 0xf.ffffffffffffc000000000000008p+1020, false),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffc01p+1020, false, false,
+ false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffc01p+1020, false, false,
+ false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ 0xf.ffffffffffffcp+1020, true, false,
+ 0xf.ffffffffffffc0000000000004p+1020, true, false,
+ false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffcp+1020, false, false,
+ 0xf.ffffffffffffc000000000000008p+1020, false, false),
TEST ("-17976931348623158079372897140530341507993413271003782693617"
"377898044496829276475094664901797758720709633028641669288791"
"094655554785194040263065748867150582068190890200070838367627"
@@ -1963,35 +1963,35 @@ static const struct test tests[] = {
"493647529271907416844436551070434271155969950809304288017790"
"4174497791.999",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -0xf.ffffffffffff8p+1020, false,
- -0xf.ffffffffffff8p+1020, false,
- -0xf.ffffffffffff8p+1020, false,
- false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffbffp+1020, false,
- -0xf.ffffffffffffbffp+1020, false,
- false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffbffp+1020, false,
- -0xf.ffffffffffffbffp+1020, false,
- false,
- -0xf.ffffffffffffcp+1020, true,
- -0xf.ffffffffffffcp+1020, true,
- -0xf.ffffffffffffbffffffffffffcp+1020, false,
- -0xf.ffffffffffffbffffffffffffcp+1020, false,
- false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffbffffffffffffff8p+1020, false,
- -0xf.ffffffffffffbffffffffffffff8p+1020, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffbffp+1020, false, false,
+ -0xf.ffffffffffffbffp+1020, false, false,
+ false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffbffp+1020, false, false,
+ -0xf.ffffffffffffbffp+1020, false, false,
+ false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ -0xf.ffffffffffffbffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffbffffffffffffcp+1020, false, false,
+ false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffbffffffffffffff8p+1020, false, false,
+ -0xf.ffffffffffffbffffffffffffff8p+1020, false, false),
TEST ("-17976931348623158079372897140530341507993413271003782693617"
"377898044496829276475094664901797758720709633028641669288791"
"094655554785194040263065748867150582068190890200070838367627"
@@ -1999,35 +1999,35 @@ static const struct test tests[] = {
"493647529271907416844436551070434271155969950809304288017790"
"4174497792",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, false,
- -0xf.ffffffffffff8p+1020, false,
- true,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- true,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- false,
- -0xf.ffffffffffffcp+1020, true,
- -0xf.ffffffffffffcp+1020, true,
- -0xf.ffffffffffffcp+1020, true,
- -0xf.ffffffffffffcp+1020, true,
- true,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ true,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ true,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ true,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false),
TEST ("-17976931348623158079372897140530341507993413271003782693617"
"377898044496829276475094664901797758720709633028641669288791"
"094655554785194040263065748867150582068190890200070838367627"
@@ -2035,35 +2035,35 @@ static const struct test tests[] = {
"493647529271907416844436551070434271155969950809304288017790"
"4174497792.001",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, false,
- -0xf.ffffffffffff8p+1020, false,
- false,
- -0xf.ffffffffffffc01p+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- false,
- -0xf.ffffffffffffc01p+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- false,
- -0xf.ffffffffffffc0000000000004p+1020, true,
- -0xf.ffffffffffffcp+1020, true,
- -0xf.ffffffffffffcp+1020, true,
- -0xf.ffffffffffffcp+1020, true,
- false,
- -0xf.ffffffffffffc000000000000008p+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false,
- -0xf.ffffffffffffcp+1020, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ false,
+ -0xf.ffffffffffffc01p+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ false,
+ -0xf.ffffffffffffc01p+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ false,
+ -0xf.ffffffffffffc0000000000004p+1020, true, false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ -0xf.ffffffffffffcp+1020, true, false,
+ false,
+ -0xf.ffffffffffffc000000000000008p+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false,
+ -0xf.ffffffffffffcp+1020, false, false),
TEST ("118973149535723176505351158982948866796625400469556721895649"
"927756249918185172720476044944290457046138433056764616744328"
"666255526748948793023632513609765434237723241753648908036202"
@@ -2148,35 +2148,35 @@ static const struct test tests[] = {
"578031503869424406179027994752890226443351619365453243328968"
"8740976918527.999",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- 0xf.fffffffffffffffp+16380, false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- 0xf.fffffffffffffffp+16380, false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffff7fffffffffff8p+16380, false,
- 0xf.fffffffffffffff8p+16380, false,
- 0xf.fffffffffffffff7fffffffffff8p+16380, false,
- 0xf.fffffffffffffff8p+16380, false),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffff7fffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff7fffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff8p+16380, false, false),
TEST ("118973149535723176505351158982948866796625400469556721895649"
"927756249918185172720476044944290457046138433056764616744328"
"666255526748948793023632513609765434237723241753648908036202"
@@ -2261,35 +2261,35 @@ static const struct test tests[] = {
"578031503869424406179027994752890226443351619365453243328968"
"8740976918528",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- true,
- 0xf.fffffffffffffff8p+16380, false,
- 0xf.fffffffffffffff8p+16380, false,
- 0xf.fffffffffffffff8p+16380, false,
- 0xf.fffffffffffffff8p+16380, false),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ true,
+ 0xf.fffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff8p+16380, false, false),
TEST ("118973149535723176505351158982948866796625400469556721895649"
"927756249918185172720476044944290457046138433056764616744328"
"666255526748948793023632513609765434237723241753648908036202"
@@ -2374,35 +2374,35 @@ static const struct test tests[] = {
"578031503869424406179027994752890226443351619365453243328968"
"8740976918528.001",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffff8p+16380, false,
- 0xf.fffffffffffffff8p+16380, false,
- 0xf.fffffffffffffff8p+16380, false,
- 0xf.fffffffffffffff8000000000008p+16380, false),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffff8000000000008p+16380, false, false),
TEST ("-11897314953572317650535115898294886679662540046955672189564"
"992775624991818517272047604494429045704613843305676461674432"
"866625552674894879302363251360976543423772324175364890803620"
@@ -2487,35 +2487,35 @@ static const struct test tests[] = {
"557803150386942440617902799475289022644335161936545324332896"
"88740976918527.999",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, true,
- -0xf.ffffffffffff8p+1020, true,
- false,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- false,
- -0xf.fffffffffffffff8p+16380, false,
- -0xf.fffffffffffffff8p+16380, false,
- -0xf.fffffffffffffff7fffffffffff8p+16380, false,
- -0xf.fffffffffffffff7fffffffffff8p+16380, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ false,
+ -0xf.fffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffff7fffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffff7fffffffffff8p+16380, false, false),
TEST ("-11897314953572317650535115898294886679662540046955672189564"
"992775624991818517272047604494429045704613843305676461674432"
"866625552674894879302363251360976543423772324175364890803620"
@@ -2600,35 +2600,35 @@ static const struct test tests[] = {
"557803150386942440617902799475289022644335161936545324332896"
"88740976918528",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, true,
- -0xf.ffffffffffff8p+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- true,
- -0xf.fffffffffffffff8p+16380, false,
- -0xf.fffffffffffffff8p+16380, false,
- -0xf.fffffffffffffff8p+16380, false,
- -0xf.fffffffffffffff8p+16380, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ true,
+ -0xf.fffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffff8p+16380, false, false),
TEST ("-11897314953572317650535115898294886679662540046955672189564"
"992775624991818517272047604494429045704613843305676461674432"
"866625552674894879302363251360976543423772324175364890803620"
@@ -2713,35 +2713,35 @@ static const struct test tests[] = {
"557803150386942440617902799475289022644335161936545324332896"
"88740976918528.001",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, true,
- -0xf.ffffffffffff8p+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- false,
- -0xf.fffffffffffffff8000000000008p+16380, false,
- -0xf.fffffffffffffff8p+16380, false,
- -0xf.fffffffffffffff8p+16380, false,
- -0xf.fffffffffffffff8p+16380, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ false,
+ -0xf.fffffffffffffff8000000000008p+16380, false, false,
+ -0xf.fffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffff8p+16380, false, false),
TEST ("118973149535723176508575932662800707347995686986910214150118"
"685272271246896789803961473130416053705672050873552479421805"
"932646640744124594447361172514341324846716679654551308018400"
@@ -2826,35 +2826,35 @@ static const struct test tests[] = {
"972233447491583165728635513802591543441145939539353470970452"
"5536550715391.999",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- INF, true),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ INF, true, false),
TEST ("118973149535723176508575932662800707347995686986910214150118"
"685272271246896789803961473130416053705672050873552479421805"
"932646640744124594447361172514341324846716679654551308018400"
@@ -2939,35 +2939,35 @@ static const struct test tests[] = {
"972233447491583165728635513802591543441145939539353470970452"
"5536550715392",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- INF, true,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- INF, true),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ INF, true, false),
TEST ("118973149535723176508575932662800707347995686986910214150118"
"685272271246896789803961473130416053705672050873552479421805"
"932646640744124594447361172514341324846716679654551308018400"
@@ -3052,35 +3052,35 @@ static const struct test tests[] = {
"972233447491583165728635513802591543441145939539353470970452"
"5536550715392.001",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- INF, true,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- INF, true),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ INF, true, false),
TEST ("-11897314953572317650857593266280070734799568698691021415011"
"868527227124689678980396147313041605370567205087355247942180"
"593264664074412459444736117251434132484671667965455130801840"
@@ -3165,35 +3165,35 @@ static const struct test tests[] = {
"097223344749158316572863551380259154344114593953935347097045"
"25536550715391.999",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, true,
- -0xf.ffffffffffff8p+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- false,
- -INF, true,
- -0xf.fffffffffffffffffffffffffff8p+16380, false,
- -0xf.fffffffffffffffffffffffffff8p+16380, false,
- -0xf.fffffffffffffffffffffffffff8p+16380, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false),
TEST ("-11897314953572317650857593266280070734799568698691021415011"
"868527227124689678980396147313041605370567205087355247942180"
"593264664074412459444736117251434132484671667965455130801840"
@@ -3278,35 +3278,35 @@ static const struct test tests[] = {
"097223344749158316572863551380259154344114593953935347097045"
"25536550715392",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, true,
- -0xf.ffffffffffff8p+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffff8p+16380, false,
- -0xf.fffffffffffffffffffffffffff8p+16380, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false),
TEST ("-11897314953572317650857593266280070734799568698691021415011"
"868527227124689678980396147313041605370567205087355247942180"
"593264664074412459444736117251434132484671667965455130801840"
@@ -3391,419 +3391,419 @@ static const struct test tests[] = {
"097223344749158316572863551380259154344114593953935347097045"
"25536550715392.001",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, true,
- -0xf.ffffffffffff8p+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffff8p+16380, false,
- -0xf.fffffffffffffffffffffffffff8p+16380, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false),
TEST ("2.1019476964872256063855943749348741969203929128147736576356"
"0242583468662402879090222995728254318237304687499e-45",
false,
- 0x8p-152, false,
- 0x8p-152, false,
- 0x8p-152, false,
- 0x1p-148, false,
- false,
- 0xb.ffffffffffff8p-152, false,
- 0xcp-152, false,
- 0xb.ffffffffffff8p-152, false,
- 0xcp-152, false,
- false,
- 0xb.fffffffffffffffp-152, false,
- 0xcp-152, false,
- 0xb.fffffffffffffffp-152, false,
- 0xcp-152, false,
- false,
- 0xb.fffffffffffffffp-152, false,
- 0xcp-152, false,
- 0xb.fffffffffffffffp-152, false,
- 0xcp-152, false,
- false,
- 0xb.fffffffffffffffffffffffffcp-152, false,
- 0xcp-152, false,
- 0xb.fffffffffffffffffffffffffcp-152, false,
- 0xcp-152, false,
- false,
- 0xb.fffffffffffffffffffffffffff8p-152, false,
- 0xcp-152, false,
- 0xb.fffffffffffffffffffffffffff8p-152, false,
- 0xcp-152, false),
+ 0x8p-152, false, true,
+ 0x8p-152, false, true,
+ 0x8p-152, false, true,
+ 0x1p-148, false, true,
+ false,
+ 0xb.ffffffffffff8p-152, false, false,
+ 0xcp-152, false, false,
+ 0xb.ffffffffffff8p-152, false, false,
+ 0xcp-152, false, false,
+ false,
+ 0xb.fffffffffffffffp-152, false, false,
+ 0xcp-152, false, false,
+ 0xb.fffffffffffffffp-152, false, false,
+ 0xcp-152, false, false,
+ false,
+ 0xb.fffffffffffffffp-152, false, false,
+ 0xcp-152, false, false,
+ 0xb.fffffffffffffffp-152, false, false,
+ 0xcp-152, false, false,
+ false,
+ 0xb.fffffffffffffffffffffffffcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xb.fffffffffffffffffffffffffcp-152, false, false,
+ 0xcp-152, false, false,
+ false,
+ 0xb.fffffffffffffffffffffffffff8p-152, false, false,
+ 0xcp-152, false, false,
+ 0xb.fffffffffffffffffffffffffff8p-152, false, false,
+ 0xcp-152, false, false),
TEST ("2.1019476964872256063855943749348741969203929128147736576356"
"02425834686624028790902229957282543182373046875e-45",
false,
- 0x8p-152, false,
- 0x1p-148, false,
- 0x8p-152, false,
- 0x1p-148, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- true,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false),
+ 0x8p-152, false, true,
+ 0x1p-148, false, true,
+ 0x8p-152, false, true,
+ 0x1p-148, false, true,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ true,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false),
TEST ("2.1019476964872256063855943749348741969203929128147736576356"
"0242583468662402879090222995728254318237304687501e-45",
false,
- 0x8p-152, false,
- 0x1p-148, false,
- 0x8p-152, false,
- 0x1p-148, false,
- false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xc.0000000000008p-152, false,
- false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xc.000000000000001p-152, false,
- false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xc.000000000000001p-152, false,
- false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xc.00000000000000000000000004p-152, false,
- false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xcp-152, false,
- 0xc.0000000000000000000000000008p-152, false),
+ 0x8p-152, false, true,
+ 0x1p-148, false, true,
+ 0x8p-152, false, true,
+ 0x1p-148, false, true,
+ false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xc.0000000000008p-152, false, false,
+ false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xc.000000000000001p-152, false, false,
+ false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xc.000000000000001p-152, false, false,
+ false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xc.00000000000000000000000004p-152, false, false,
+ false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xcp-152, false, false,
+ 0xc.0000000000000000000000000008p-152, false, false),
TEST ("-2.101947696487225606385594374934874196920392912814773657635"
"60242583468662402879090222995728254318237304687499e-45",
false,
- -0x1p-148, false,
- -0x8p-152, false,
- -0x8p-152, false,
- -0x8p-152, false,
- false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xb.ffffffffffff8p-152, false,
- -0xb.ffffffffffff8p-152, false,
- false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xb.fffffffffffffffp-152, false,
- -0xb.fffffffffffffffp-152, false,
- false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xb.fffffffffffffffp-152, false,
- -0xb.fffffffffffffffp-152, false,
- false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xb.fffffffffffffffffffffffffcp-152, false,
- -0xb.fffffffffffffffffffffffffcp-152, false,
- false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xb.fffffffffffffffffffffffffff8p-152, false,
- -0xb.fffffffffffffffffffffffffff8p-152, false),
+ -0x1p-148, false, true,
+ -0x8p-152, false, true,
+ -0x8p-152, false, true,
+ -0x8p-152, false, true,
+ false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xb.ffffffffffff8p-152, false, false,
+ -0xb.ffffffffffff8p-152, false, false,
+ false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xb.fffffffffffffffp-152, false, false,
+ -0xb.fffffffffffffffp-152, false, false,
+ false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xb.fffffffffffffffp-152, false, false,
+ -0xb.fffffffffffffffp-152, false, false,
+ false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xb.fffffffffffffffffffffffffcp-152, false, false,
+ -0xb.fffffffffffffffffffffffffcp-152, false, false,
+ false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xb.fffffffffffffffffffffffffff8p-152, false, false,
+ -0xb.fffffffffffffffffffffffffff8p-152, false, false),
TEST ("-2.101947696487225606385594374934874196920392912814773657635"
"602425834686624028790902229957282543182373046875e-45",
false,
- -0x1p-148, false,
- -0x1p-148, false,
- -0x8p-152, false,
- -0x8p-152, false,
- true,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- true,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- true,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- true,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- true,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false),
+ -0x1p-148, false, true,
+ -0x1p-148, false, true,
+ -0x8p-152, false, true,
+ -0x8p-152, false, true,
+ true,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ true,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ true,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ true,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ true,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false),
TEST ("-2.101947696487225606385594374934874196920392912814773657635"
"60242583468662402879090222995728254318237304687501e-45",
false,
- -0x1p-148, false,
- -0x1p-148, false,
- -0x8p-152, false,
- -0x8p-152, false,
- false,
- -0xc.0000000000008p-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- false,
- -0xc.000000000000001p-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- false,
- -0xc.000000000000001p-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- false,
- -0xc.00000000000000000000000004p-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- false,
- -0xc.0000000000000000000000000008p-152, false,
- -0xcp-152, false,
- -0xcp-152, false,
- -0xcp-152, false),
+ -0x1p-148, false, true,
+ -0x1p-148, false, true,
+ -0x8p-152, false, true,
+ -0x8p-152, false, true,
+ false,
+ -0xc.0000000000008p-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ false,
+ -0xc.000000000000001p-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ false,
+ -0xc.000000000000001p-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ false,
+ -0xc.00000000000000000000000004p-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ false,
+ -0xc.0000000000000000000000000008p-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false,
+ -0xcp-152, false, false),
TEST ("3.5032461608120426773093239582247903282006548546912894293926"
"7070972447770671465150371659547090530395507812499e-45",
false,
- 0x1p-148, false,
- 0x1p-148, false,
- 0x1p-148, false,
- 0x1.8p-148, false,
- false,
- 0x1.3ffffffffffffp-148, false,
- 0x1.4p-148, false,
- 0x1.3ffffffffffffp-148, false,
- 0x1.4p-148, false,
- false,
- 0x1.3ffffffffffffffep-148, false,
- 0x1.4p-148, false,
- 0x1.3ffffffffffffffep-148, false,
- 0x1.4p-148, false,
- false,
- 0x1.3ffffffffffffffep-148, false,
- 0x1.4p-148, false,
- 0x1.3ffffffffffffffep-148, false,
- 0x1.4p-148, false,
- false,
- 0x1.3fffffffffffffffffffffffff8p-148, false,
- 0x1.4p-148, false,
- 0x1.3fffffffffffffffffffffffff8p-148, false,
- 0x1.4p-148, false,
- false,
- 0x1.3fffffffffffffffffffffffffffp-148, false,
- 0x1.4p-148, false,
- 0x1.3fffffffffffffffffffffffffffp-148, false,
- 0x1.4p-148, false),
+ 0x1p-148, false, true,
+ 0x1p-148, false, true,
+ 0x1p-148, false, true,
+ 0x1.8p-148, false, true,
+ false,
+ 0x1.3ffffffffffffp-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.3ffffffffffffp-148, false, false,
+ 0x1.4p-148, false, false,
+ false,
+ 0x1.3ffffffffffffffep-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.3ffffffffffffffep-148, false, false,
+ 0x1.4p-148, false, false,
+ false,
+ 0x1.3ffffffffffffffep-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.3ffffffffffffffep-148, false, false,
+ 0x1.4p-148, false, false,
+ false,
+ 0x1.3fffffffffffffffffffffffff8p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.3fffffffffffffffffffffffff8p-148, false, false,
+ 0x1.4p-148, false, false,
+ false,
+ 0x1.3fffffffffffffffffffffffffffp-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.3fffffffffffffffffffffffffffp-148, false, false,
+ 0x1.4p-148, false, false),
TEST ("3.5032461608120426773093239582247903282006548546912894293926"
"70709724477706714651503716595470905303955078125e-45",
false,
- 0x1p-148, false,
- 0x1p-148, false,
- 0x1p-148, false,
- 0x1.8p-148, false,
- true,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- true,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- true,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- true,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- true,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false),
+ 0x1p-148, false, true,
+ 0x1p-148, false, true,
+ 0x1p-148, false, true,
+ 0x1.8p-148, false, true,
+ true,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ true,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ true,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ true,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ true,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false),
TEST ("3.5032461608120426773093239582247903282006548546912894293926"
"7070972447770671465150371659547090530395507812501e-45",
false,
- 0x1p-148, false,
- 0x1.8p-148, false,
- 0x1p-148, false,
- 0x1.8p-148, false,
- false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4000000000001p-148, false,
- false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4000000000000002p-148, false,
- false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4000000000000002p-148, false,
- false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.400000000000000000000000008p-148, false,
- false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4p-148, false,
- 0x1.4000000000000000000000000001p-148, false),
+ 0x1p-148, false, true,
+ 0x1.8p-148, false, true,
+ 0x1p-148, false, true,
+ 0x1.8p-148, false, true,
+ false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4000000000001p-148, false, false,
+ false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4000000000000002p-148, false, false,
+ false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4000000000000002p-148, false, false,
+ false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.400000000000000000000000008p-148, false, false,
+ false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4p-148, false, false,
+ 0x1.4000000000000000000000000001p-148, false, false),
TEST ("-3.503246160812042677309323958224790328200654854691289429392"
"67070972447770671465150371659547090530395507812499e-45",
false,
- -0x1.8p-148, false,
- -0x1p-148, false,
- -0x1p-148, false,
- -0x1p-148, false,
- false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.3ffffffffffffp-148, false,
- -0x1.3ffffffffffffp-148, false,
- false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.3ffffffffffffffep-148, false,
- -0x1.3ffffffffffffffep-148, false,
- false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.3ffffffffffffffep-148, false,
- -0x1.3ffffffffffffffep-148, false,
- false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.3fffffffffffffffffffffffff8p-148, false,
- -0x1.3fffffffffffffffffffffffff8p-148, false,
- false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.3fffffffffffffffffffffffffffp-148, false,
- -0x1.3fffffffffffffffffffffffffffp-148, false),
+ -0x1.8p-148, false, true,
+ -0x1p-148, false, true,
+ -0x1p-148, false, true,
+ -0x1p-148, false, true,
+ false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.3ffffffffffffp-148, false, false,
+ -0x1.3ffffffffffffp-148, false, false,
+ false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.3ffffffffffffffep-148, false, false,
+ -0x1.3ffffffffffffffep-148, false, false,
+ false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.3ffffffffffffffep-148, false, false,
+ -0x1.3ffffffffffffffep-148, false, false,
+ false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.3fffffffffffffffffffffffff8p-148, false, false,
+ -0x1.3fffffffffffffffffffffffff8p-148, false, false,
+ false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.3fffffffffffffffffffffffffffp-148, false, false,
+ -0x1.3fffffffffffffffffffffffffffp-148, false, false),
TEST ("-3.503246160812042677309323958224790328200654854691289429392"
"670709724477706714651503716595470905303955078125e-45",
false,
- -0x1.8p-148, false,
- -0x1p-148, false,
- -0x1p-148, false,
- -0x1p-148, false,
- true,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- true,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- true,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- true,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- true,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false),
+ -0x1.8p-148, false, true,
+ -0x1p-148, false, true,
+ -0x1p-148, false, true,
+ -0x1p-148, false, true,
+ true,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ true,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ true,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ true,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ true,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false),
TEST ("-3.503246160812042677309323958224790328200654854691289429392"
"67070972447770671465150371659547090530395507812501e-45",
false,
- -0x1.8p-148, false,
- -0x1.8p-148, false,
- -0x1p-148, false,
- -0x1p-148, false,
- false,
- -0x1.4000000000001p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- false,
- -0x1.4000000000000002p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- false,
- -0x1.4000000000000002p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- false,
- -0x1.400000000000000000000000008p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- false,
- -0x1.4000000000000000000000000001p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false,
- -0x1.4p-148, false),
+ -0x1.8p-148, false, true,
+ -0x1.8p-148, false, true,
+ -0x1p-148, false, true,
+ -0x1p-148, false, true,
+ false,
+ -0x1.4000000000001p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ false,
+ -0x1.4000000000000002p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ false,
+ -0x1.4000000000000002p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ false,
+ -0x1.400000000000000000000000008p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ false,
+ -0x1.4000000000000000000000000001p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false,
+ -0x1.4p-148, false, false),
TEST ("7.4109846876186981626485318930233205854758970392148714663837"
"852375101326090531312779794975454245398856969484704316857659"
"638998506553390969459816219401617281718945106978546710679176"
@@ -3818,35 +3818,35 @@ static const struct test tests[] = {
"337560846003984904972149117463085539556354188641513168478436"
"31308023759629577398300170898437499e-324",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x4p-1076, false,
- 0x4p-1076, false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- false,
- 0x5.fffffffffffffff8p-1076, false,
- 0x6p-1076, false,
- 0x5.fffffffffffffff8p-1076, false,
- 0x6p-1076, false,
- false,
- 0x5.fffffffffffffff8p-1076, false,
- 0x6p-1076, false,
- 0x5.fffffffffffffff8p-1076, false,
- 0x6p-1076, false,
- false,
- 0x4p-1076, false,
- 0x4p-1076, false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- false,
- 0x5.fffffffffffffffffffffffffffcp-1076, false,
- 0x6p-1076, false,
- 0x5.fffffffffffffffffffffffffffcp-1076, false,
- 0x6p-1076, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x4p-1076, false, true,
+ 0x4p-1076, false, true,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ false,
+ 0x5.fffffffffffffff8p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x5.fffffffffffffff8p-1076, false, false,
+ 0x6p-1076, false, false,
+ false,
+ 0x5.fffffffffffffff8p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x5.fffffffffffffff8p-1076, false, false,
+ 0x6p-1076, false, false,
+ false,
+ 0x4p-1076, false, true,
+ 0x4p-1076, false, true,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ false,
+ 0x5.fffffffffffffffffffffffffffcp-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x5.fffffffffffffffffffffffffffcp-1076, false, false,
+ 0x6p-1076, false, false),
TEST ("7.4109846876186981626485318930233205854758970392148714663837"
"852375101326090531312779794975454245398856969484704316857659"
"638998506553390969459816219401617281718945106978546710679176"
@@ -3861,35 +3861,35 @@ static const struct test tests[] = {
"337560846003984904972149117463085539556354188641513168478436"
"313080237596295773983001708984375e-324",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- true,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- true,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- true,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ true,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ true,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ false,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ true,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false),
TEST ("7.4109846876186981626485318930233205854758970392148714663837"
"852375101326090531312779794975454245398856969484704316857659"
"638998506553390969459816219401617281718945106978546710679176"
@@ -3904,35 +3904,35 @@ static const struct test tests[] = {
"337560846003984904972149117463085539556354188641513168478436"
"31308023759629577398300170898437501e-324",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6.0000000000000008p-1076, false,
- false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6.0000000000000008p-1076, false,
- false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- 0x4p-1076, false,
- 0x8p-1076, false,
- false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6p-1076, false,
- 0x6.0000000000000000000000000004p-1076, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6.0000000000000008p-1076, false, false,
+ false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6.0000000000000008p-1076, false, false,
+ false,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ 0x4p-1076, false, true,
+ 0x8p-1076, false, true,
+ false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6p-1076, false, false,
+ 0x6.0000000000000000000000000004p-1076, false, false),
TEST ("-7.410984687618698162648531893023320585475897039214871466383"
"785237510132609053131277979497545424539885696948470431685765"
"963899850655339096945981621940161728171894510697854671067917"
@@ -3947,35 +3947,35 @@ static const struct test tests[] = {
"433756084600398490497214911746308553955635418864151316847843"
"631308023759629577398300170898437499e-324",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-1076, false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x5.fffffffffffffff8p-1076, false,
- -0x5.fffffffffffffff8p-1076, false,
- false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x5.fffffffffffffff8p-1076, false,
- -0x5.fffffffffffffff8p-1076, false,
- false,
- -0x8p-1076, false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x5.fffffffffffffffffffffffffffcp-1076, false,
- -0x5.fffffffffffffffffffffffffffcp-1076, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x5.fffffffffffffff8p-1076, false, false,
+ -0x5.fffffffffffffff8p-1076, false, false,
+ false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x5.fffffffffffffff8p-1076, false, false,
+ -0x5.fffffffffffffff8p-1076, false, false,
+ false,
+ -0x8p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x5.fffffffffffffffffffffffffffcp-1076, false, false,
+ -0x5.fffffffffffffffffffffffffffcp-1076, false, false),
TEST ("-7.410984687618698162648531893023320585475897039214871466383"
"785237510132609053131277979497545424539885696948470431685765"
"963899850655339096945981621940161728171894510697854671067917"
@@ -3990,35 +3990,35 @@ static const struct test tests[] = {
"433756084600398490497214911746308553955635418864151316847843"
"6313080237596295773983001708984375e-324",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-1076, false,
- -0x8p-1076, false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- true,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- true,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- false,
- -0x8p-1076, false,
- -0x8p-1076, false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- true,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-1076, false, true,
+ -0x8p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ true,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ true,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ false,
+ -0x8p-1076, false, true,
+ -0x8p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ true,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false),
TEST ("-7.410984687618698162648531893023320585475897039214871466383"
"785237510132609053131277979497545424539885696948470431685765"
"963899850655339096945981621940161728171894510697854671067917"
@@ -4033,35 +4033,35 @@ static const struct test tests[] = {
"433756084600398490497214911746308553955635418864151316847843"
"631308023759629577398300170898437501e-324",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-1076, false,
- -0x8p-1076, false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- false,
- -0x6.0000000000000008p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- false,
- -0x6.0000000000000008p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- false,
- -0x8p-1076, false,
- -0x8p-1076, false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- false,
- -0x6.0000000000000000000000000004p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false,
- -0x6p-1076, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-1076, false, true,
+ -0x8p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ false,
+ -0x6.0000000000000008p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ false,
+ -0x6.0000000000000008p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ false,
+ -0x8p-1076, false, true,
+ -0x8p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ false,
+ -0x6.0000000000000000000000000004p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false,
+ -0x6p-1076, false, false),
TEST ("5.4677992978237119037926089004291297245985762235403450155814"
"707305425575329500966052143410629387408077958710210208052966"
"529504784489330482549602621133847135082257338717668975178538"
@@ -4255,35 +4255,35 @@ static const struct test tests[] = {
"866268925981702690270202829595794350800918257913991744455922"
"683343374046671669930219650268554687499e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x8p-16448, false,
- 0x8p-16448, false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- false,
- 0x8p-16448, false,
- 0xcp-16448, false,
- 0x8p-16448, false,
- 0xcp-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0xb.fffffffffffcp-16448, false,
- 0xcp-16448, false,
- 0xb.fffffffffffcp-16448, false,
- 0xcp-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x8p-16448, false, true,
+ 0x8p-16448, false, true,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ false,
+ 0x8p-16448, false, true,
+ 0xcp-16448, false, true,
+ 0x8p-16448, false, true,
+ 0xcp-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0xb.fffffffffffcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0xb.fffffffffffcp-16448, false, true,
+ 0xcp-16448, false, true),
TEST ("5.4677992978237119037926089004291297245985762235403450155814"
"707305425575329500966052143410629387408077958710210208052966"
"529504784489330482549602621133847135082257338717668975178538"
@@ -4477,35 +4477,35 @@ static const struct test tests[] = {
"866268925981702690270202829595794350800918257913991744455922"
"6833433740466716699302196502685546875e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- true,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ true,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false),
TEST ("5.4677992978237119037926089004291297245985762235403450155814"
"707305425575329500966052143410629387408077958710210208052966"
"529504784489330482549602621133847135082257338717668975178538"
@@ -4699,35 +4699,35 @@ static const struct test tests[] = {
"866268925981702690270202829595794350800918257913991744455922"
"683343374046671669930219650268554687501e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0x1p-16444, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xc.000000000004p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ false,
+ 0xcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0x1p-16444, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0xcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0xc.000000000004p-16448, false, true),
TEST ("-5.467799297823711903792608900429129724598576223540345015581"
"470730542557532950096605214341062938740807795871021020805296"
"652950478448933048254960262113384713508225733871766897517853"
@@ -4921,35 +4921,35 @@ static const struct test tests[] = {
"386626892598170269027020282959579435080091825791399174445592"
"2683343374046671669930219650268554687499e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x1p-16444, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xb.fffffffffffcp-16448, false,
- -0xb.fffffffffffcp-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x1p-16444, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ false,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ -0xb.fffffffffffcp-16448, false, true,
+ -0xb.fffffffffffcp-16448, false, true),
TEST ("-5.467799297823711903792608900429129724598576223540345015581"
"470730542557532950096605214341062938740807795871021020805296"
"652950478448933048254960262113384713508225733871766897517853"
@@ -5143,35 +5143,35 @@ static const struct test tests[] = {
"386626892598170269027020282959579435080091825791399174445592"
"26833433740466716699302196502685546875e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x1p-16444, false,
- -0x1p-16444, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- true,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x1p-16444, false, true,
+ -0x1p-16444, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ true,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false),
TEST ("-5.467799297823711903792608900429129724598576223540345015581"
"470730542557532950096605214341062938740807795871021020805296"
"652950478448933048254960262113384713508225733871766897517853"
@@ -5365,35 +5365,35 @@ static const struct test tests[] = {
"386626892598170269027020282959579435080091825791399174445592"
"2683343374046671669930219650268554687501e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x1p-16444, false,
- -0x1p-16444, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- false,
- -0x1p-16444, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0xc.000000000004p-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x1p-16444, false, true,
+ -0x1p-16444, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ false,
+ -0x1p-16444, false, true,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0xc.000000000004p-16448, false, true,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true),
TEST ("5.4677992978237119037926089004291297245985762235403450155814"
"707305425575329500966052143410629387408077958710210208052966"
"529504784489330482549602621133847135082257338717668975178538"
@@ -5587,35 +5587,35 @@ static const struct test tests[] = {
"866268925981702690270202829595794350800918257913991744455922"
"683343374046671669930219650268554687499e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x8p-16448, false,
- 0x8p-16448, false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- false,
- 0x8p-16448, false,
- 0xcp-16448, false,
- 0x8p-16448, false,
- 0xcp-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0xb.fffffffffffcp-16448, false,
- 0xcp-16448, false,
- 0xb.fffffffffffcp-16448, false,
- 0xcp-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x8p-16448, false, true,
+ 0x8p-16448, false, true,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ false,
+ 0x8p-16448, false, true,
+ 0xcp-16448, false, true,
+ 0x8p-16448, false, true,
+ 0xcp-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0xb.fffffffffffcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0xb.fffffffffffcp-16448, false, true,
+ 0xcp-16448, false, true),
TEST ("5.4677992978237119037926089004291297245985762235403450155814"
"707305425575329500966052143410629387408077958710210208052966"
"529504784489330482549602621133847135082257338717668975178538"
@@ -5809,35 +5809,35 @@ static const struct test tests[] = {
"866268925981702690270202829595794350800918257913991744455922"
"6833433740466716699302196502685546875e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- true,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ true,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false,
+ 0xcp-16448, false, false),
TEST ("5.4677992978237119037926089004291297245985762235403450155814"
"707305425575329500966052143410629387408077958710210208052966"
"529504784489330482549602621133847135082257338717668975178538"
@@ -6031,35 +6031,35 @@ static const struct test tests[] = {
"866268925981702690270202829595794350800918257913991744455922"
"683343374046671669930219650268554687501e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- 0x8p-16448, false,
- 0x1p-16444, false,
- false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0x1p-16444, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xcp-16448, false,
- 0xc.000000000004p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ 0x8p-16448, false, true,
+ 0x1p-16444, false, true,
+ false,
+ 0xcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0x1p-16444, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0xcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0xcp-16448, false, true,
+ 0xc.000000000004p-16448, false, true),
TEST ("-5.467799297823711903792608900429129724598576223540345015581"
"470730542557532950096605214341062938740807795871021020805296"
"652950478448933048254960262113384713508225733871766897517853"
@@ -6253,35 +6253,35 @@ static const struct test tests[] = {
"386626892598170269027020282959579435080091825791399174445592"
"2683343374046671669930219650268554687499e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x1p-16444, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xb.fffffffffffcp-16448, false,
- -0xb.fffffffffffcp-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x1p-16444, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ false,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ -0xb.fffffffffffcp-16448, false, true,
+ -0xb.fffffffffffcp-16448, false, true),
TEST ("-5.467799297823711903792608900429129724598576223540345015581"
"470730542557532950096605214341062938740807795871021020805296"
"652950478448933048254960262113384713508225733871766897517853"
@@ -6475,35 +6475,35 @@ static const struct test tests[] = {
"386626892598170269027020282959579435080091825791399174445592"
"26833433740466716699302196502685546875e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x1p-16444, false,
- -0x1p-16444, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- true,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x1p-16444, false, true,
+ -0x1p-16444, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ true,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false,
+ -0xcp-16448, false, false),
TEST ("-5.467799297823711903792608900429129724598576223540345015581"
"470730542557532950096605214341062938740807795871021020805296"
"652950478448933048254960262113384713508225733871766897517853"
@@ -6697,630 +6697,630 @@ static const struct test tests[] = {
"386626892598170269027020282959579435080091825791399174445592"
"2683343374046671669930219650268554687501e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x1p-16444, false,
- -0x1p-16444, false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- false,
- -0x1p-16444, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0xc.000000000004p-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false,
- -0xcp-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x1p-16444, false, true,
+ -0x1p-16444, false, true,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ false,
+ -0x1p-16444, false, true,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0xc.000000000004p-16448, false, true,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true,
+ -0xcp-16448, false, true),
TEST ("-0x0.7p-149",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- true,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- true,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- true,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- true,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false,
- -0x3.8p-152, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ true,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ true,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ true,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ true,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false,
+ -0x3.8p-152, false, false),
TEST ("-0x0.7p-1074",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false,
- true,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false,
- -0x1.cp-1076, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false,
+ true,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false,
+ -0x1.cp-1076, false, false),
TEST ("-0x0.7p-16445",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x3.8p-16448, false,
- -0x3.8p-16448, false,
- -0x3.8p-16448, false,
- -0x3.8p-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x3.8p-16448, false, false,
+ -0x3.8p-16448, false, false,
+ -0x3.8p-16448, false, false,
+ -0x3.8p-16448, false, false),
TEST ("-0x0.7p-16494",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16496, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16496, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true),
TEST ("0x1p-150",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false),
TEST ("0x1p-1075",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- true,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ true,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false),
TEST ("0x1p-16446",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- true,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ true,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false),
TEST ("0x1p-16495",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16496, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16496, false, true),
TEST ("-0x1p-150",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false),
TEST ("-0x1p-1075",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- true,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ true,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false),
TEST ("-0x1p-16446",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false),
TEST ("-0x1p-16495",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16496, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16496, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true),
TEST (".70064923216240853546186479164495807e-45",
false,
- 0x0p+0, false,
- 0x8p-152, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.0000000000004p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.0000000000000008p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.0000000000000008p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.00000000000000000000000002p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.0000000000000000000000000004p-152, false),
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.0000000000004p-152, false, false,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.0000000000000008p-152, false, false,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.0000000000000008p-152, false, false,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.00000000000000000000000002p-152, false, false,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.0000000000000000000000000004p-152, false, false),
TEST ("7.0064923216240853546186479164495806564013097093825788587853"
"4141944895541342930300743319094181060791015624e-46",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x3.ffffffffffffep-152, false,
- 0x4p-152, false,
- 0x3.ffffffffffffep-152, false,
- 0x4p-152, false,
- false,
- 0x3.fffffffffffffffcp-152, false,
- 0x4p-152, false,
- 0x3.fffffffffffffffcp-152, false,
- 0x4p-152, false,
- false,
- 0x3.fffffffffffffffcp-152, false,
- 0x4p-152, false,
- 0x3.fffffffffffffffcp-152, false,
- 0x4p-152, false,
- false,
- 0x3.ffffffffffffffffffffffffffp-152, false,
- 0x4p-152, false,
- 0x3.ffffffffffffffffffffffffffp-152, false,
- 0x4p-152, false,
- false,
- 0x3.fffffffffffffffffffffffffffep-152, false,
- 0x4p-152, false,
- 0x3.fffffffffffffffffffffffffffep-152, false,
- 0x4p-152, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x3.ffffffffffffep-152, false, false,
+ 0x4p-152, false, false,
+ 0x3.ffffffffffffep-152, false, false,
+ 0x4p-152, false, false,
+ false,
+ 0x3.fffffffffffffffcp-152, false, false,
+ 0x4p-152, false, false,
+ 0x3.fffffffffffffffcp-152, false, false,
+ 0x4p-152, false, false,
+ false,
+ 0x3.fffffffffffffffcp-152, false, false,
+ 0x4p-152, false, false,
+ 0x3.fffffffffffffffcp-152, false, false,
+ 0x4p-152, false, false,
+ false,
+ 0x3.ffffffffffffffffffffffffffp-152, false, false,
+ 0x4p-152, false, false,
+ 0x3.ffffffffffffffffffffffffffp-152, false, false,
+ 0x4p-152, false, false,
+ false,
+ 0x3.fffffffffffffffffffffffffffep-152, false, false,
+ 0x4p-152, false, false,
+ 0x3.fffffffffffffffffffffffffffep-152, false, false,
+ 0x4p-152, false, false),
TEST ("7.0064923216240853546186479164495806564013097093825788587853"
"4141944895541342930300743319094181060791015625e-46",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- true,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ true,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false),
TEST ("7.0064923216240853546186479164495806564013097093825788587853"
"4141944895541342930300743319094181060791015626e-46",
false,
- 0x0p+0, false,
- 0x8p-152, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.0000000000004p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.0000000000000008p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.0000000000000008p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.00000000000000000000000002p-152, false,
- false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4p-152, false,
- 0x4.0000000000000000000000000004p-152, false),
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.0000000000004p-152, false, false,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.0000000000000008p-152, false, false,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.0000000000000008p-152, false, false,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.00000000000000000000000002p-152, false, false,
+ false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4p-152, false, false,
+ 0x4.0000000000000000000000000004p-152, false, false),
TEST ("-7.006492321624085354618647916449580656401309709382578858785"
"34141944895541342930300743319094181060791015624e-46",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x3.ffffffffffffep-152, false,
- -0x3.ffffffffffffep-152, false,
- false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x3.fffffffffffffffcp-152, false,
- -0x3.fffffffffffffffcp-152, false,
- false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x3.fffffffffffffffcp-152, false,
- -0x3.fffffffffffffffcp-152, false,
- false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x3.ffffffffffffffffffffffffffp-152, false,
- -0x3.ffffffffffffffffffffffffffp-152, false,
- false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x3.fffffffffffffffffffffffffffep-152, false,
- -0x3.fffffffffffffffffffffffffffep-152, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x3.ffffffffffffep-152, false, false,
+ -0x3.ffffffffffffep-152, false, false,
+ false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x3.fffffffffffffffcp-152, false, false,
+ -0x3.fffffffffffffffcp-152, false, false,
+ false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x3.fffffffffffffffcp-152, false, false,
+ -0x3.fffffffffffffffcp-152, false, false,
+ false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x3.ffffffffffffffffffffffffffp-152, false, false,
+ -0x3.ffffffffffffffffffffffffffp-152, false, false,
+ false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x3.fffffffffffffffffffffffffffep-152, false, false,
+ -0x3.fffffffffffffffffffffffffffep-152, false, false),
TEST ("-7.006492321624085354618647916449580656401309709382578858785"
"34141944895541342930300743319094181060791015625e-46",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- true,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ true,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false),
TEST ("-7.006492321624085354618647916449580656401309709382578858785"
"34141944895541342930300743319094181060791015626e-46",
false,
- -0x8p-152, false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4.0000000000004p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- false,
- -0x4.0000000000000008p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- false,
- -0x4.0000000000000008p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- false,
- -0x4.00000000000000000000000002p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- false,
- -0x4.0000000000000000000000000004p-152, false,
- -0x4p-152, false,
- -0x4p-152, false,
- -0x4p-152, false),
+ -0x8p-152, false, true,
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4.0000000000004p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ false,
+ -0x4.0000000000000008p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ false,
+ -0x4.0000000000000008p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ false,
+ -0x4.00000000000000000000000002p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ false,
+ -0x4.0000000000000000000000000004p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false,
+ -0x4p-152, false, false),
TEST ("2.4703282292062327208828439643411068618252990130716238221279"
"284125033775363510437593264991818081799618989828234772285886"
"546332835517796989819938739800539093906315035659515570226392"
@@ -7335,35 +7335,35 @@ static const struct test tests[] = {
"779186948667994968324049705821028513185451396213837722826145"
"437693412532098591327667236328124e-324",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x1.fffffffffffffffep-1076, false,
- 0x2p-1076, false,
- 0x1.fffffffffffffffep-1076, false,
- 0x2p-1076, false,
- false,
- 0x1.fffffffffffffffep-1076, false,
- 0x2p-1076, false,
- 0x1.fffffffffffffffep-1076, false,
- 0x2p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x1.ffffffffffffffffffffffffffffp-1076, false,
- 0x2p-1076, false,
- 0x1.ffffffffffffffffffffffffffffp-1076, false,
- 0x2p-1076, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.fffffffffffffffep-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x1.fffffffffffffffep-1076, false, false,
+ 0x2p-1076, false, false,
+ false,
+ 0x1.fffffffffffffffep-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x1.fffffffffffffffep-1076, false, false,
+ 0x2p-1076, false, false,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.ffffffffffffffffffffffffffffp-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x1.ffffffffffffffffffffffffffffp-1076, false, false,
+ 0x2p-1076, false, false),
TEST ("2.4703282292062327208828439643411068618252990130716238221279"
"284125033775363510437593264991818081799618989828234772285886"
"546332835517796989819938739800539093906315035659515570226392"
@@ -7378,35 +7378,35 @@ static const struct test tests[] = {
"779186948667994968324049705821028513185451396213837722826145"
"437693412532098591327667236328125e-324",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- true,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ true,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false),
TEST ("2.4703282292062327208828439643411068618252990130716238221279"
"284125033775363510437593264991818081799618989828234772285886"
"546332835517796989819938739800539093906315035659515570226392"
@@ -7421,35 +7421,35 @@ static const struct test tests[] = {
"779186948667994968324049705821028513185451396213837722826145"
"437693412532098591327667236328126e-324",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x4p-1076, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2.0000000000000004p-1076, false,
- false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2.0000000000000004p-1076, false,
- false,
- 0x0p+0, false,
- 0x4p-1076, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2p-1076, false,
- 0x2.0000000000000000000000000002p-1076, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2.0000000000000004p-1076, false, false,
+ false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2.0000000000000004p-1076, false, false,
+ false,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2p-1076, false, false,
+ 0x2.0000000000000000000000000002p-1076, false, false),
TEST ("-2.470328229206232720882843964341106861825299013071623822127"
"928412503377536351043759326499181808179961898982823477228588"
"654633283551779698981993873980053909390631503565951557022639"
@@ -7464,35 +7464,35 @@ static const struct test tests[] = {
"477918694866799496832404970582102851318545139621383772282614"
"5437693412532098591327667236328124e-324",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x1.fffffffffffffffep-1076, false,
- -0x1.fffffffffffffffep-1076, false,
- false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x1.fffffffffffffffep-1076, false,
- -0x1.fffffffffffffffep-1076, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x1.ffffffffffffffffffffffffffffp-1076, false,
- -0x1.ffffffffffffffffffffffffffffp-1076, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x1.fffffffffffffffep-1076, false, false,
+ -0x1.fffffffffffffffep-1076, false, false,
+ false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x1.fffffffffffffffep-1076, false, false,
+ -0x1.fffffffffffffffep-1076, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x1.ffffffffffffffffffffffffffffp-1076, false, false,
+ -0x1.ffffffffffffffffffffffffffffp-1076, false, false),
TEST ("-2.470328229206232720882843964341106861825299013071623822127"
"928412503377536351043759326499181808179961898982823477228588"
"654633283551779698981993873980053909390631503565951557022639"
@@ -7507,35 +7507,35 @@ static const struct test tests[] = {
"477918694866799496832404970582102851318545139621383772282614"
"5437693412532098591327667236328125e-324",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- true,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ true,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false),
TEST ("-2.470328229206232720882843964341106861825299013071623822127"
"928412503377536351043759326499181808179961898982823477228588"
"654633283551779698981993873980053909390631503565951557022639"
@@ -7550,35 +7550,35 @@ static const struct test tests[] = {
"477918694866799496832404970582102851318545139621383772282614"
"5437693412532098591327667236328126e-324",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x2.0000000000000004p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- false,
- -0x2.0000000000000004p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- false,
- -0x4p-1076, false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x2.0000000000000000000000000002p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false,
- -0x2p-1076, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x2.0000000000000004p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ false,
+ -0x2.0000000000000004p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x2.0000000000000000000000000002p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false,
+ -0x2p-1076, false, false),
TEST ("1.8225997659412373012642029668097099081995254078467816718604"
"902435141858443166988684047803543129136025986236736736017655"
"509834928163110160849867540377949045027419112905889658392846"
@@ -7772,35 +7772,35 @@ static const struct test tests[] = {
"622089641993900896756734276531931450266972752637997248151974"
"2277811246822238899767398834228515624e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x4p-16448, false,
- 0x0p+0, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x3.fffffffffffcp-16448, false,
- 0x4p-16448, false,
- 0x3.fffffffffffcp-16448, false,
- 0x4p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x3.fffffffffffcp-16448, false, true,
+ 0x4p-16448, false, true,
+ 0x3.fffffffffffcp-16448, false, true,
+ 0x4p-16448, false, true),
TEST ("1.8225997659412373012642029668097099081995254078467816718604"
"902435141858443166988684047803543129136025986236736736017655"
"509834928163110160849867540377949045027419112905889658392846"
@@ -7994,35 +7994,35 @@ static const struct test tests[] = {
"622089641993900896756734276531931450266972752637997248151974"
"2277811246822238899767398834228515625e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- true,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ true,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false,
+ 0x4p-16448, false, false),
TEST ("1.8225997659412373012642029668097099081995254078467816718604"
"902435141858443166988684047803543129136025986236736736017655"
"509834928163110160849867540377949045027419112905889658392846"
@@ -8216,35 +8216,35 @@ static const struct test tests[] = {
"622089641993900896756734276531931450266972752637997248151974"
"2277811246822238899767398834228515626e-4951",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x8p-16448, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4p-16448, false,
- 0x4.000000000004p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x4p-16448, false, true,
+ 0x4p-16448, false, true,
+ 0x4p-16448, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x4p-16448, false, true,
+ 0x4p-16448, false, true,
+ 0x4p-16448, false, true,
+ 0x4.000000000004p-16448, false, true),
TEST ("-1.822599765941237301264202966809709908199525407846781671860"
"490243514185844316698868404780354312913602598623673673601765"
"550983492816311016084986754037794904502741911290588965839284"
@@ -8438,35 +8438,35 @@ static const struct test tests[] = {
"462208964199390089675673427653193145026697275263799724815197"
"42277811246822238899767398834228515624e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x3.fffffffffffcp-16448, false,
- -0x3.fffffffffffcp-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x4p-16448, false, true,
+ -0x3.fffffffffffcp-16448, false, true,
+ -0x3.fffffffffffcp-16448, false, true),
TEST ("-1.822599765941237301264202966809709908199525407846781671860"
"490243514185844316698868404780354312913602598623673673601765"
"550983492816311016084986754037794904502741911290588965839284"
@@ -8660,35 +8660,35 @@ static const struct test tests[] = {
"462208964199390089675673427653193145026697275263799724815197"
"42277811246822238899767398834228515625e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false,
+ -0x4p-16448, false, false),
TEST ("-1.822599765941237301264202966809709908199525407846781671860"
"490243514185844316698868404780354312913602598623673673601765"
"550983492816311016084986754037794904502741911290588965839284"
@@ -8882,35 +8882,35 @@ static const struct test tests[] = {
"462208964199390089675673427653193145026697275263799724815197"
"42277811246822238899767398834228515626e-4951",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4.000000000004p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x4p-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x4p-16448, false, true,
+ -0x4p-16448, false, true,
+ -0x4p-16448, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4.000000000004p-16448, false, true,
+ -0x4p-16448, false, true,
+ -0x4p-16448, false, true,
+ -0x4p-16448, false, true),
TEST ("9.1129988297061865063210148340485495409976270392339083593024"
"512175709292215834943420239017715645680129931183683680088277"
"549174640815550804249337701889745225137095564529448291964230"
@@ -9104,35 +9104,35 @@ static const struct test tests[] = {
"110448209969504483783671382659657251334863763189986240759871"
"1389056234111194498836994171142578124e-4952",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x1.fffffffffffcp-16448, false,
- 0x2p-16448, false,
- 0x1.fffffffffffcp-16448, false,
- 0x2p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.fffffffffffcp-16448, false, true,
+ 0x2p-16448, false, true,
+ 0x1.fffffffffffcp-16448, false, true,
+ 0x2p-16448, false, true),
TEST ("9.1129988297061865063210148340485495409976270392339083593024"
"512175709292215834943420239017715645680129931183683680088277"
"549174640815550804249337701889745225137095564529448291964230"
@@ -9326,35 +9326,35 @@ static const struct test tests[] = {
"110448209969504483783671382659657251334863763189986240759871"
"1389056234111194498836994171142578125e-4952",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- true,
- 0x2p-16448, false,
- 0x2p-16448, false,
- 0x2p-16448, false,
- 0x2p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x2p-16448, false, false,
+ 0x2p-16448, false, false,
+ 0x2p-16448, false, false,
+ 0x2p-16448, false, false),
TEST ("9.1129988297061865063210148340485495409976270392339083593024"
"512175709292215834943420239017715645680129931183683680088277"
"549174640815550804249337701889745225137095564529448291964230"
@@ -9548,35 +9548,35 @@ static const struct test tests[] = {
"110448209969504483783671382659657251334863763189986240759871"
"1389056234111194498836994171142578126e-4952",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x4p-16448, false,
- 0x0p+0, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x2p-16448, false,
- 0x2p-16448, false,
- 0x2p-16448, false,
- 0x2.000000000004p-16448, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x2p-16448, false, true,
+ 0x2p-16448, false, true,
+ 0x2p-16448, false, true,
+ 0x2.000000000004p-16448, false, true),
TEST ("-9.112998829706186506321014834048549540997627039233908359302"
"451217570929221583494342023901771564568012993118368368008827"
"754917464081555080424933770188974522513709556452944829196423"
@@ -9770,35 +9770,35 @@ static const struct test tests[] = {
"311044820996950448378367138265965725133486376318998624075987"
"11389056234111194498836994171142578124e-4952",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x2p-16448, false,
- -0x2p-16448, false,
- -0x1.fffffffffffcp-16448, false,
- -0x1.fffffffffffcp-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x2p-16448, false, true,
+ -0x2p-16448, false, true,
+ -0x1.fffffffffffcp-16448, false, true,
+ -0x1.fffffffffffcp-16448, false, true),
TEST ("-9.112998829706186506321014834048549540997627039233908359302"
"451217570929221583494342023901771564568012993118368368008827"
"754917464081555080424933770188974522513709556452944829196423"
@@ -9992,35 +9992,35 @@ static const struct test tests[] = {
"311044820996950448378367138265965725133486376318998624075987"
"11389056234111194498836994171142578125e-4952",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- true,
- -0x2p-16448, false,
- -0x2p-16448, false,
- -0x2p-16448, false,
- -0x2p-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ true,
+ -0x2p-16448, false, false,
+ -0x2p-16448, false, false,
+ -0x2p-16448, false, false,
+ -0x2p-16448, false, false),
TEST ("-9.112998829706186506321014834048549540997627039233908359302"
"451217570929221583494342023901771564568012993118368368008827"
"754917464081555080424933770188974522513709556452944829196423"
@@ -10214,35 +10214,35 @@ static const struct test tests[] = {
"311044820996950448378367138265965725133486376318998624075987"
"11389056234111194498836994171142578126e-4952",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x2.000000000004p-16448, false,
- -0x2p-16448, false,
- -0x2p-16448, false,
- -0x2p-16448, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x2.000000000004p-16448, false, true,
+ -0x2p-16448, false, true,
+ -0x2p-16448, false, true,
+ -0x2p-16448, false, true),
TEST ("3.2375875597190125554622194791138232762497846690173405048449"
"421945985197700620596855088357456383249701279390707384240598"
"382936099431912710233425550359863089915213963553756674672083"
@@ -10437,35 +10437,35 @@ static const struct test tests[] = {
"182358152808745703724362178773168996492870519432472065091133"
"11767578124e-4966",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16496, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16496, false, true),
TEST ("3.2375875597190125554622194791138232762497846690173405048449"
"421945985197700620596855088357456383249701279390707384240598"
"382936099431912710233425550359863089915213963553756674672083"
@@ -10660,35 +10660,35 @@ static const struct test tests[] = {
"182358152808745703724362178773168996492870519432472065091133"
"11767578125e-4966",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16496, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16496, false, true),
TEST ("3.2375875597190125554622194791138232762497846690173405048449"
"421945985197700620596855088357456383249701279390707384240598"
"382936099431912710233425550359863089915213963553756674672083"
@@ -10883,35 +10883,35 @@ static const struct test tests[] = {
"182358152808745703724362178773168996492870519432472065091133"
"11767578126e-4966",
false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-152, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x8p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-16448, false,
- false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x0p+0, false,
- 0x4p-1076, false,
- false,
- 0x0p+0, false,
- 0x4p-16496, false,
- 0x0p+0, false,
- 0x4p-16496, false),
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16448, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x4p-16496, false, true,
+ 0x0p+0, false, true,
+ 0x4p-16496, false, true),
TEST ("-3.237587559719012555462219479113823276249784669017340504844"
"942194598519770062059685508835745638324970127939070738424059"
"838293609943191271023342555035986308991521396355375667467208"
@@ -11106,35 +11106,35 @@ static const struct test tests[] = {
"218235815280874570372436217877316899649287051943247206509113"
"311767578124e-4966",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16496, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16496, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true),
TEST ("-3.237587559719012555462219479113823276249784669017340504844"
"942194598519770062059685508835745638324970127939070738424059"
"838293609943191271023342555035986308991521396355375667467208"
@@ -11329,35 +11329,35 @@ static const struct test tests[] = {
"218235815280874570372436217877316899649287051943247206509113"
"311767578125e-4966",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16496, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16496, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true),
TEST ("-3.237587559719012555462219479113823276249784669017340504844"
"942194598519770062059685508835745638324970127939070738424059"
"838293609943191271023342555035986308991521396355375667467208"
@@ -11552,66 +11552,66 @@ static const struct test tests[] = {
"218235815280874570372436217877316899649287051943247206509113"
"311767578126e-4966",
false,
- -0x8p-152, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x8p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16448, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-1076, false,
- -0x0p+0, false,
- -0x0p+0, false,
- -0x0p+0, false,
- false,
- -0x4p-16496, false,
- -0x4p-16496, false,
- -0x0p+0, false,
- -0x0p+0, false),
+ -0x8p-152, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x8p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16448, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-1076, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true,
+ false,
+ -0x4p-16496, false, true,
+ -0x4p-16496, false, true,
+ -0x0p+0, false, true,
+ -0x0p+0, false, true),
TEST ("340282366920938463463374607431768211455",
false,
- 0xf.fffffp+124, false,
- INF, true,
- 0xf.fffffp+124, false,
- INF, true,
- false,
- 0xf.ffffffffffff8p+124, false,
- 0x1p+128, false,
- 0xf.ffffffffffff8p+124, false,
- 0x1p+128, false,
- false,
- 0xf.fffffffffffffffp+124, false,
- 0x1p+128, false,
- 0xf.fffffffffffffffp+124, false,
- 0x1p+128, false,
- false,
- 0xf.fffffffffffffffp+124, false,
- 0x1p+128, false,
- 0xf.fffffffffffffffp+124, false,
- 0x1p+128, false,
- false,
- 0xf.fffffffffffffffffffffffffcp+124, false,
- 0x1p+128, false,
- 0xf.fffffffffffffffffffffffffcp+124, false,
- 0x1p+128, false,
- false,
- 0xf.fffffffffffffffffffffffffff8p+124, false,
- 0x1p+128, false,
- 0xf.fffffffffffffffffffffffffff8p+124, false,
- 0x1p+128, false),
+ 0xf.fffffp+124, false, false,
+ INF, true, false,
+ 0xf.fffffp+124, false, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+124, false, false,
+ 0x1p+128, false, false,
+ 0xf.ffffffffffff8p+124, false, false,
+ 0x1p+128, false, false,
+ false,
+ 0xf.fffffffffffffffp+124, false, false,
+ 0x1p+128, false, false,
+ 0xf.fffffffffffffffp+124, false, false,
+ 0x1p+128, false, false,
+ false,
+ 0xf.fffffffffffffffp+124, false, false,
+ 0x1p+128, false, false,
+ 0xf.fffffffffffffffp+124, false, false,
+ 0x1p+128, false, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+124, false, false,
+ 0x1p+128, false, false,
+ 0xf.fffffffffffffffffffffffffcp+124, false, false,
+ 0x1p+128, false, false,
+ false,
+ 0xf.fffffffffffffffffffffffffff8p+124, false, false,
+ 0x1p+128, false, false,
+ 0xf.fffffffffffffffffffffffffff8p+124, false, false,
+ 0x1p+128, false, false),
TEST ("179769313486231590772930519078902473361797697894230657273430"
"081157732675805500963132708477322407536021120113879871393357"
"658789768814416622492847430639474124377767893424865485276302"
@@ -11619,35 +11619,35 @@ static const struct test tests[] = {
"540827237163350510684586298239947245938479716304835356329624"
"224137215",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, false,
- INF, true,
- 0xf.ffffffffffff8p+1020, false,
- INF, true,
- false,
- 0xf.fffffffffffffffp+1020, false,
- 0x1p+1024, false,
- 0xf.fffffffffffffffp+1020, false,
- 0x1p+1024, false,
- false,
- 0xf.fffffffffffffffp+1020, false,
- 0x1p+1024, false,
- 0xf.fffffffffffffffp+1020, false,
- 0x1p+1024, false,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffff8p+1020, false,
- 0x1p+1024, false,
- 0xf.fffffffffffffffffffffffffff8p+1020, false,
- 0x1p+1024, false),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+1020, false, false,
+ 0x1p+1024, false, false,
+ 0xf.fffffffffffffffp+1020, false, false,
+ 0x1p+1024, false, false,
+ false,
+ 0xf.fffffffffffffffp+1020, false, false,
+ 0x1p+1024, false, false,
+ 0xf.fffffffffffffffp+1020, false, false,
+ 0x1p+1024, false, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffff8p+1020, false, false,
+ 0x1p+1024, false, false,
+ 0xf.fffffffffffffffffffffffffff8p+1020, false, false,
+ 0x1p+1024, false, false),
TEST ("118973149535723176508575932662800713076344468709651023747267"
"482123326135818048368690448859547261203991511543748483930925"
"889766738130868742627452469834156500608087163436600489752214"
@@ -11732,66 +11732,66 @@ static const struct test tests[] = {
"047398248889922809181821393428829567971736994315246044702729"
"0669964066815",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- 0xf.fffffffffffffffp+16380, false,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- false,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- INF, true,
- 0xf.fffffffffffffffffffffffffff8p+16380, false,
- INF, true),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffp+16380, false, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ INF, true, false),
TEST ("-340282366920938463463374607431768211455",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, false,
- -0xf.fffffp+124, false,
- false,
- -0x1p+128, false,
- -0x1p+128, false,
- -0xf.ffffffffffff8p+124, false,
- -0xf.ffffffffffff8p+124, false,
- false,
- -0x1p+128, false,
- -0x1p+128, false,
- -0xf.fffffffffffffffp+124, false,
- -0xf.fffffffffffffffp+124, false,
- false,
- -0x1p+128, false,
- -0x1p+128, false,
- -0xf.fffffffffffffffp+124, false,
- -0xf.fffffffffffffffp+124, false,
- false,
- -0x1p+128, false,
- -0x1p+128, false,
- -0xf.fffffffffffffffffffffffffcp+124, false,
- -0xf.fffffffffffffffffffffffffcp+124, false,
- false,
- -0x1p+128, false,
- -0x1p+128, false,
- -0xf.fffffffffffffffffffffffffff8p+124, false,
- -0xf.fffffffffffffffffffffffffff8p+124, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, false, false,
+ -0xf.fffffp+124, false, false,
+ false,
+ -0x1p+128, false, false,
+ -0x1p+128, false, false,
+ -0xf.ffffffffffff8p+124, false, false,
+ -0xf.ffffffffffff8p+124, false, false,
+ false,
+ -0x1p+128, false, false,
+ -0x1p+128, false, false,
+ -0xf.fffffffffffffffp+124, false, false,
+ -0xf.fffffffffffffffp+124, false, false,
+ false,
+ -0x1p+128, false, false,
+ -0x1p+128, false, false,
+ -0xf.fffffffffffffffp+124, false, false,
+ -0xf.fffffffffffffffp+124, false, false,
+ false,
+ -0x1p+128, false, false,
+ -0x1p+128, false, false,
+ -0xf.fffffffffffffffffffffffffcp+124, false, false,
+ -0xf.fffffffffffffffffffffffffcp+124, false, false,
+ false,
+ -0x1p+128, false, false,
+ -0x1p+128, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+124, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+124, false, false),
TEST ("-17976931348623159077293051907890247336179769789423065727343"
"008115773267580550096313270847732240753602112011387987139335"
"765878976881441662249284743063947412437776789342486548527630"
@@ -11799,35 +11799,35 @@ static const struct test tests[] = {
"054082723716335051068458629823994724593847971630483535632962"
"4224137215",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, false,
- -0xf.ffffffffffff8p+1020, false,
- false,
- -0x1p+1024, false,
- -0x1p+1024, false,
- -0xf.fffffffffffffffp+1020, false,
- -0xf.fffffffffffffffp+1020, false,
- false,
- -0x1p+1024, false,
- -0x1p+1024, false,
- -0xf.fffffffffffffffp+1020, false,
- -0xf.fffffffffffffffp+1020, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- false,
- -0x1p+1024, false,
- -0x1p+1024, false,
- -0xf.fffffffffffffffffffffffffff8p+1020, false,
- -0xf.fffffffffffffffffffffffffff8p+1020, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ -0xf.ffffffffffff8p+1020, false, false,
+ false,
+ -0x1p+1024, false, false,
+ -0x1p+1024, false, false,
+ -0xf.fffffffffffffffp+1020, false, false,
+ -0xf.fffffffffffffffp+1020, false, false,
+ false,
+ -0x1p+1024, false, false,
+ -0x1p+1024, false, false,
+ -0xf.fffffffffffffffp+1020, false, false,
+ -0xf.fffffffffffffffp+1020, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ false,
+ -0x1p+1024, false, false,
+ -0x1p+1024, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+1020, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+1020, false, false),
TEST ("-11897314953572317650857593266280071307634446870965102374726"
"748212332613581804836869044885954726120399151154374848393092"
"588976673813086874262745246983415650060808716343660048975221"
@@ -11912,3529 +11912,3901 @@ static const struct test tests[] = {
"904739824888992280918182139342882956797173699431524604470272"
"90669964066815",
false,
- -INF, true,
- -INF, true,
- -0xf.fffffp+124, true,
- -0xf.fffffp+124, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.ffffffffffff8p+1020, true,
- -0xf.ffffffffffff8p+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffp+16380, false,
- -0xf.fffffffffffffffp+16380, false,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- -0xf.fffffffffffffffffffffffffcp+1020, true,
- false,
- -INF, true,
- -INF, true,
- -0xf.fffffffffffffffffffffffffff8p+16380, false,
- -0xf.fffffffffffffffffffffffffff8p+16380, false),
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffp+124, true, false,
+ -0xf.fffffp+124, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ -0xf.ffffffffffff8p+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ -0xf.fffffffffffffffp+16380, false, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ -0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ false,
+ -INF, true, false,
+ -INF, true, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false,
+ -0xf.fffffffffffffffffffffffffff8p+16380, false, false),
TEST ("+0x.80000000000000000000000000000001p1025",
false,
- 0xf.fffffp+124, true,
- INF, true,
- 0xf.fffffp+124, true,
- INF, true,
- false,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- 0xf.ffffffffffff8p+1020, true,
- INF, true,
- false,
- 0x1p+1024, false,
- 0x1p+1024, false,
- 0x1p+1024, false,
- 0x1.0000000000000002p+1024, false,
- false,
- 0x1p+1024, false,
- 0x1p+1024, false,
- 0x1p+1024, false,
- 0x1.0000000000000002p+1024, false,
- false,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- 0xf.fffffffffffffffffffffffffcp+1020, true,
- INF, true,
- false,
- 0x1p+1024, false,
- 0x1p+1024, false,
- 0x1p+1024, false,
- 0x1.0000000000000000000000000001p+1024, false),
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ 0xf.fffffp+124, true, false,
+ INF, true, false,
+ false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ 0xf.ffffffffffff8p+1020, true, false,
+ INF, true, false,
+ false,
+ 0x1p+1024, false, false,
+ 0x1p+1024, false, false,
+ 0x1p+1024, false, false,
+ 0x1.0000000000000002p+1024, false, false,
+ false,
+ 0x1p+1024, false, false,
+ 0x1p+1024, false, false,
+ 0x1p+1024, false, false,
+ 0x1.0000000000000002p+1024, false, false,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ 0xf.fffffffffffffffffffffffffcp+1020, true, false,
+ INF, true, false,
+ false,
+ 0x1p+1024, false, false,
+ 0x1p+1024, false, false,
+ 0x1p+1024, false, false,
+ 0x1.0000000000000000000000000001p+1024, false, false),
TEST ("1.5",
true,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- true,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- true,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- true,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- true,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- true,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false,
- 0x1.8p+0, false),
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ true,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ true,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ true,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ true,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ true,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false,
+ 0x1.8p+0, false, false),
TEST ("1.25",
true,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- true,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- true,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- true,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- true,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- true,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false,
- 0x1.4p+0, false),
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ true,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ true,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ true,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ true,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ true,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false,
+ 0x1.4p+0, false, false),
TEST ("1.125",
true,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- true,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- true,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- true,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- true,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- true,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false,
- 0x1.2p+0, false),
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ true,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ true,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ true,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ true,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ true,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false,
+ 0x1.2p+0, false, false),
TEST ("1.0625",
true,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- true,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- true,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- true,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- true,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- true,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false,
- 0x1.1p+0, false),
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ true,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ true,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ true,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ true,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ true,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false,
+ 0x1.1p+0, false, false),
TEST ("1.03125",
true,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- true,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- true,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- true,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- true,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- true,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false,
- 0x1.08p+0, false),
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ true,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ true,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ true,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ true,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ true,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false,
+ 0x1.08p+0, false, false),
TEST ("1.015625",
true,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- true,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- true,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- true,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- true,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- true,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false,
- 0x1.04p+0, false),
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ true,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ true,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ true,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ true,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ true,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false,
+ 0x1.04p+0, false, false),
TEST ("1.0078125",
true,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- true,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- true,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- true,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- true,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- true,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false,
- 0x1.02p+0, false),
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ true,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ true,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ true,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ true,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ true,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false,
+ 0x1.02p+0, false, false),
TEST ("1.00390625",
true,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- true,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- true,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- true,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- true,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- true,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false,
- 0x1.01p+0, false),
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ true,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ true,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ true,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ true,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ true,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false,
+ 0x1.01p+0, false, false),
TEST ("1.001953125",
true,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- true,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- true,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- true,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- true,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- true,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false,
- 0x1.008p+0, false),
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ true,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ true,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ true,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ true,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ true,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false,
+ 0x1.008p+0, false, false),
TEST ("1.0009765625",
true,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- true,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- true,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- true,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- true,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- true,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false,
- 0x1.004p+0, false),
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ true,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ true,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ true,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ true,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ true,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false,
+ 0x1.004p+0, false, false),
TEST ("1.00048828125",
true,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- true,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- true,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- true,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- true,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- true,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false,
- 0x1.002p+0, false),
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ true,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ true,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ true,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ true,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ true,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false,
+ 0x1.002p+0, false, false),
TEST ("1.000244140625",
true,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- true,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- true,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- true,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- true,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- true,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false,
- 0x1.001p+0, false),
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ true,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ true,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ true,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ true,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ true,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false,
+ 0x1.001p+0, false, false),
TEST ("1.0001220703125",
true,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- true,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- true,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- true,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- true,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- true,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false,
- 0x1.0008p+0, false),
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ true,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ true,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ true,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ true,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ true,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false,
+ 0x1.0008p+0, false, false),
TEST ("1.00006103515625",
true,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- true,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- true,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- true,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- true,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- true,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false,
- 0x1.0004p+0, false),
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ true,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ true,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ true,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ true,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ true,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false,
+ 0x1.0004p+0, false, false),
TEST ("1.000030517578125",
true,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- true,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- true,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- true,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- true,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- true,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false,
- 0x1.0002p+0, false),
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ true,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ true,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ true,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ true,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ true,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false,
+ 0x1.0002p+0, false, false),
TEST ("1.0000152587890625",
true,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- true,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- true,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- true,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- true,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- true,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false,
- 0x1.0001p+0, false),
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ true,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ true,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ true,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ true,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ true,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false,
+ 0x1.0001p+0, false, false),
TEST ("1.00000762939453125",
true,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- true,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- true,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- true,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- true,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- true,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false,
- 0x1.00008p+0, false),
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ true,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ true,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ true,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ true,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ true,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false,
+ 0x1.00008p+0, false, false),
TEST ("1.000003814697265625",
true,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- true,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- true,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- true,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- true,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- true,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false,
- 0x1.00004p+0, false),
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ true,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ true,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ true,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ true,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ true,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false,
+ 0x1.00004p+0, false, false),
TEST ("1.0000019073486328125",
true,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- true,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- true,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- true,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- true,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- true,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false,
- 0x1.00002p+0, false),
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ true,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ true,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ true,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ true,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ true,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false,
+ 0x1.00002p+0, false, false),
TEST ("1.00000095367431640625",
true,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- true,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- true,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- true,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- true,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- true,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false,
- 0x1.00001p+0, false),
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ true,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ true,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ true,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ true,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ true,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false,
+ 0x1.00001p+0, false, false),
TEST ("1.000000476837158203125",
true,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- true,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- true,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- true,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- true,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- true,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false,
- 0x1.000008p+0, false),
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ true,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ true,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ true,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ true,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ true,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false,
+ 0x1.000008p+0, false, false),
TEST ("1.0000000298023223876953125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- true,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- true,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- true,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- true,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false,
- 0x1.0000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ true,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ true,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ true,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ true,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false,
+ 0x1.0000008p+0, false, false),
TEST ("1.00000001490116119384765625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- true,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- true,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- true,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- true,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false,
- 0x1.0000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ true,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ true,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ true,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ true,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false,
+ 0x1.0000004p+0, false, false),
TEST ("1.000000007450580596923828125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- true,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- true,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- true,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- true,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false,
- 0x1.0000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ true,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ true,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ true,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ true,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false,
+ 0x1.0000002p+0, false, false),
TEST ("1.0000000037252902984619140625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- true,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- true,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- true,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- true,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false,
- 0x1.0000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ true,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ true,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ true,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ true,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false,
+ 0x1.0000001p+0, false, false),
TEST ("1.00000000186264514923095703125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- true,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- true,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- true,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- true,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false,
- 0x1.00000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ true,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ true,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ true,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ true,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false,
+ 0x1.00000008p+0, false, false),
TEST ("1.000000000931322574615478515625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- true,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- true,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- true,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- true,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false,
- 0x1.00000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ true,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ true,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ true,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ true,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false,
+ 0x1.00000004p+0, false, false),
TEST ("1.0000000004656612873077392578125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- true,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- true,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- true,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- true,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false,
- 0x1.00000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ true,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ true,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ true,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ true,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false,
+ 0x1.00000002p+0, false, false),
TEST ("1.00000000023283064365386962890625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- true,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- true,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- true,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- true,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false,
- 0x1.00000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ true,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ true,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ true,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ true,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false,
+ 0x1.00000001p+0, false, false),
TEST ("1.000000000116415321826934814453125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- true,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- true,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- true,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- true,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false,
- 0x1.000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ true,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ true,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ true,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ true,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false,
+ 0x1.000000008p+0, false, false),
TEST ("1.0000000000582076609134674072265625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- true,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- true,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- true,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- true,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false,
- 0x1.000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ true,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ true,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ true,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ true,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false,
+ 0x1.000000004p+0, false, false),
TEST ("1.00000000002910383045673370361328125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- true,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- true,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- true,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- true,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false,
- 0x1.000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ true,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ true,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ true,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ true,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false,
+ 0x1.000000002p+0, false, false),
TEST ("1.000000000014551915228366851806640625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- true,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- true,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- true,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- true,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false,
- 0x1.000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ true,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ true,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ true,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ true,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false,
+ 0x1.000000001p+0, false, false),
TEST ("1.0000000000072759576141834259033203125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- true,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- true,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- true,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- true,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false,
- 0x1.0000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ true,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ true,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ true,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ true,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false,
+ 0x1.0000000008p+0, false, false),
TEST ("1.00000000000363797880709171295166015625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- true,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- true,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- true,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- true,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false,
- 0x1.0000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ true,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ true,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ true,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ true,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false,
+ 0x1.0000000004p+0, false, false),
TEST ("1.000000000001818989403545856475830078125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- true,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- true,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- true,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- true,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false,
- 0x1.0000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ true,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ true,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ true,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ true,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false,
+ 0x1.0000000002p+0, false, false),
TEST ("1.0000000000009094947017729282379150390625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- true,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- true,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- true,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- true,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false,
- 0x1.0000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ true,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ true,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ true,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ true,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false,
+ 0x1.0000000001p+0, false, false),
TEST ("1.00000000000045474735088646411895751953125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- true,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- true,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- true,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- true,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false,
- 0x1.00000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ true,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ true,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ true,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ true,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false,
+ 0x1.00000000008p+0, false, false),
TEST ("1.000000000000227373675443232059478759765625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- true,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- true,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- true,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- true,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false,
- 0x1.00000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ true,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ true,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ true,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ true,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false,
+ 0x1.00000000004p+0, false, false),
TEST ("1.0000000000001136868377216160297393798828125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- true,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- true,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- true,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- true,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false,
- 0x1.00000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ true,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ true,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ true,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ true,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false,
+ 0x1.00000000002p+0, false, false),
TEST ("1.00000000000005684341886080801486968994140625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- true,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- true,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- true,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- true,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false,
- 0x1.00000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ true,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ true,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ true,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ true,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false,
+ 0x1.00000000001p+0, false, false),
TEST ("1.000000000000028421709430404007434844970703125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- true,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- true,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- true,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- true,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false,
- 0x1.000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ true,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ true,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ true,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ true,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false,
+ 0x1.000000000008p+0, false, false),
TEST ("1.0000000000000142108547152020037174224853515625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- true,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- true,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- true,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- true,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false,
- 0x1.000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ true,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ true,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ true,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ true,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false,
+ 0x1.000000000004p+0, false, false),
TEST ("1.00000000000000710542735760100185871124267578125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- true,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- true,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- true,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- true,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false,
- 0x1.000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ true,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ true,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ true,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ true,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false,
+ 0x1.000000000002p+0, false, false),
TEST ("1.000000000000003552713678800500929355621337890625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- true,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- true,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- true,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- true,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false,
- 0x1.000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ true,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ true,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ true,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ true,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false,
+ 0x1.000000000001p+0, false, false),
TEST ("1.0000000000000017763568394002504646778106689453125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- true,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- true,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- true,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- true,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false,
- 0x1.0000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ true,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ true,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ true,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ true,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false,
+ 0x1.0000000000008p+0, false, false),
TEST ("1.00000000000000088817841970012523233890533447265625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- true,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- true,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- true,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- true,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false,
- 0x1.0000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ true,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ true,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ true,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ true,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false,
+ 0x1.0000000000004p+0, false, false),
TEST ("1.000000000000000444089209850062616169452667236328125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- true,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- true,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- true,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- true,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false,
- 0x1.0000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ true,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ true,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ true,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ true,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false,
+ 0x1.0000000000002p+0, false, false),
TEST ("1.0000000000000002220446049250313080847263336181640625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- true,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false,
- 0x1.0000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ true,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ 0x1.0000000000001p+0, false, false),
TEST ("1.00000000000000011102230246251565404236316680908203125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- true,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- true,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- true,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false,
- 0x1.00000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ true,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ true,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ true,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false,
+ 0x1.00000000000008p+0, false, false),
TEST ("1.000000000000000055511151231257827021181583404541015625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- true,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- true,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- true,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false,
- 0x1.00000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ true,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ true,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ true,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false,
+ 0x1.00000000000004p+0, false, false),
TEST ("1.0000000000000000277555756156289135105907917022705078125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- true,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- true,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- true,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false,
- 0x1.00000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ true,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ true,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ true,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false,
+ 0x1.00000000000002p+0, false, false),
TEST ("1.00000000000000001387778780781445675529539585113525390625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- true,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- true,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- true,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false,
- 0x1.00000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ true,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ true,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ true,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false,
+ 0x1.00000000000001p+0, false, false),
TEST ("1.000000000000000006938893903907228377647697925567626953125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- true,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- true,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- true,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false,
- 0x1.000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false,
+ 0x1.000000000000008p+0, false, false),
TEST ("1.0000000000000000034694469519536141888238489627838134765625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- true,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- true,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- true,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false,
- 0x1.000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ true,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ true,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ true,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false,
+ 0x1.000000000000004p+0, false, false),
TEST ("1.0000000000000000017347234759768070944119244813919067382812"
"5",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- true,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- true,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- true,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false,
- 0x1.000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false,
+ 0x1.000000000000002p+0, false, false),
TEST ("1.0000000000000000008673617379884035472059622406959533691406"
"25",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- true,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- true,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- true,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false,
- 0x1.000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ true,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ true,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ true,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false,
+ 0x1.000000000000001p+0, false, false),
TEST ("1.0000000000000000004336808689942017736029811203479766845703"
"125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- true,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- true,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- true,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false,
- 0x1.0000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false,
+ 0x1.0000000000000008p+0, false, false),
TEST ("1.0000000000000000002168404344971008868014905601739883422851"
"5625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- true,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- true,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- true,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false,
- 0x1.0000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ true,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ true,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ true,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false,
+ 0x1.0000000000000004p+0, false, false),
TEST ("1.0000000000000000001084202172485504434007452800869941711425"
"78125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- true,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false,
- 0x1.0000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ true,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ 0x1.0000000000000002p+0, false, false),
TEST ("1.0000000000000000000542101086242752217003726400434970855712"
"890625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000001p+0, false,
- 0x1.0000000000000001p+0, false,
- 0x1.0000000000000001p+0, false,
- 0x1.0000000000000001p+0, false,
- true,
- 0x1.0000000000000001p+0, false,
- 0x1.0000000000000001p+0, false,
- 0x1.0000000000000001p+0, false,
- 0x1.0000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000001p+0, false, false,
+ 0x1.0000000000000001p+0, false, false,
+ 0x1.0000000000000001p+0, false, false,
+ 0x1.0000000000000001p+0, false, false,
+ true,
+ 0x1.0000000000000001p+0, false, false,
+ 0x1.0000000000000001p+0, false, false,
+ 0x1.0000000000000001p+0, false, false,
+ 0x1.0000000000000001p+0, false, false),
TEST ("1.0000000000000000000271050543121376108501863200217485427856"
"4453125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000008p+0, false,
- 0x1.00000000000000008p+0, false,
- 0x1.00000000000000008p+0, false,
- 0x1.00000000000000008p+0, false,
- true,
- 0x1.00000000000000008p+0, false,
- 0x1.00000000000000008p+0, false,
- 0x1.00000000000000008p+0, false,
- 0x1.00000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000008p+0, false, false,
+ 0x1.00000000000000008p+0, false, false,
+ 0x1.00000000000000008p+0, false, false,
+ 0x1.00000000000000008p+0, false, false,
+ true,
+ 0x1.00000000000000008p+0, false, false,
+ 0x1.00000000000000008p+0, false, false,
+ 0x1.00000000000000008p+0, false, false,
+ 0x1.00000000000000008p+0, false, false),
TEST ("1.0000000000000000000135525271560688054250931600108742713928"
"22265625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000004p+0, false,
- 0x1.00000000000000004p+0, false,
- 0x1.00000000000000004p+0, false,
- 0x1.00000000000000004p+0, false,
- true,
- 0x1.00000000000000004p+0, false,
- 0x1.00000000000000004p+0, false,
- 0x1.00000000000000004p+0, false,
- 0x1.00000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000004p+0, false, false,
+ 0x1.00000000000000004p+0, false, false,
+ 0x1.00000000000000004p+0, false, false,
+ 0x1.00000000000000004p+0, false, false,
+ true,
+ 0x1.00000000000000004p+0, false, false,
+ 0x1.00000000000000004p+0, false, false,
+ 0x1.00000000000000004p+0, false, false,
+ 0x1.00000000000000004p+0, false, false),
TEST ("1.0000000000000000000067762635780344027125465800054371356964"
"111328125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000002p+0, false,
- 0x1.00000000000000002p+0, false,
- 0x1.00000000000000002p+0, false,
- 0x1.00000000000000002p+0, false,
- true,
- 0x1.00000000000000002p+0, false,
- 0x1.00000000000000002p+0, false,
- 0x1.00000000000000002p+0, false,
- 0x1.00000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000002p+0, false, false,
+ 0x1.00000000000000002p+0, false, false,
+ 0x1.00000000000000002p+0, false, false,
+ 0x1.00000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000002p+0, false, false,
+ 0x1.00000000000000002p+0, false, false,
+ 0x1.00000000000000002p+0, false, false,
+ 0x1.00000000000000002p+0, false, false),
TEST ("1.0000000000000000000033881317890172013562732900027185678482"
"0556640625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000001p+0, false,
- 0x1.00000000000000001p+0, false,
- 0x1.00000000000000001p+0, false,
- 0x1.00000000000000001p+0, false,
- true,
- 0x1.00000000000000001p+0, false,
- 0x1.00000000000000001p+0, false,
- 0x1.00000000000000001p+0, false,
- 0x1.00000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000001p+0, false, false,
+ 0x1.00000000000000001p+0, false, false,
+ 0x1.00000000000000001p+0, false, false,
+ 0x1.00000000000000001p+0, false, false,
+ true,
+ 0x1.00000000000000001p+0, false, false,
+ 0x1.00000000000000001p+0, false, false,
+ 0x1.00000000000000001p+0, false, false,
+ 0x1.00000000000000001p+0, false, false),
TEST ("1.0000000000000000000016940658945086006781366450013592839241"
"02783203125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000008p+0, false,
- 0x1.000000000000000008p+0, false,
- 0x1.000000000000000008p+0, false,
- 0x1.000000000000000008p+0, false,
- true,
- 0x1.000000000000000008p+0, false,
- 0x1.000000000000000008p+0, false,
- 0x1.000000000000000008p+0, false,
- 0x1.000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000008p+0, false, false,
+ 0x1.000000000000000008p+0, false, false,
+ 0x1.000000000000000008p+0, false, false,
+ 0x1.000000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000000008p+0, false, false,
+ 0x1.000000000000000008p+0, false, false,
+ 0x1.000000000000000008p+0, false, false,
+ 0x1.000000000000000008p+0, false, false),
TEST ("1.0000000000000000000008470329472543003390683225006796419620"
"513916015625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000004p+0, false,
- 0x1.000000000000000004p+0, false,
- 0x1.000000000000000004p+0, false,
- 0x1.000000000000000004p+0, false,
- true,
- 0x1.000000000000000004p+0, false,
- 0x1.000000000000000004p+0, false,
- 0x1.000000000000000004p+0, false,
- 0x1.000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000004p+0, false, false,
+ 0x1.000000000000000004p+0, false, false,
+ 0x1.000000000000000004p+0, false, false,
+ 0x1.000000000000000004p+0, false, false,
+ true,
+ 0x1.000000000000000004p+0, false, false,
+ 0x1.000000000000000004p+0, false, false,
+ 0x1.000000000000000004p+0, false, false,
+ 0x1.000000000000000004p+0, false, false),
TEST ("1.0000000000000000000004235164736271501695341612503398209810"
"2569580078125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000002p+0, false,
- 0x1.000000000000000002p+0, false,
- 0x1.000000000000000002p+0, false,
- 0x1.000000000000000002p+0, false,
- true,
- 0x1.000000000000000002p+0, false,
- 0x1.000000000000000002p+0, false,
- 0x1.000000000000000002p+0, false,
- 0x1.000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000002p+0, false, false,
+ 0x1.000000000000000002p+0, false, false,
+ 0x1.000000000000000002p+0, false, false,
+ 0x1.000000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000002p+0, false, false,
+ 0x1.000000000000000002p+0, false, false,
+ 0x1.000000000000000002p+0, false, false,
+ 0x1.000000000000000002p+0, false, false),
TEST ("1.0000000000000000000002117582368135750847670806251699104905"
"12847900390625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000001p+0, false,
- 0x1.000000000000000001p+0, false,
- 0x1.000000000000000001p+0, false,
- 0x1.000000000000000001p+0, false,
- true,
- 0x1.000000000000000001p+0, false,
- 0x1.000000000000000001p+0, false,
- 0x1.000000000000000001p+0, false,
- 0x1.000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000001p+0, false, false,
+ 0x1.000000000000000001p+0, false, false,
+ 0x1.000000000000000001p+0, false, false,
+ 0x1.000000000000000001p+0, false, false,
+ true,
+ 0x1.000000000000000001p+0, false, false,
+ 0x1.000000000000000001p+0, false, false,
+ 0x1.000000000000000001p+0, false, false,
+ 0x1.000000000000000001p+0, false, false),
TEST ("1.0000000000000000000001058791184067875423835403125849552452"
"564239501953125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000008p+0, false,
- 0x1.0000000000000000008p+0, false,
- 0x1.0000000000000000008p+0, false,
- 0x1.0000000000000000008p+0, false,
- true,
- 0x1.0000000000000000008p+0, false,
- 0x1.0000000000000000008p+0, false,
- 0x1.0000000000000000008p+0, false,
- 0x1.0000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000008p+0, false, false,
+ 0x1.0000000000000000008p+0, false, false,
+ 0x1.0000000000000000008p+0, false, false,
+ 0x1.0000000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000000008p+0, false, false,
+ 0x1.0000000000000000008p+0, false, false,
+ 0x1.0000000000000000008p+0, false, false,
+ 0x1.0000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000529395592033937711917701562924776226"
"2821197509765625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000004p+0, false,
- 0x1.0000000000000000004p+0, false,
- 0x1.0000000000000000004p+0, false,
- 0x1.0000000000000000004p+0, false,
- true,
- 0x1.0000000000000000004p+0, false,
- 0x1.0000000000000000004p+0, false,
- 0x1.0000000000000000004p+0, false,
- 0x1.0000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000004p+0, false, false,
+ 0x1.0000000000000000004p+0, false, false,
+ 0x1.0000000000000000004p+0, false, false,
+ 0x1.0000000000000000004p+0, false, false,
+ true,
+ 0x1.0000000000000000004p+0, false, false,
+ 0x1.0000000000000000004p+0, false, false,
+ 0x1.0000000000000000004p+0, false, false,
+ 0x1.0000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000264697796016968855958850781462388113"
"14105987548828125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000002p+0, false,
- 0x1.0000000000000000002p+0, false,
- 0x1.0000000000000000002p+0, false,
- 0x1.0000000000000000002p+0, false,
- true,
- 0x1.0000000000000000002p+0, false,
- 0x1.0000000000000000002p+0, false,
- 0x1.0000000000000000002p+0, false,
- 0x1.0000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000002p+0, false, false,
+ 0x1.0000000000000000002p+0, false, false,
+ 0x1.0000000000000000002p+0, false, false,
+ 0x1.0000000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000002p+0, false, false,
+ 0x1.0000000000000000002p+0, false, false,
+ 0x1.0000000000000000002p+0, false, false,
+ 0x1.0000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000132348898008484427979425390731194056"
"570529937744140625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000001p+0, false,
- 0x1.0000000000000000001p+0, false,
- 0x1.0000000000000000001p+0, false,
- 0x1.0000000000000000001p+0, false,
- true,
- 0x1.0000000000000000001p+0, false,
- 0x1.0000000000000000001p+0, false,
- 0x1.0000000000000000001p+0, false,
- 0x1.0000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000001p+0, false, false,
+ 0x1.0000000000000000001p+0, false, false,
+ 0x1.0000000000000000001p+0, false, false,
+ 0x1.0000000000000000001p+0, false, false,
+ true,
+ 0x1.0000000000000000001p+0, false, false,
+ 0x1.0000000000000000001p+0, false, false,
+ 0x1.0000000000000000001p+0, false, false,
+ 0x1.0000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000066174449004242213989712695365597028"
"2852649688720703125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000008p+0, false,
- 0x1.00000000000000000008p+0, false,
- 0x1.00000000000000000008p+0, false,
- 0x1.00000000000000000008p+0, false,
- true,
- 0x1.00000000000000000008p+0, false,
- 0x1.00000000000000000008p+0, false,
- 0x1.00000000000000000008p+0, false,
- 0x1.00000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000008p+0, false, false,
+ 0x1.00000000000000000008p+0, false, false,
+ 0x1.00000000000000000008p+0, false, false,
+ 0x1.00000000000000000008p+0, false, false,
+ true,
+ 0x1.00000000000000000008p+0, false, false,
+ 0x1.00000000000000000008p+0, false, false,
+ 0x1.00000000000000000008p+0, false, false,
+ 0x1.00000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000033087224502121106994856347682798514"
"14263248443603515625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000004p+0, false,
- 0x1.00000000000000000004p+0, false,
- 0x1.00000000000000000004p+0, false,
- 0x1.00000000000000000004p+0, false,
- true,
- 0x1.00000000000000000004p+0, false,
- 0x1.00000000000000000004p+0, false,
- 0x1.00000000000000000004p+0, false,
- 0x1.00000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000004p+0, false, false,
+ 0x1.00000000000000000004p+0, false, false,
+ 0x1.00000000000000000004p+0, false, false,
+ 0x1.00000000000000000004p+0, false, false,
+ true,
+ 0x1.00000000000000000004p+0, false, false,
+ 0x1.00000000000000000004p+0, false, false,
+ 0x1.00000000000000000004p+0, false, false,
+ 0x1.00000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000016543612251060553497428173841399257"
"071316242218017578125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000002p+0, false,
- 0x1.00000000000000000002p+0, false,
- 0x1.00000000000000000002p+0, false,
- 0x1.00000000000000000002p+0, false,
- true,
- 0x1.00000000000000000002p+0, false,
- 0x1.00000000000000000002p+0, false,
- 0x1.00000000000000000002p+0, false,
- 0x1.00000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000002p+0, false, false,
+ 0x1.00000000000000000002p+0, false, false,
+ 0x1.00000000000000000002p+0, false, false,
+ 0x1.00000000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000002p+0, false, false,
+ 0x1.00000000000000000002p+0, false, false,
+ 0x1.00000000000000000002p+0, false, false,
+ 0x1.00000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000008271806125530276748714086920699628"
"5356581211090087890625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000001p+0, false,
- 0x1.00000000000000000001p+0, false,
- 0x1.00000000000000000001p+0, false,
- 0x1.00000000000000000001p+0, false,
- true,
- 0x1.00000000000000000001p+0, false,
- 0x1.00000000000000000001p+0, false,
- 0x1.00000000000000000001p+0, false,
- 0x1.00000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000001p+0, false, false,
+ 0x1.00000000000000000001p+0, false, false,
+ 0x1.00000000000000000001p+0, false, false,
+ 0x1.00000000000000000001p+0, false, false,
+ true,
+ 0x1.00000000000000000001p+0, false, false,
+ 0x1.00000000000000000001p+0, false, false,
+ 0x1.00000000000000000001p+0, false, false,
+ 0x1.00000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000004135903062765138374357043460349814"
"26782906055450439453125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000008p+0, false,
- 0x1.000000000000000000008p+0, false,
- 0x1.000000000000000000008p+0, false,
- 0x1.000000000000000000008p+0, false,
- true,
- 0x1.000000000000000000008p+0, false,
- 0x1.000000000000000000008p+0, false,
- 0x1.000000000000000000008p+0, false,
- 0x1.000000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000008p+0, false, false,
+ 0x1.000000000000000000008p+0, false, false,
+ 0x1.000000000000000000008p+0, false, false,
+ 0x1.000000000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000000000008p+0, false, false,
+ 0x1.000000000000000000008p+0, false, false,
+ 0x1.000000000000000000008p+0, false, false,
+ 0x1.000000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000002067951531382569187178521730174907"
"133914530277252197265625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000004p+0, false,
- 0x1.000000000000000000004p+0, false,
- 0x1.000000000000000000004p+0, false,
- 0x1.000000000000000000004p+0, false,
- true,
- 0x1.000000000000000000004p+0, false,
- 0x1.000000000000000000004p+0, false,
- 0x1.000000000000000000004p+0, false,
- 0x1.000000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000004p+0, false, false,
+ 0x1.000000000000000000004p+0, false, false,
+ 0x1.000000000000000000004p+0, false, false,
+ 0x1.000000000000000000004p+0, false, false,
+ true,
+ 0x1.000000000000000000004p+0, false, false,
+ 0x1.000000000000000000004p+0, false, false,
+ 0x1.000000000000000000004p+0, false, false,
+ 0x1.000000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000001033975765691284593589260865087453"
"5669572651386260986328125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000002p+0, false,
- 0x1.000000000000000000002p+0, false,
- 0x1.000000000000000000002p+0, false,
- 0x1.000000000000000000002p+0, false,
- true,
- 0x1.000000000000000000002p+0, false,
- 0x1.000000000000000000002p+0, false,
- 0x1.000000000000000000002p+0, false,
- 0x1.000000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000002p+0, false, false,
+ 0x1.000000000000000000002p+0, false, false,
+ 0x1.000000000000000000002p+0, false, false,
+ 0x1.000000000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000002p+0, false, false,
+ 0x1.000000000000000000002p+0, false, false,
+ 0x1.000000000000000000002p+0, false, false,
+ 0x1.000000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000000516987882845642296794630432543726"
"78347863256931304931640625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000001p+0, false,
- 0x1.000000000000000000001p+0, false,
- 0x1.000000000000000000001p+0, false,
- 0x1.000000000000000000001p+0, false,
- true,
- 0x1.000000000000000000001p+0, false,
- 0x1.000000000000000000001p+0, false,
- 0x1.000000000000000000001p+0, false,
- 0x1.000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000001p+0, false, false,
+ 0x1.000000000000000000001p+0, false, false,
+ 0x1.000000000000000000001p+0, false, false,
+ 0x1.000000000000000000001p+0, false, false,
+ true,
+ 0x1.000000000000000000001p+0, false, false,
+ 0x1.000000000000000000001p+0, false, false,
+ 0x1.000000000000000000001p+0, false, false,
+ 0x1.000000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000000258493941422821148397315216271863"
"391739316284656524658203125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000000008p+0, false,
- 0x1.0000000000000000000008p+0, false,
- 0x1.0000000000000000000008p+0, false,
- 0x1.0000000000000000000008p+0, false,
- true,
- 0x1.0000000000000000000008p+0, false,
- 0x1.0000000000000000000008p+0, false,
- 0x1.0000000000000000000008p+0, false,
- 0x1.0000000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000000129246970711410574198657608135931"
"6958696581423282623291015625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000000004p+0, false,
- 0x1.0000000000000000000004p+0, false,
- 0x1.0000000000000000000004p+0, false,
- 0x1.0000000000000000000004p+0, false,
- true,
- 0x1.0000000000000000000004p+0, false,
- 0x1.0000000000000000000004p+0, false,
- 0x1.0000000000000000000004p+0, false,
- 0x1.0000000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000004p+0, false, false,
+ true,
+ 0x1.0000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000000064623485355705287099328804067965"
"84793482907116413116455078125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000000002p+0, false,
- 0x1.0000000000000000000002p+0, false,
- 0x1.0000000000000000000002p+0, false,
- 0x1.0000000000000000000002p+0, false,
- true,
- 0x1.0000000000000000000002p+0, false,
- 0x1.0000000000000000000002p+0, false,
- 0x1.0000000000000000000002p+0, false,
- 0x1.0000000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000000032311742677852643549664402033982"
"923967414535582065582275390625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000000001p+0, false,
- 0x1.0000000000000000000001p+0, false,
- 0x1.0000000000000000000001p+0, false,
- 0x1.0000000000000000000001p+0, false,
- true,
- 0x1.0000000000000000000001p+0, false,
- 0x1.0000000000000000000001p+0, false,
- 0x1.0000000000000000000001p+0, false,
- 0x1.0000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000001p+0, false, false,
+ true,
+ 0x1.0000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000000016155871338926321774832201016991"
"4619837072677910327911376953125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000000008p+0, false,
- 0x1.00000000000000000000008p+0, false,
- 0x1.00000000000000000000008p+0, false,
- 0x1.00000000000000000000008p+0, false,
- true,
- 0x1.00000000000000000000008p+0, false,
- 0x1.00000000000000000000008p+0, false,
- 0x1.00000000000000000000008p+0, false,
- 0x1.00000000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000008p+0, false, false,
+ true,
+ 0x1.00000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000000008077935669463160887416100508495"
"73099185363389551639556884765625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000000004p+0, false,
- 0x1.00000000000000000000004p+0, false,
- 0x1.00000000000000000000004p+0, false,
- 0x1.00000000000000000000004p+0, false,
- true,
- 0x1.00000000000000000000004p+0, false,
- 0x1.00000000000000000000004p+0, false,
- 0x1.00000000000000000000004p+0, false,
- 0x1.00000000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000004p+0, false, false,
+ true,
+ 0x1.00000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000000004038967834731580443708050254247"
"865495926816947758197784423828125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000000002p+0, false,
- 0x1.00000000000000000000002p+0, false,
- 0x1.00000000000000000000002p+0, false,
- 0x1.00000000000000000000002p+0, false,
- true,
- 0x1.00000000000000000000002p+0, false,
- 0x1.00000000000000000000002p+0, false,
- 0x1.00000000000000000000002p+0, false,
- 0x1.00000000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000000002019483917365790221854025127123"
"9327479634084738790988922119140625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000000001p+0, false,
- 0x1.00000000000000000000001p+0, false,
- 0x1.00000000000000000000001p+0, false,
- 0x1.00000000000000000000001p+0, false,
- true,
- 0x1.00000000000000000000001p+0, false,
- 0x1.00000000000000000000001p+0, false,
- 0x1.00000000000000000000001p+0, false,
- 0x1.00000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000001p+0, false, false,
+ true,
+ 0x1.00000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000000001009741958682895110927012563561"
"96637398170423693954944610595703125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000000008p+0, false,
- 0x1.000000000000000000000008p+0, false,
- 0x1.000000000000000000000008p+0, false,
- 0x1.000000000000000000000008p+0, false,
- true,
- 0x1.000000000000000000000008p+0, false,
- 0x1.000000000000000000000008p+0, false,
- 0x1.000000000000000000000008p+0, false,
- 0x1.000000000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000000000504870979341447555463506281780"
"983186990852118469774723052978515625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000000004p+0, false,
- 0x1.000000000000000000000004p+0, false,
- 0x1.000000000000000000000004p+0, false,
- 0x1.000000000000000000000004p+0, false,
- true,
- 0x1.000000000000000000000004p+0, false,
- 0x1.000000000000000000000004p+0, false,
- 0x1.000000000000000000000004p+0, false,
- 0x1.000000000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000004p+0, false, false,
+ true,
+ 0x1.000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000000000252435489670723777731753140890"
"4915934954260592348873615264892578125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000000002p+0, false,
- 0x1.000000000000000000000002p+0, false,
- 0x1.000000000000000000000002p+0, false,
- 0x1.000000000000000000000002p+0, false,
- true,
- 0x1.000000000000000000000002p+0, false,
- 0x1.000000000000000000000002p+0, false,
- 0x1.000000000000000000000002p+0, false,
- 0x1.000000000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000000000126217744835361888865876570445"
"24579674771302961744368076324462890625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000000001p+0, false,
- 0x1.000000000000000000000001p+0, false,
- 0x1.000000000000000000000001p+0, false,
- 0x1.000000000000000000000001p+0, false,
- true,
- 0x1.000000000000000000000001p+0, false,
- 0x1.000000000000000000000001p+0, false,
- 0x1.000000000000000000000001p+0, false,
- 0x1.000000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000001p+0, false, false,
+ true,
+ 0x1.000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000000000063108872417680944432938285222"
"622898373856514808721840381622314453125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000000000008p+0, false,
- 0x1.0000000000000000000000008p+0, false,
- 0x1.0000000000000000000000008p+0, false,
- 0x1.0000000000000000000000008p+0, false,
- true,
- 0x1.0000000000000000000000008p+0, false,
- 0x1.0000000000000000000000008p+0, false,
- 0x1.0000000000000000000000008p+0, false,
- 0x1.0000000000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000000000031554436208840472216469142611"
"3114491869282574043609201908111572265625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000000000004p+0, false,
- 0x1.0000000000000000000000004p+0, false,
- 0x1.0000000000000000000000004p+0, false,
- 0x1.0000000000000000000000004p+0, false,
- true,
- 0x1.0000000000000000000000004p+0, false,
- 0x1.0000000000000000000000004p+0, false,
- 0x1.0000000000000000000000004p+0, false,
- 0x1.0000000000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000004p+0, false, false,
+ true,
+ 0x1.0000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000000000015777218104420236108234571305"
"65572459346412870218046009540557861328125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000000000002p+0, false,
- 0x1.0000000000000000000000002p+0, false,
- 0x1.0000000000000000000000002p+0, false,
- 0x1.0000000000000000000000002p+0, false,
- true,
- 0x1.0000000000000000000000002p+0, false,
- 0x1.0000000000000000000000002p+0, false,
- 0x1.0000000000000000000000002p+0, false,
- 0x1.0000000000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000000000007888609052210118054117285652"
"827862296732064351090230047702789306640625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.0000000000000000000000001p+0, false,
- 0x1.0000000000000000000000001p+0, false,
- 0x1.0000000000000000000000001p+0, false,
- 0x1.0000000000000000000000001p+0, false,
- true,
- 0x1.0000000000000000000000001p+0, false,
- 0x1.0000000000000000000000001p+0, false,
- 0x1.0000000000000000000000001p+0, false,
- 0x1.0000000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.0000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000001p+0, false, false,
+ true,
+ 0x1.0000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000000000003944304526105059027058642826"
"4139311483660321755451150238513946533203125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000000000008p+0, false,
- 0x1.00000000000000000000000008p+0, false,
- 0x1.00000000000000000000000008p+0, false,
- 0x1.00000000000000000000000008p+0, false,
- true,
- 0x1.00000000000000000000000008p+0, false,
- 0x1.00000000000000000000000008p+0, false,
- 0x1.00000000000000000000000008p+0, false,
- 0x1.00000000000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000000008p+0, false, false,
+ true,
+ 0x1.00000000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000000008p+0, false, false,
+ 0x1.00000000000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000000000001972152263052529513529321413"
"20696557418301608777255751192569732666015625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000000000004p+0, false,
- 0x1.00000000000000000000000004p+0, false,
- 0x1.00000000000000000000000004p+0, false,
- 0x1.00000000000000000000000004p+0, false,
- true,
- 0x1.00000000000000000000000004p+0, false,
- 0x1.00000000000000000000000004p+0, false,
- 0x1.00000000000000000000000004p+0, false,
- 0x1.00000000000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000000004p+0, false, false,
+ true,
+ 0x1.00000000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000000004p+0, false, false,
+ 0x1.00000000000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000000000000986076131526264756764660706"
"603482787091508043886278755962848663330078125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000000000002p+0, false,
- 0x1.00000000000000000000000002p+0, false,
- 0x1.00000000000000000000000002p+0, false,
- 0x1.00000000000000000000000002p+0, false,
- true,
- 0x1.00000000000000000000000002p+0, false,
- 0x1.00000000000000000000000002p+0, false,
- 0x1.00000000000000000000000002p+0, false,
- 0x1.00000000000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000000002p+0, false, false,
+ 0x1.00000000000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000000000000493038065763132378382330353"
"3017413935457540219431393779814243316650390625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.00000000000000000000000001p+0, false,
- 0x1.00000000000000000000000001p+0, false,
- 0x1.00000000000000000000000001p+0, false,
- 0x1.00000000000000000000000001p+0, false,
- true,
- 0x1.00000000000000000000000001p+0, false,
- 0x1.00000000000000000000000001p+0, false,
- 0x1.00000000000000000000000001p+0, false,
- 0x1.00000000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.00000000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000000001p+0, false, false,
+ true,
+ 0x1.00000000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000000001p+0, false, false,
+ 0x1.00000000000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000000000000246519032881566189191165176"
"65087069677287701097156968899071216583251953125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- true,
- 0x1.000000000000000000000000008p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- true,
- 0x1.000000000000000000000000008p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- 0x1.000000000000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ true,
+ 0x1.000000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000000000000123259516440783094595582588"
"325435348386438505485784844495356082916259765625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- true,
- 0x1.000000000000000000000000004p+0, false,
- 0x1.000000000000000000000000004p+0, false,
- 0x1.000000000000000000000000004p+0, false,
- 0x1.000000000000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000000004p+0, false, false,
+ 0x1.000000000000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000000000000061629758220391547297791294"
"1627176741932192527428924222476780414581298828125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- true,
- 0x1.000000000000000000000000002p+0, false,
- 0x1.000000000000000000000000002p+0, false,
- 0x1.000000000000000000000000002p+0, false,
- 0x1.000000000000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000000002p+0, false, false,
+ 0x1.000000000000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000000000000030814879110195773648895647"
"08135883709660962637144621112383902072906494140625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- true,
- 0x1.000000000000000000000000001p+0, false,
- 0x1.000000000000000000000000001p+0, false,
- 0x1.000000000000000000000000001p+0, false,
- 0x1.000000000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ true,
+ 0x1.000000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000000001p+0, false, false,
+ 0x1.000000000000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000000000000015407439555097886824447823"
"540679418548304813185723105561919510364532470703125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- true,
- 0x1.0000000000000000000000000008p+0, false,
- 0x1.0000000000000000000000000008p+0, false,
- 0x1.0000000000000000000000000008p+0, false,
- 0x1.0000000000000000000000000008p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000000008p+0, false, false,
+ 0x1.0000000000000000000000000008p+0, false, false),
TEST ("1.0000000000000000000000000000000007703719777548943412223911"
"7703397092741524065928615527809597551822662353515625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- true,
- 0x1.0000000000000000000000000004p+0, false,
- 0x1.0000000000000000000000000004p+0, false,
- 0x1.0000000000000000000000000004p+0, false,
- 0x1.0000000000000000000000000004p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000000004p+0, false, false,
+ 0x1.0000000000000000000000000004p+0, false, false),
TEST ("1.0000000000000000000000000000000003851859888774471706111955"
"88516985463707620329643077639047987759113311767578125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- true,
- 0x1.0000000000000000000000000002p+0, false,
- 0x1.0000000000000000000000000002p+0, false,
- 0x1.0000000000000000000000000002p+0, false,
- 0x1.0000000000000000000000000002p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000000002p+0, false, false,
+ 0x1.0000000000000000000000000002p+0, false, false),
TEST ("1.0000000000000000000000000000000001925929944387235853055977"
"942584927318538101648215388195239938795566558837890625",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- true,
- 0x1.0000000000000000000000000001p+0, false,
- 0x1.0000000000000000000000000001p+0, false,
- 0x1.0000000000000000000000000001p+0, false,
- 0x1.0000000000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ true,
+ 0x1.0000000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000000001p+0, false, false,
+ 0x1.0000000000000000000000000001p+0, false, false),
TEST ("1.0000000000000000000000000000000000962964972193617926527988"
"9712924636592690508241076940976199693977832794189453125",
false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000001p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000002p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.000000000000000000000000008p+0, false,
- false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1p+0, false,
- 0x1.0000000000000000000000000001p+0, false),
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000001p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000002p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.000000000000000000000000008p+0, false, false,
+ false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1p+0, false, false,
+ 0x1.0000000000000000000000000001p+0, false, false),
+ TEST ("0x30000002222225p-1077",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x1.800000111111p-1024, false, true,
+ 0x1.8000001111114p-1024, false, true,
+ 0x1.800000111111p-1024, false, true,
+ 0x1.8000001111114p-1024, false, true,
+ true,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false,
+ true,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false,
+ false,
+ 0x1.800000111111p-1024, false, true,
+ 0x1.8000001111114p-1024, false, true,
+ 0x1.800000111111p-1024, false, true,
+ 0x1.8000001111114p-1024, false, true,
+ true,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false,
+ 0x1.80000011111128p-1024, false, false),
+ TEST ("0x0.7fffffffffffeap-1022",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x1.ffffffffffff8p-1024, false, true,
+ 0x1.ffffffffffffcp-1024, false, true,
+ 0x1.ffffffffffff8p-1024, false, true,
+ 0x1.ffffffffffffcp-1024, false, true,
+ true,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ true,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ false,
+ 0x1.ffffffffffff8p-1024, false, true,
+ 0x1.ffffffffffffcp-1024, false, true,
+ 0x1.ffffffffffff8p-1024, false, true,
+ 0x1.ffffffffffffcp-1024, false, true,
+ true,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false,
+ 0x1.ffffffffffffa8p-1024, false, false),
+ TEST ("0x0.7fffffffffffe9p-1022",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x1.ffffffffffff8p-1024, false, true,
+ 0x1.ffffffffffffcp-1024, false, true,
+ 0x1.ffffffffffff8p-1024, false, true,
+ 0x1.ffffffffffffcp-1024, false, true,
+ true,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ true,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ false,
+ 0x1.ffffffffffff8p-1024, false, true,
+ 0x1.ffffffffffffcp-1024, false, true,
+ 0x1.ffffffffffff8p-1024, false, true,
+ 0x1.ffffffffffffcp-1024, false, true,
+ true,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false,
+ 0x1.ffffffffffffa4p-1024, false, false),
+ TEST ("0x0.7ffffd4p-126",
+ false,
+ 0x1.fffffp-128, false, true,
+ 0x1.fffff8p-128, false, true,
+ 0x1.fffffp-128, false, true,
+ 0x1.fffff8p-128, false, true,
+ true,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ true,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ true,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ true,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ true,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false,
+ 0x1.fffff5p-128, false, false),
+ TEST ("0x0.7ffffffffffffffd4p-16382",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.fffffffffffffffp-16384, false, true,
+ 0x1.fffffffffffffff8p-16384, false, true,
+ 0x1.fffffffffffffffp-16384, false, true,
+ 0x1.fffffffffffffff8p-16384, false, true,
+ false,
+ 0x1.fffffffffffffff4p-16384, false, true,
+ 0x1.fffffffffffffff4p-16384, false, true,
+ 0x1.fffffffffffffff4p-16384, false, true,
+ 0x1.fffffffffffffff8p-16384, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x1.fffffffffffffff5p-16384, false, false,
+ 0x1.fffffffffffffff5p-16384, false, false,
+ 0x1.fffffffffffffff5p-16384, false, false,
+ 0x1.fffffffffffffff5p-16384, false, false),
+ TEST ("0x0.7ffffffffffffffd4p-16383",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0xf.ffffffffffffff8p-16388, false, true,
+ 0xf.ffffffffffffff8p-16388, false, true,
+ 0xf.ffffffffffffff8p-16388, false, true,
+ 0x1p-16384, false, true,
+ false,
+ 0xf.ffffffffffffff8p-16388, false, true,
+ 0xf.ffffffffffffffcp-16388, false, true,
+ 0xf.ffffffffffffff8p-16388, false, true,
+ 0xf.ffffffffffffffcp-16388, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0xf.ffffffffffffffa8p-16388, false, false,
+ 0xf.ffffffffffffffa8p-16388, false, false,
+ 0xf.ffffffffffffffa8p-16388, false, false,
+ 0xf.ffffffffffffffa8p-16388, false, false),
+ TEST ("0x0.7ffffffffffffffffffffffffffeap-16382",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.fffffffffffffff8p-16384, false, true,
+ 0x2p-16384, false, true,
+ 0x1.fffffffffffffff8p-16384, false, true,
+ 0x2p-16384, false, true,
+ false,
+ 0x1.fffffffffffffffcp-16384, false, true,
+ 0x2p-16384, false, true,
+ 0x1.fffffffffffffffcp-16384, false, true,
+ 0x2p-16384, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.fffffffffffffffffffffffffff8p-16384, false, true,
+ 0x1.fffffffffffffffffffffffffffcp-16384, false, true,
+ 0x1.fffffffffffffffffffffffffff8p-16384, false, true,
+ 0x1.fffffffffffffffffffffffffffcp-16384, false, true),
+ TEST ("0x0.7000004p-126",
+ false,
+ 0x1.cp-128, false, true,
+ 0x1.cp-128, false, true,
+ 0x1.cp-128, false, true,
+ 0x1.c00008p-128, false, true,
+ true,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ true,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ true,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ true,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ true,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false,
+ 0x1.c00001p-128, false, false),
+ TEST ("0x0.70000000000002p-1022",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x1.cp-1024, false, true,
+ 0x1.cp-1024, false, true,
+ 0x1.cp-1024, false, true,
+ 0x1.c000000000004p-1024, false, true,
+ true,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false,
+ true,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false,
+ false,
+ 0x1.cp-1024, false, true,
+ 0x1.cp-1024, false, true,
+ 0x1.cp-1024, false, true,
+ 0x1.c000000000004p-1024, false, true,
+ true,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false,
+ 0x1.c0000000000008p-1024, false, false),
+ TEST ("0x0.70000000000000004p-16382",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.c000000000000008p-16384, false, true,
+ false,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.c000000000000004p-16384, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0x1.c000000000000001p-16384, false, false,
+ 0x1.c000000000000001p-16384, false, false,
+ 0x1.c000000000000001p-16384, false, false,
+ 0x1.c000000000000001p-16384, false, false),
+ TEST ("0x0.70000000000000004p-16383",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0xep-16388, false, true,
+ 0xep-16388, false, true,
+ 0xep-16388, false, true,
+ 0xe.000000000000008p-16388, false, true,
+ false,
+ 0xep-16388, false, true,
+ 0xep-16388, false, true,
+ 0xep-16388, false, true,
+ 0xe.000000000000004p-16388, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ true,
+ 0xe.0000000000000008p-16388, false, false,
+ 0xe.0000000000000008p-16388, false, false,
+ 0xe.0000000000000008p-16388, false, false,
+ 0xe.0000000000000008p-16388, false, false),
+ TEST ("0x0.70000000000000000000000000002p-16382",
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x8p-152, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.c000000000000008p-16384, false, true,
+ false,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.c000000000000004p-16384, false, true,
+ false,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x0p+0, false, true,
+ 0x4p-1076, false, true,
+ false,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.cp-16384, false, true,
+ 0x1.c000000000000000000000000004p-16384, false, true),
};
diff --git a/stdlib/tst-strtod-round-skeleton.c b/stdlib/tst-strtod-round-skeleton.c
index 6fba4b5..be081ba 100644
--- a/stdlib/tst-strtod-round-skeleton.c
+++ b/stdlib/tst-strtod-round-skeleton.c
@@ -21,6 +21,7 @@
declared in the headers. */
#define _LIBC_TEST 1
#define __STDC_WANT_IEC_60559_TYPES_EXT__
+#include <errno.h>
#include <fenv.h>
#include <float.h>
#include <math.h>
@@ -29,6 +30,7 @@
#include <stdlib.h>
#include <string.h>
#include <math-tests.h>
+#include <tininess.h>
#include "tst-strtod.h"
@@ -138,16 +140,26 @@
gen-tst-strtod-round utility to select the appropriately
rounded long double value for a given format. */
#define TEST(s, \
- fx, fd, fdo, fn, fno, fz, fzo, fu, fuo, \
- dx, dd, ddo, dn, dno, dz, dzo, du, duo, \
- ld64ix, ld64id, ld64ido, ld64in, ld64ino, \
- ld64iz, ld64izo, ld64iu, ld64iuo, \
- ld64mx, ld64md, ld64mdo, ld64mn, ld64mno, \
- ld64mz, ld64mzo, ld64mu, ld64muo, \
- ld106x, ld106d, ld106do, ld106n, ld106no, \
- ld106z, ld106zo, ld106u, ld106uo, \
- ld113x, ld113d, ld113do, ld113n, ld113no, \
- ld113z, ld113zo, ld113u, ld113uo) \
+ fx, fd, fdo, fdu, fn, fno, fnu, \
+ fz, fzo, fzu, fu, fuo, fuu, \
+ dx, dd, ddo, ddu, dn, dno, dnu, \
+ dz, dzo, dzu, du, duo, duu, \
+ ld64ix, ld64id, ld64ido, ld64idu, \
+ ld64in, ld64ino, ld64inu, \
+ ld64iz, ld64izo, ld64izu, \
+ ld64iu, ld64iuo, ld64iuu, \
+ ld64mx, ld64md, ld64mdo, ld64mdu, \
+ ld64mn, ld64mno, ld64mnu, \
+ ld64mz, ld64mzo, ld64mzu, \
+ ld64mu, ld64muo, ld64muu, \
+ ld106x, ld106d, ld106do, ld106du, \
+ ld106n, ld106no, ld106nu, \
+ ld106z, ld106zo, ld106zu, \
+ ld106u, ld106uo, ld106uu, \
+ ld113x, ld113d, ld113do, ld113du, \
+ ld113n, ld113no, ld113nu, \
+ ld113z, ld113zo, ld113zu, \
+ ld113u, ld113uo, ld113uu) \
{ \
L_ (s), \
{ XNTRY (fx, dx, ld64ix, ld64mx, ld106x, ld113x) }, \
@@ -162,6 +174,12 @@
{ XNTRY (fdo, ddo, ld64ido, ld64mdo, ld106do, ld113do) }, \
{ XNTRY (fzo, dzo, ld64izo, ld64mzo, ld106zo, ld113zo) }, \
{ XNTRY (fuo, duo, ld64iuo, ld64muo, ld106uo, ld113uo) } \
+ }, \
+ { \
+ { XNTRY (fnu, dnu, ld64inu, ld64mnu, ld106nu, ld113nu) }, \
+ { XNTRY (fdu, ddu, ld64idu, ld64mdu, ld106du, ld113du) }, \
+ { XNTRY (fzu, dzu, ld64izu, ld64mzu, ld106zu, ld113zu) }, \
+ { XNTRY (fuu, duu, ld64iuu, ld64muu, ld106uu, ld113uu) } \
} \
}
@@ -180,11 +198,17 @@ struct test_overflow
STRUCT_FOREACH_FLOAT_BOOL
};
+struct test_underflow
+ {
+ STRUCT_FOREACH_FLOAT_BOOL
+ };
+
struct test {
const CHAR *s;
struct test_exactness exact;
struct test_results r[4];
struct test_overflow o[4];
+ struct test_underflow u[4];
};
/* Include the generated test data. */
@@ -202,10 +226,16 @@ struct test {
# define FE_OVERFLOW 0
#endif
+#ifndef FE_UNDERFLOW
+# define FE_UNDERFLOW 0
+#endif
+
#define GEN_ONE_TEST(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \
{ \
feclearexcept (FE_ALL_EXCEPT); \
+ errno = 12345; \
FTYPE f = STRTO (FSUF) (s, NULL); \
+ int new_errno = errno; \
if (f != expected->FSUF \
|| (copysign ## CSUF) (1.0 ## LSUF, f) \
!= (copysign ## CSUF) (1.0 ## LSUF, expected->FSUF)) \
@@ -254,6 +284,48 @@ struct test {
printf ("ignoring this exception error\n"); \
} \
} \
+ if (overflow->FSUF && new_errno != ERANGE) \
+ { \
+ printf (FNPFXS "to" #FSUF \
+ " (" STRM ") left errno == %d," \
+ " not %d (ERANGE)\n", \
+ s, new_errno, ERANGE); \
+ result = 1; \
+ } \
+ if (FE_UNDERFLOW != 0) \
+ { \
+ bool underflow_raised \
+ = fetestexcept (FE_UNDERFLOW) != 0; \
+ if (underflow_raised != underflow->FSUF) \
+ { \
+ printf (FNPFXS "to" #FSUF \
+ " (" STRM ") underflow %d " \
+ "not %d\n", s, underflow_raised, \
+ underflow->FSUF); \
+ if (EXCEPTION_TESTS (FTYPE)) \
+ result = 1; \
+ else \
+ printf ("ignoring this exception error\n"); \
+ } \
+ } \
+ if (underflow->FSUF && new_errno != ERANGE) \
+ { \
+ printf (FNPFXS "to" #FSUF \
+ " (" STRM ") left errno == %d," \
+ " not %d (ERANGE)\n", \
+ s, new_errno, ERANGE); \
+ result = 1; \
+ } \
+ if (!overflow->FSUF \
+ && !underflow->FSUF \
+ && new_errno != 12345) \
+ { \
+ printf (FNPFXS "to" #FSUF \
+ " (" STRM ") set errno == %d," \
+ " should be unchanged\n", \
+ s, new_errno); \
+ result = 1; \
+ } \
} \
}
@@ -261,6 +333,7 @@ static int
test_in_one_mode (const CHAR *s, const struct test_results *expected,
const struct test_exactness *exact,
const struct test_overflow *overflow,
+ const struct test_underflow *underflow,
const char *mode_name, int rnd_mode)
{
int result = 0;
@@ -296,6 +369,7 @@ do_test (void)
{
result |= test_in_one_mode (tests[i].s, &tests[i].r[modes[0].rnd_i],
&tests[i].exact, &tests[i].o[modes[0].rnd_i],
+ &tests[i].u[modes[0].rnd_i],
modes[0].mode_name, modes[0].rnd_mode);
for (const struct fetestmodes *m = &modes[1]; m->mode_name != NULL; m++)
{
@@ -303,7 +377,9 @@ do_test (void)
{
result |= test_in_one_mode (tests[i].s, &tests[i].r[m->rnd_i],
&tests[i].exact,
- &tests[i].o[m->rnd_i], m->mode_name,
+ &tests[i].o[m->rnd_i],
+ &tests[i].u[m->rnd_i],
+ m->mode_name,
m->rnd_mode);
fesetround (save_round_mode);
}
diff --git a/stdlib/tst-strtod1i.c b/stdlib/tst-strtod1i.c
index 9d6bb76..44ae026 100644
--- a/stdlib/tst-strtod1i.c
+++ b/stdlib/tst-strtod1i.c
@@ -25,60 +25,91 @@
#include <string.h>
#include <math.h>
-/* Perform a few tests in a locale with thousands separators. */
-static int
-do_test (void)
-{
- static const struct
- {
- const char *loc;
- const char *str;
- double exp;
- ptrdiff_t nread;
- } tests[] =
- {
- { "de_DE.UTF-8", "1,5", 1.5, 3 },
- { "de_DE.UTF-8", "1.5", 1.0, 1 },
- { "de_DE.UTF-8", "1.500", 1500.0, 5 },
- { "de_DE.UTF-8", "36.893.488.147.419.103.232", 0x1.0p65, 26 }
- };
-#define ntests (sizeof (tests) / sizeof (tests[0]))
- size_t n;
- int result = 0;
-
- puts ("\nLocale tests");
+#include "tst-strtod.h"
- for (n = 0; n < ntests; ++n)
- {
- double d;
- char *endp;
+/* This tests internal interfaces, which are only defined for types
+ with distinct ABIs, so disable testing for types without distinct
+ ABIs. */
+#undef IF_FLOAT32
+#define IF_FLOAT32(x)
+#undef IF_FLOAT64
+#define IF_FLOAT64(x)
+#undef IF_FLOAT32X
+#define IF_FLOAT32X(x)
+#undef IF_FLOAT64X
+#define IF_FLOAT64X(x)
+#if !__HAVE_DISTINCT_FLOAT128
+# undef IF_FLOAT128
+# define IF_FLOAT128(x)
+#endif
- if (setlocale (LC_ALL, tests[n].loc) == NULL)
- {
- printf ("cannot set locale %s\n", tests[n].loc);
- result = 1;
- continue;
- }
+#define ntests (sizeof (tests) / sizeof (tests[0]))
- d = __strtod_internal (tests[n].str, &endp, 1);
- if (d != tests[n].exp)
- {
- printf ("strtod(\"%s\") returns %g and not %g\n",
- tests[n].str, d, tests[n].exp);
- result = 1;
- }
- else if (endp - tests[n].str != tests[n].nread)
- {
- printf ("strtod(\"%s\") read %td bytes and not %td\n",
- tests[n].str, endp - tests[n].str, tests[n].nread);
- result = 1;
- }
- }
+/* Perform a few tests in a locale with thousands separators. */
+#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \
+static int \
+test_strto ## FSUF (void) \
+{ \
+ static const struct \
+ { \
+ const char *loc; \
+ const char *str; \
+ FTYPE exp; \
+ ptrdiff_t nread; \
+ } tests[] = \
+ { \
+ { "de_DE.UTF-8", "1,5", 1.5 ## LSUF, 3 }, \
+ { "de_DE.UTF-8", "1.5", 1.0 ## LSUF, 1 }, \
+ { "de_DE.UTF-8", "1.500", 1500.0 ## LSUF, 5 }, \
+ { "de_DE.UTF-8", "36.893.488.147.419.103.232", 0x1.0p65 ## LSUF, 26 } \
+ }; \
+ size_t n; \
+ int result = 0; \
+ \
+ puts ("\nLocale tests"); \
+ \
+ for (n = 0; n < ntests; ++n) \
+ { \
+ FTYPE d; \
+ char *endp; \
+ \
+ if (setlocale (LC_ALL, tests[n].loc) == NULL) \
+ { \
+ printf ("cannot set locale %s\n", tests[n].loc); \
+ result = 1; \
+ continue; \
+ } \
+ \
+ d = __strto ## FSUF ## _internal (tests[n].str, &endp, 1); \
+ if (d != tests[n].exp) \
+ { \
+ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \
+ FTOSTR (buf1, sizeof (buf1), "%g", d); \
+ FTOSTR (buf2, sizeof (buf2), "%g", tests[n].exp); \
+ printf ("strto" # FSUF "(\"%s\") returns %s and not %s\n", \
+ tests[n].str, buf1, buf2); \
+ result = 1; \
+ } \
+ else if (endp - tests[n].str != tests[n].nread) \
+ { \
+ printf ("strto" # FSUF "(\"%s\") read %td bytes and not %td\n", \
+ tests[n].str, endp - tests[n].str, tests[n].nread); \
+ result = 1; \
+ } \
+ } \
+ \
+ if (result == 0) \
+ puts ("all OK"); \
+ \
+ return result ? EXIT_FAILURE : EXIT_SUCCESS; \
+}
- if (result == 0)
- puts ("all OK");
+GEN_TEST_STRTOD_FOREACH (TEST_STRTOD)
- return result ? EXIT_FAILURE : EXIT_SUCCESS;
+static int
+do_test (void)
+{
+ return STRTOD_TEST_FOREACH (test_strto);
}
#include <support/test-driver.c>
diff --git a/stdlib/tst-strtod2.c b/stdlib/tst-strtod2.c
index a7df82e..d00bc13 100644
--- a/stdlib/tst-strtod2.c
+++ b/stdlib/tst-strtod2.c
@@ -1,43 +1,112 @@
+#include <math.h>
#include <stdio.h>
#include <stdlib.h>
-struct test
-{
- const char *str;
- double result;
- size_t offset;
-} tests[] =
-{
- { "0xy", 0.0, 1 },
- { "0x.y", 0.0, 1 },
- { "0x0.y", 0.0, 4 },
- { "0x.0y", 0.0, 4 },
- { ".y", 0.0, 0 },
- { "0.y", 0.0, 2 },
- { ".0y", 0.0, 2 }
-};
+#include "tst-strtod.h"
+
+#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \
+struct test_strto ## FSUF \
+{ \
+ const char *str; \
+ FTYPE result; \
+ size_t offset; \
+} tests_strto ## FSUF[] = \
+{ \
+ { "0xy", 0.0 ## LSUF, 1 }, \
+ { "0x.y", 0.0 ## LSUF, 1 }, \
+ { "0x0.y", 0.0 ## LSUF, 4 }, \
+ { "0x.0y", 0.0 ## LSUF, 4 }, \
+ { ".y", 0.0 ## LSUF, 0 }, \
+ { "0.y", 0.0 ## LSUF, 2 }, \
+ { ".0y", 0.0 ## LSUF, 2 }, \
+ { "1.0e", 1.0 ## LSUF, 3 }, \
+ { "1.0e+", 1.0 ## LSUF, 3 }, \
+ { "1.0e-", 1.0 ## LSUF, 3 }, \
+ { "1.0ex", 1.0 ## LSUF, 3 }, \
+ { "1.0e+x", 1.0 ## LSUF, 3 }, \
+ { "1.0e-x", 1.0 ## LSUF, 3 }, \
+ { "0x1p", 1.0 ## LSUF, 3 }, \
+ { "0x1p+", 1.0 ## LSUF, 3 }, \
+ { "0x1p-", 1.0 ## LSUF, 3 }, \
+ { "0x1px", 1.0 ## LSUF, 3 }, \
+ { "0x1p+x", 1.0 ## LSUF, 3 }, \
+ { "0x1p-x", 1.0 ## LSUF, 3 }, \
+ { "", 0.0 ## LSUF, 0 }, \
+ { ".", 0.0 ## LSUF, 0 }, \
+ { "-", 0.0 ## LSUF, 0 }, \
+ { "-.", 0.0 ## LSUF, 0 }, \
+ { ".e", 0.0 ## LSUF, 0 }, \
+ { "-.e", 0.0 ## LSUF, 0 }, \
+ { " \t", 0.0 ## LSUF, 0 }, \
+ { " \t.", 0.0 ## LSUF, 0 }, \
+ { " \t-", 0.0 ## LSUF, 0 }, \
+ { " \t-.", 0.0 ## LSUF, 0 }, \
+ { " \t.e", 0.0 ## LSUF, 0 }, \
+ { " \t-.e", 0.0 ## LSUF, 0 }, \
+ { " \t\f\r\n\v1", 1.0 ## LSUF, 7 }, \
+ { " \t\f\r\n\v-1.5e2", -150.0 ## LSUF, 12 }, \
+ { "INFx", INFINITY, 3 }, \
+ { "infx", INFINITY, 3 }, \
+ { "INFINITx", INFINITY, 3 }, \
+ { "infinitx", INFINITY, 3 }, \
+ { "INFINITYY", INFINITY, 8 }, \
+ { "infinityy", INFINITY, 8 }, \
+ { "NANx", NAN, 3 }, \
+ { "nanx", NAN, 3 }, \
+ { "NAN(", NAN, 3 }, \
+ { "nan(", NAN, 3 }, \
+ { "NAN(x", NAN, 3 }, \
+ { "nan(x", NAN, 3 }, \
+ { "NAN(x)y", NAN, 6 }, \
+ { "nan(x)y", NAN, 6 }, \
+ { "NAN(*)y", NAN, 3 }, \
+ { "nan(*)y", NAN, 3 } \
+}; \
+ \
+static int \
+compare_strto ## FSUF (FTYPE x, FTYPE y) \
+{ \
+ if (isnan (x) && isnan (y)) \
+ return 1; \
+ return x == y; \
+} \
+ \
+static int \
+test_strto ## FSUF (void) \
+{ \
+ int status = 0; \
+ for (size_t i = 0; \
+ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \
+ ++i) \
+ { \
+ char *ep; \
+ FTYPE r = strto ## FSUF (tests_strto ## FSUF[i].str, &ep); \
+ if (!compare_strto ## FSUF (r, tests_strto ## FSUF[i].result)) \
+ { \
+ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \
+ FTOSTR (buf1, sizeof (buf1), "%g", r); \
+ FTOSTR (buf2, sizeof (buf2), "%g", tests_strto ## FSUF[i].result); \
+ printf ("test %zu r = %s, expect %s\n", i, buf1, buf2); \
+ status = 1; \
+ } \
+ if (ep != tests_strto ## FSUF[i].str + tests_strto ## FSUF[i].offset) \
+ { \
+ printf ("test %zu strto" #FSUF \
+ " parsed %tu characters, expected %zu\n", \
+ i, ep - tests_strto ## FSUF[i].str, \
+ tests_strto ## FSUF[i].offset); \
+ status = 1; \
+ } \
+ } \
+ return status; \
+}
+
+GEN_TEST_STRTOD_FOREACH (TEST_STRTOD)
static int
do_test (void)
{
- int status = 0;
- for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i)
- {
- char *ep;
- double r = strtod (tests[i].str, &ep);
- if (r != tests[i].result)
- {
- printf ("test %zu r = %g, expect %g\n", i, r, tests[i].result);
- status = 1;
- }
- if (ep != tests[i].str + tests[i].offset)
- {
- printf ("test %zu strtod parsed %tu characters, expected %zu\n",
- i, ep - tests[i].str, tests[i].offset);
- status = 1;
- }
- }
- return status;
+ return STRTOD_TEST_FOREACH (test_strto);
}
#define TEST_FUNCTION do_test ()
diff --git a/stdlib/tst-strtod3.c b/stdlib/tst-strtod3.c
index 23abec1..0d662d8 100644
--- a/stdlib/tst-strtod3.c
+++ b/stdlib/tst-strtod3.c
@@ -3,19 +3,73 @@
#include <stdlib.h>
#include <string.h>
-static const struct
-{
- const char *in;
- const char *out;
- double expected;
-} tests[] =
- {
- { "000,,,e1", ",,,e1", 0.0 },
- { "000e1", "", 0.0 },
- { "000,1e1", ",1e1", 0.0 }
- };
-#define NTESTS (sizeof (tests) / sizeof (tests[0]))
+#include "tst-strtod.h"
+
+/* This tests internal interfaces, which are only defined for types
+ with distinct ABIs, so disable testing for types without distinct
+ ABIs. */
+#undef IF_FLOAT32
+#define IF_FLOAT32(x)
+#undef IF_FLOAT64
+#define IF_FLOAT64(x)
+#undef IF_FLOAT32X
+#define IF_FLOAT32X(x)
+#undef IF_FLOAT64X
+#define IF_FLOAT64X(x)
+#if !__HAVE_DISTINCT_FLOAT128
+# undef IF_FLOAT128
+# define IF_FLOAT128(x)
+#endif
+#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \
+static const struct \
+{ \
+ const char *in; \
+ const char *out; \
+ FTYPE expected; \
+} tests_strto ## FSUF[] = \
+ { \
+ { "000,,,e1", ",,,e1", 0.0 ## LSUF }, \
+ { "000e1", "", 0.0 ## LSUF }, \
+ { "000,1e1", ",1e1", 0.0 ## LSUF } \
+ }; \
+ \
+static int \
+test_strto ## FSUF (void) \
+{ \
+ int status = 0; \
+ \
+ for (int i = 0; \
+ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \
+ ++i) \
+ { \
+ char *ep; \
+ FTYPE r = __strto ## FSUF ## _internal (tests_strto ## FSUF[i].in, \
+ &ep, 1); \
+ \
+ if (strcmp (ep, tests_strto ## FSUF[i].out) != 0) \
+ { \
+ printf ("%d: got rest string \"%s\", expected \"%s\"\n", \
+ i, ep, tests_strto ## FSUF[i].out); \
+ status = 1; \
+ } \
+ \
+ if (r != tests_strto ## FSUF[i].expected) \
+ { \
+ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \
+ FTOSTR (buf1, sizeof (buf1), "%g", r); \
+ FTOSTR (buf2, sizeof (buf2), "%g", \
+ tests_strto ## FSUF[i].expected); \
+ printf ("%d: got wrong results %s, expected %s\n", \
+ i, buf1, buf2); \
+ status = 1; \
+ } \
+ } \
+ \
+ return status; \
+}
+
+GEN_TEST_STRTOD_FOREACH (TEST_STRTOD)
static int
do_test (void)
@@ -26,29 +80,7 @@ do_test (void)
return 1;
}
- int status = 0;
-
- for (int i = 0; i < NTESTS; ++i)
- {
- char *ep;
- double r = __strtod_internal (tests[i].in, &ep, 1);
-
- if (strcmp (ep, tests[i].out) != 0)
- {
- printf ("%d: got rest string \"%s\", expected \"%s\"\n",
- i, ep, tests[i].out);
- status = 1;
- }
-
- if (r != tests[i].expected)
- {
- printf ("%d: got wrong results %g, expected %g\n",
- i, r, tests[i].expected);
- status = 1;
- }
- }
-
- return status;
+ return STRTOD_TEST_FOREACH (test_strto);
}
#define TEST_FUNCTION do_test ()
diff --git a/stdlib/tst-strtod4.c b/stdlib/tst-strtod4.c
index 6cc4e84..dfd3f05 100644
--- a/stdlib/tst-strtod4.c
+++ b/stdlib/tst-strtod4.c
@@ -3,22 +3,76 @@
#include <stdlib.h>
#include <string.h>
+#include "tst-strtod.h"
+
+/* This tests internal interfaces, which are only defined for types
+ with distinct ABIs, so disable testing for types without distinct
+ ABIs. */
+#undef IF_FLOAT32
+#define IF_FLOAT32(x)
+#undef IF_FLOAT64
+#define IF_FLOAT64(x)
+#undef IF_FLOAT32X
+#define IF_FLOAT32X(x)
+#undef IF_FLOAT64X
+#define IF_FLOAT64X(x)
+#if !__HAVE_DISTINCT_FLOAT128
+# undef IF_FLOAT128
+# define IF_FLOAT128(x)
+#endif
+
#define NNBSP "\xe2\x80\xaf"
-static const struct
-{
- const char *in;
- const char *out;
- double expected;
-} tests[] =
- {
- { "000"NNBSP"000"NNBSP"000", "", 0.0 },
- { "1"NNBSP"000"NNBSP"000,5x", "x", 1000000.5 },
- /* Bug 30964 */
- { "10"NNBSP NNBSP"200", NNBSP NNBSP"200", 10.0 }
- };
-#define NTESTS (sizeof (tests) / sizeof (tests[0]))
+#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \
+static const struct \
+{ \
+ const char *in; \
+ const char *out; \
+ FTYPE expected; \
+} tests_strto ## FSUF[] = \
+ { \
+ { "000"NNBSP"000"NNBSP"000", "", 0.0 ## LSUF }, \
+ { "1"NNBSP"000"NNBSP"000,5x", "x", 1000000.5 ## LSUF }, \
+ /* Bug 30964 */ \
+ { "10"NNBSP NNBSP"200", NNBSP NNBSP"200", 10.0 ## LSUF } \
+ }; \
+ \
+static int \
+test_strto ## FSUF (void) \
+{ \
+ int status = 0; \
+ \
+ for (int i = 0; \
+ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \
+ ++i) \
+ { \
+ char *ep; \
+ FTYPE r = __strto ## FSUF ## _internal (tests_strto ## FSUF[i].in, \
+ &ep, 1); \
+ \
+ if (strcmp (ep, tests_strto ## FSUF[i].out) != 0) \
+ { \
+ printf ("%d: got rest string \"%s\", expected \"%s\"\n", \
+ i, ep, tests_strto ## FSUF[i].out); \
+ status = 1; \
+ } \
+ \
+ if (r != tests_strto ## FSUF[i].expected) \
+ { \
+ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \
+ FTOSTR (buf1, sizeof (buf1), "%g", r); \
+ FTOSTR (buf2, sizeof (buf2), "%g", \
+ tests_strto ## FSUF[i].expected); \
+ printf ("%d: got wrong results %s, expected %s\n", \
+ i, buf1, buf2); \
+ status = 1; \
+ } \
+ } \
+ \
+ return status; \
+}
+GEN_TEST_STRTOD_FOREACH (TEST_STRTOD)
static int
do_test (void)
@@ -29,29 +83,7 @@ do_test (void)
return 1;
}
- int status = 0;
-
- for (int i = 0; i < NTESTS; ++i)
- {
- char *ep;
- double r = __strtod_internal (tests[i].in, &ep, 1);
-
- if (strcmp (ep, tests[i].out) != 0)
- {
- printf ("%d: got rest string \"%s\", expected \"%s\"\n",
- i, ep, tests[i].out);
- status = 1;
- }
-
- if (r != tests[i].expected)
- {
- printf ("%d: got wrong results %g, expected %g\n",
- i, r, tests[i].expected);
- status = 1;
- }
- }
-
- return status;
+ return STRTOD_TEST_FOREACH (test_strto);
}
#define TEST_FUNCTION do_test ()
diff --git a/stdlib/tst-strtod5.c b/stdlib/tst-strtod5.c
index 29153ec..7eb9b3a 100644
--- a/stdlib/tst-strtod5.c
+++ b/stdlib/tst-strtod5.c
@@ -22,35 +22,75 @@
#include <string.h>
#include <math.h>
+#include "tst-strtod.h"
+
#define NBSP "\xc2\xa0"
-static const struct
-{
- const char *in;
- double expected;
-} tests[] =
- {
- { "0", 0.0 },
- { "000", 0.0 },
- { "-0", -0.0 },
- { "-000", -0.0 },
- { "0,", 0.0 },
- { "-0,", -0.0 },
- { "0,0", 0.0 },
- { "-0,0", -0.0 },
- { "0e-10", 0.0 },
- { "-0e-10", -0.0 },
- { "0,e-10", 0.0 },
- { "-0,e-10", -0.0 },
- { "0,0e-10", 0.0 },
- { "-0,0e-10", -0.0 },
- { "0e-1000000", 0.0 },
- { "-0e-1000000", -0.0 },
- { "0,0e-1000000", 0.0 },
- { "-0,0e-1000000", -0.0 },
- };
-#define NTESTS (sizeof (tests) / sizeof (tests[0]))
+#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \
+static const struct \
+{ \
+ const char *in; \
+ FTYPE expected; \
+} tests_strto ## FSUF[] = \
+ { \
+ { "0", 0.0 ## LSUF }, \
+ { "000", 0.0 ## LSUF }, \
+ { "-0", -0.0 ## LSUF }, \
+ { "-000", -0.0 ## LSUF }, \
+ { "0,", 0.0 ## LSUF }, \
+ { "-0,", -0.0 ## LSUF }, \
+ { "0,0", 0.0 ## LSUF }, \
+ { "-0,0", -0.0 ## LSUF }, \
+ { "0e-10", 0.0 ## LSUF }, \
+ { "-0e-10", -0.0 ## LSUF }, \
+ { "0,e-10", 0.0 ## LSUF }, \
+ { "-0,e-10", -0.0 ## LSUF }, \
+ { "0,0e-10", 0.0 ## LSUF }, \
+ { "-0,0e-10", -0.0 ## LSUF }, \
+ { "0e-1000000", 0.0 ## LSUF }, \
+ { "-0e-1000000", -0.0 ## LSUF }, \
+ { "0,0e-1000000", 0.0 ## LSUF }, \
+ { "-0,0e-1000000", -0.0 ## LSUF }, \
+ }; \
+ \
+ \
+static int \
+test_strto ## FSUF (void) \
+{ \
+ int status = 0; \
+ \
+ for (int i = 0; \
+ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \
+ ++i) \
+ { \
+ char *ep; \
+ FTYPE r = strto ## FSUF (tests_strto ## FSUF[i].in, &ep); \
+ \
+ if (*ep != '\0') \
+ { \
+ printf ("%d: got rest string \"%s\", expected \"\"\n", i, ep); \
+ status = 1; \
+ } \
+ \
+ if (r != tests_strto ## FSUF[i].expected \
+ || (copysign ## CSUF (10.0 ## LSUF, r) \
+ != copysign ## CSUF (10.0 ## LSUF, \
+ tests_strto ## FSUF[i].expected))) \
+ { \
+ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \
+ FTOSTR (buf1, sizeof (buf1), "%g", r); \
+ FTOSTR (buf2, sizeof (buf2), "%g", \
+ tests_strto ## FSUF[i].expected); \
+ printf ("%d: got wrong results %s, expected %s\n", \
+ i, buf1, buf2); \
+ status = 1; \
+ } \
+ } \
+ \
+ return status; \
+}
+GEN_TEST_STRTOD_FOREACH (TEST_STRTOD)
static int
do_test (void)
@@ -61,29 +101,7 @@ do_test (void)
return 1;
}
- int status = 0;
-
- for (int i = 0; i < NTESTS; ++i)
- {
- char *ep;
- double r = strtod (tests[i].in, &ep);
-
- if (*ep != '\0')
- {
- printf ("%d: got rest string \"%s\", expected \"\"\n", i, ep);
- status = 1;
- }
-
- if (r != tests[i].expected
- || copysign (10.0, r) != copysign (10.0, tests[i].expected))
- {
- printf ("%d: got wrong results %g, expected %g\n",
- i, r, tests[i].expected);
- status = 1;
- }
- }
-
- return status;
+ return STRTOD_TEST_FOREACH (test_strto);
}
#include <support/test-driver.c>
diff --git a/stdlib/tst-strtod5i.c b/stdlib/tst-strtod5i.c
index ee54e34..136aede 100644
--- a/stdlib/tst-strtod5i.c
+++ b/stdlib/tst-strtod5i.c
@@ -16,52 +16,112 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+/* Defining _LIBC_TEST ensures long double math functions are
+ declared in the headers. */
+#define _LIBC_TEST 1
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
+#include "tst-strtod.h"
+
+/* This tests internal interfaces, which are only defined for types
+ with distinct ABIs, so disable testing for types without distinct
+ ABIs. */
+#undef IF_FLOAT32
+#define IF_FLOAT32(x)
+#undef IF_FLOAT64
+#define IF_FLOAT64(x)
+#undef IF_FLOAT32X
+#define IF_FLOAT32X(x)
+#undef IF_FLOAT64X
+#define IF_FLOAT64X(x)
+#if !__HAVE_DISTINCT_FLOAT128
+# undef IF_FLOAT128
+# define IF_FLOAT128(x)
+#endif
+
#define NNBSP "\xe2\x80\xaf"
-static const struct
-{
- const char *in;
- int group;
- double expected;
-} tests[] =
- {
- { "0", 0, 0.0 },
- { "000", 0, 0.0 },
- { "-0", 0, -0.0 },
- { "-000", 0, -0.0 },
- { "0,", 0, 0.0 },
- { "-0,", 0, -0.0 },
- { "0,0", 0, 0.0 },
- { "-0,0", 0, -0.0 },
- { "0e-10", 0, 0.0 },
- { "-0e-10", 0, -0.0 },
- { "0,e-10", 0, 0.0 },
- { "-0,e-10", 0, -0.0 },
- { "0,0e-10", 0, 0.0 },
- { "-0,0e-10", 0, -0.0 },
- { "0e-1000000", 0, 0.0 },
- { "-0e-1000000", 0, -0.0 },
- { "0,0e-1000000", 0, 0.0 },
- { "-0,0e-1000000", 0, -0.0 },
- { "0", 1, 0.0 },
- { "000", 1, 0.0 },
- { "-0", 1, -0.0 },
- { "-000", 1, -0.0 },
- { "0e-10", 1, 0.0 },
- { "-0e-10", 1, -0.0 },
- { "0e-1000000", 1, 0.0 },
- { "-0e-1000000", 1, -0.0 },
- { "000"NNBSP"000"NNBSP"000", 1, 0.0 },
- { "-000"NNBSP"000"NNBSP"000", 1, -0.0 }
- };
-#define NTESTS (sizeof (tests) / sizeof (tests[0]))
+#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \
+static const struct \
+{ \
+ const char *in; \
+ int group; \
+ FTYPE expected; \
+} tests_strto ## FSUF[] = \
+ { \
+ { "0", 0, 0.0 ## LSUF }, \
+ { "000", 0, 0.0 ## LSUF }, \
+ { "-0", 0, -0.0 ## LSUF }, \
+ { "-000", 0, -0.0 ## LSUF }, \
+ { "0,", 0, 0.0 ## LSUF }, \
+ { "-0,", 0, -0.0 ## LSUF }, \
+ { "0,0", 0, 0.0 ## LSUF }, \
+ { "-0,0", 0, -0.0 ## LSUF }, \
+ { "0e-10", 0, 0.0 ## LSUF }, \
+ { "-0e-10", 0, -0.0 ## LSUF }, \
+ { "0,e-10", 0, 0.0 ## LSUF }, \
+ { "-0,e-10", 0, -0.0 ## LSUF }, \
+ { "0,0e-10", 0, 0.0 ## LSUF }, \
+ { "-0,0e-10", 0, -0.0 ## LSUF }, \
+ { "0e-1000000", 0, 0.0 ## LSUF }, \
+ { "-0e-1000000", 0, -0.0 ## LSUF }, \
+ { "0,0e-1000000", 0, 0.0 ## LSUF }, \
+ { "-0,0e-1000000", 0, -0.0 ## LSUF }, \
+ { "0", 1, 0.0 ## LSUF }, \
+ { "000", 1, 0.0 ## LSUF }, \
+ { "-0", 1, -0.0 ## LSUF }, \
+ { "-000", 1, -0.0 ## LSUF }, \
+ { "0e-10", 1, 0.0 ## LSUF }, \
+ { "-0e-10", 1, -0.0 ## LSUF }, \
+ { "0e-1000000", 1, 0.0 ## LSUF }, \
+ { "-0e-1000000", 1, -0.0 ## LSUF }, \
+ { "000"NNBSP"000"NNBSP"000", 1, 0.0 ## LSUF }, \
+ { "-000"NNBSP"000"NNBSP"000", 1, -0.0 ## LSUF } \
+ }; \
+ \
+static int \
+test_strto ## FSUF (void) \
+{ \
+ int status = 0; \
+ \
+ for (int i = 0; \
+ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \
+ ++i) \
+ { \
+ char *ep; \
+ FTYPE r = __strto ## FSUF ## _internal (tests_strto ## FSUF[i].in, \
+ &ep, \
+ tests_strto ## FSUF[i].group); \
+ \
+ if (*ep != '\0') \
+ { \
+ printf ("%d: got rest string \"%s\", expected \"\"\n", i, ep); \
+ status = 1; \
+ } \
+ \
+ if (r != tests_strto ## FSUF[i].expected \
+ || (copysign ## CSUF (10.0 ## LSUF, r) \
+ != copysign ## CSUF (10.0 ## LSUF, \
+ tests_strto ## FSUF[i].expected))) \
+ { \
+ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \
+ FTOSTR (buf1, sizeof (buf1), "%g", r); \
+ FTOSTR (buf2, sizeof (buf2), "%g", \
+ tests_strto ## FSUF[i].expected); \
+ printf ("%d: got wrong results %s, expected %s\n", \
+ i, buf1, buf2); \
+ status = 1; \
+ } \
+ } \
+ \
+ return status; \
+}
+GEN_TEST_STRTOD_FOREACH (TEST_STRTOD)
static int
do_test (void)
@@ -72,29 +132,7 @@ do_test (void)
return 1;
}
- int status = 0;
-
- for (int i = 0; i < NTESTS; ++i)
- {
- char *ep;
- double r = __strtod_internal (tests[i].in, &ep, tests[i].group);
-
- if (*ep != '\0')
- {
- printf ("%d: got rest string \"%s\", expected \"\"\n", i, ep);
- status = 1;
- }
-
- if (r != tests[i].expected
- || copysign (10.0, r) != copysign (10.0, tests[i].expected))
- {
- printf ("%d: got wrong results %g, expected %g\n",
- i, r, tests[i].expected);
- status = 1;
- }
- }
-
- return status;
+ return STRTOD_TEST_FOREACH (test_strto);
}
#include <support/test-driver.c>
diff --git a/string/Makefile b/string/Makefile
index 8f31fa4..1dff405 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -184,6 +184,7 @@ tests := \
test-strncpy \
test-strndup \
test-strnlen \
+ test-strnlen-nonarray \
test-strpbrk \
test-strrchr \
test-strspn \
@@ -235,7 +236,10 @@ tests-unsupported += $(tests-translation)
endif
# This test allocates a lot of memory and can run for a long time.
-xtests = tst-strcoll-overflow
+xtests += tst-strcoll-overflow
+
+# This test runs for a long time.
+xtests += test-strncmp-nonarray
# This test needs libdl.
ifeq (yes,$(build-shared))
diff --git a/string/strerror_l.c b/string/strerror_l.c
index 15cce26..70456e5 100644
--- a/string/strerror_l.c
+++ b/string/strerror_l.c
@@ -20,7 +20,7 @@
#include <stdio.h>
#include <string.h>
#include <tls-internal.h>
-
+#include <libc-internal.h>
static const char *
translate (const char *str, locale_t loc)
@@ -31,6 +31,12 @@ translate (const char *str, locale_t loc)
return res;
}
+static char *
+unknown_error (locale_t loc)
+{
+ return (char *) translate ("Unknown error", loc);
+}
+
/* Return a string describing the errno code in ERRNUM. */
char *
@@ -40,18 +46,25 @@ __strerror_l (int errnum, locale_t loc)
char *err = (char *) __get_errlist (errnum);
if (__glibc_unlikely (err == NULL))
{
- struct tls_internal_t *tls_internal = __glibc_tls_internal ();
- free (tls_internal->strerror_l_buf);
- if (__asprintf (&tls_internal->strerror_l_buf, "%s%d",
- translate ("Unknown error ", loc), errnum) > 0)
- err = tls_internal->strerror_l_buf;
- else
+ if (__libc_initial)
{
- /* The memory was freed above. */
- tls_internal->strerror_l_buf = NULL;
- /* Provide a fallback translation. */
- err = (char *) translate ("Unknown error", loc);
+ struct tls_internal_t *tls_internal = __glibc_tls_internal ();
+ free (tls_internal->strerror_l_buf);
+ if (__asprintf (&tls_internal->strerror_l_buf, "%s%d",
+ translate ("Unknown error ", loc), errnum) > 0)
+ err = tls_internal->strerror_l_buf;
+ else
+ {
+ /* The memory was freed above. */
+ tls_internal->strerror_l_buf = NULL;
+ /* Provide a fallback translation. */
+ err = unknown_error (loc);
+ }
}
+ else
+ /* Secondary namespaces use a different malloc, so cannot
+ participate in the buffer management. */
+ err = unknown_error (loc);
}
else
err = (char *) translate (err, loc);
diff --git a/string/strsignal.c b/string/strsignal.c
index 3114601..d9b0365 100644
--- a/string/strsignal.c
+++ b/string/strsignal.c
@@ -21,6 +21,7 @@
#include <string.h>
#include <libintl.h>
#include <tls-internal.h>
+#include <libc-internal.h>
/* Return a string describing the meaning of the signal number SIGNUM. */
char *
@@ -30,21 +31,28 @@ strsignal (int signum)
if (desc != NULL)
return _(desc);
- struct tls_internal_t *tls_internal = __glibc_tls_internal ();
- free (tls_internal->strsignal_buf);
+ if (__libc_initial)
+ {
+ struct tls_internal_t *tls_internal = __glibc_tls_internal ();
+ free (tls_internal->strsignal_buf);
- int r;
+ int r;
#ifdef SIGRTMIN
- if (signum >= SIGRTMIN && signum <= SIGRTMAX)
- r = __asprintf (&tls_internal->strsignal_buf, _("Real-time signal %d"),
- signum - SIGRTMIN);
- else
+ if (signum >= SIGRTMIN && signum <= SIGRTMAX)
+ r = __asprintf (&tls_internal->strsignal_buf, _("Real-time signal %d"),
+ signum - SIGRTMIN);
+ else
#endif
- r = __asprintf (&tls_internal->strsignal_buf, _("Unknown signal %d"),
- signum);
-
- if (r == -1)
- tls_internal->strsignal_buf = NULL;
-
- return tls_internal->strsignal_buf;
+ r = __asprintf (&tls_internal->strsignal_buf, _("Unknown signal %d"),
+ signum);
+
+ if (r >= 0)
+ return tls_internal->strsignal_buf;
+ else
+ tls_internal->strsignal_buf = NULL;
+ }
+ /* Fall through on asprintf error, and for !__libc_initial:
+ secondary namespaces use a different malloc and cannot
+ participate in the buffer management. */
+ return _("Unknown signal");
}
diff --git a/string/test-Xncmp-nonarray.c b/string/test-Xncmp-nonarray.c
new file mode 100644
index 0000000..9f3a3ca
--- /dev/null
+++ b/string/test-Xncmp-nonarray.c
@@ -0,0 +1,183 @@
+/* Test non-array inputs to string comparison functions.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This skeleton file is included from string/test-strncmp-nonarray.c and
+ wcsmbs/test-wcsncmp-nonarray.c to test that reading of the arrays stops
+ at the first null character.
+
+ TEST_IDENTIFIER must be the test function identifier. TEST_NAME is
+ the same as a string.
+
+ CHAR must be defined as the character type. */
+
+#include <array_length.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/next_to_fault.h>
+#include <support/test-driver.h>
+#include <sys/param.h>
+#include <unistd.h>
+
+/* Much shorter than test-Xnlen-nonarray.c because of deeply nested loops. */
+enum { buffer_length = 80 };
+
+/* The test buffer layout follows what is described test-Xnlen-nonarray.c,
+ except that there two buffers, left and right. The variables
+ a_count, zero_count, start_offset are all duplicated. */
+
+/* Return the maximum string length for a string that starts at
+ start_offset. */
+static int
+string_length (int a_count, int start_offset)
+{
+ if (start_offset == buffer_length || start_offset >= a_count)
+ return 0;
+ else
+ return a_count - start_offset;
+}
+
+/* This is the valid maximum length argument computation for
+ strnlen/wcsnlen. See text-Xnlen-nonarray.c. */
+static int
+maximum_length (int start_offset, int zero_count)
+{
+ if (start_offset == buffer_length)
+ return 0;
+ else if (zero_count > 0)
+ /* Effectively unbounded, but we need to stop fairly low,
+ otherwise testing takes too long. */
+ return buffer_length + 32;
+ else
+ return buffer_length - start_offset;
+}
+
+typedef __typeof (TEST_IDENTIFIER) *proto_t;
+
+#define TEST_MAIN
+#include "test-string.h"
+
+IMPL (TEST_IDENTIFIER, 1)
+
+static int
+test_main (void)
+{
+ TEST_VERIFY_EXIT (sysconf (_SC_PAGESIZE) >= buffer_length);
+ test_init ();
+
+ struct support_next_to_fault left_ntf
+ = support_next_to_fault_allocate (buffer_length * sizeof (CHAR));
+ CHAR *left_buffer = (CHAR *) left_ntf.buffer;
+ struct support_next_to_fault right_ntf
+ = support_next_to_fault_allocate (buffer_length * sizeof (CHAR));
+ CHAR *right_buffer = (CHAR *) right_ntf.buffer;
+
+ FOR_EACH_IMPL (impl, 0)
+ {
+ printf ("info: testing %s\n", impl->name);
+ for (size_t i = 0; i < buffer_length; ++i)
+ left_buffer[i] = 'A';
+
+ for (int left_zero_count = 0; left_zero_count <= buffer_length;
+ ++left_zero_count)
+ {
+ if (left_zero_count > 0)
+ left_buffer[buffer_length - left_zero_count] = 0;
+ int left_a_count = buffer_length - left_zero_count;
+ for (size_t i = 0; i < buffer_length; ++i)
+ right_buffer[i] = 'A';
+ for (int right_zero_count = 0; right_zero_count <= buffer_length;
+ ++right_zero_count)
+ {
+ if (right_zero_count > 0)
+ right_buffer[buffer_length - right_zero_count] = 0;
+ int right_a_count = buffer_length - right_zero_count;
+ for (int left_start_offset = 0;
+ left_start_offset <= buffer_length;
+ ++left_start_offset)
+ {
+ CHAR *left_start_pointer = left_buffer + left_start_offset;
+ int left_maxlen
+ = maximum_length (left_start_offset, left_zero_count);
+ int left_length
+ = string_length (left_a_count, left_start_offset);
+ for (int right_start_offset = 0;
+ right_start_offset <= buffer_length;
+ ++right_start_offset)
+ {
+ CHAR *right_start_pointer
+ = right_buffer + right_start_offset;
+ int right_maxlen
+ = maximum_length (right_start_offset, right_zero_count);
+ int right_length
+ = string_length (right_a_count, right_start_offset);
+
+ /* Maximum length is modelled after strnlen/wcsnlen,
+ and must be valid for both pointer arguments at
+ the same time. */
+ int maxlen = MIN (left_maxlen, right_maxlen);
+
+ for (int length_argument = 0; length_argument <= maxlen;
+ ++length_argument)
+ {
+ if (test_verbose)
+ {
+ printf ("left: zero_count=%d"
+ " a_count=%d start_offset=%d\n",
+ left_zero_count, left_a_count,
+ left_start_offset);
+ printf ("right: zero_count=%d"
+ " a_count=%d start_offset=%d\n",
+ right_zero_count, right_a_count,
+ right_start_offset);
+ printf ("length argument: %d\n",
+ length_argument);
+ }
+
+ /* Effective lengths bounded by length argument.
+ The effective length determines the
+ outcome of the comparison. */
+ int left_effective
+ = MIN (left_length, length_argument);
+ int right_effective
+ = MIN (right_length, length_argument);
+ if (left_effective == right_effective)
+ TEST_COMPARE (CALL (impl,
+ left_start_pointer,
+ right_start_pointer,
+ length_argument), 0);
+ else if (left_effective < right_effective)
+ TEST_COMPARE (CALL (impl,
+ left_start_pointer,
+ right_start_pointer,
+ length_argument) < 0, 1);
+ else
+ TEST_COMPARE (CALL (impl,
+ left_start_pointer,
+ right_start_pointer,
+ length_argument) > 0, 1);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/string/test-Xnlen-nonarray.c b/string/test-Xnlen-nonarray.c
new file mode 100644
index 0000000..499bef2
--- /dev/null
+++ b/string/test-Xnlen-nonarray.c
@@ -0,0 +1,133 @@
+/* Test non-array inputs to string length functions.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This skeleton file is included from string/test-strnlen-nonarray.c
+ and wcsmbs/test-wcsnlen-nonarray.c to test that reading of the array
+ stops at the first null character.
+
+ TEST_IDENTIFIER must be the test function identifier. TEST_NAME is
+ the same as a string.
+
+ CHAR must be defined as the character type. */
+
+#include <array_length.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/next_to_fault.h>
+#include <support/test-driver.h>
+#include <sys/param.h>
+#include <unistd.h>
+
+typedef __typeof (TEST_IDENTIFIER) *proto_t;
+
+#define TEST_MAIN
+#include "test-string.h"
+
+IMPL (TEST_IDENTIFIER, 1)
+
+static int
+test_main (void)
+{
+ enum { buffer_length = 256 };
+ TEST_VERIFY_EXIT (sysconf (_SC_PAGESIZE) >= buffer_length);
+
+ test_init ();
+
+ /* Buffer layout: There are a_count 'A' character followed by
+ zero_count null character, for a total of buffer_length
+ character:
+
+ AAAAA...AAAAA 00000 ... 00000 (unmapped page follows)
+ \ / \ /
+ (a_count) (zero_count)
+ \___ (buffer_length) ___/
+ ^
+ |
+ start_offset
+
+ The buffer length does not change, but a_count (and thus _zero)
+ and start_offset vary.
+
+ If start_offset == buffer_length, only 0 is a valid length
+ argument. The result is 0.
+
+ Otherwwise, if zero_count > 0 (if there a null characters in the
+ buffer), then any length argument is valid. If start_offset <
+ a_count (i.e., there is a non-null character at start_offset), the
+ result is the minimum of a_count - start_offset and the length
+ argument. Otherwise the result is 0.
+
+ Otherwise, there are no null characters before the unmapped page.
+ The length argument must not be greater than buffer_length -
+ start_offset, and the result is the length argument. */
+
+ struct support_next_to_fault ntf
+ = support_next_to_fault_allocate (buffer_length * sizeof (CHAR));
+ CHAR *buffer = (CHAR *) ntf.buffer;
+
+ FOR_EACH_IMPL (impl, 0)
+ {
+ printf ("info: testing %s\n", impl->name);
+ for (size_t i = 0; i < buffer_length; ++i)
+ buffer[i] = 'A';
+
+ for (int zero_count = 0; zero_count <= buffer_length; ++zero_count)
+ {
+ if (zero_count > 0)
+ buffer[buffer_length - zero_count] = 0;
+ int a_count = buffer_length - zero_count;
+ for (int start_offset = 0; start_offset <= buffer_length;
+ ++start_offset)
+ {
+ CHAR *start_pointer = buffer + start_offset;
+ if (start_offset == buffer_length)
+ TEST_COMPARE (CALL (impl, buffer + start_offset, 0), 0);
+ else if (zero_count > 0)
+ for (int length_argument = 0;
+ length_argument <= 2 * buffer_length;
+ ++length_argument)
+ {
+ if (test_verbose)
+ printf ("zero_count=%d a_count=%d start_offset=%d"
+ " length_argument=%d\n",
+ zero_count, a_count, start_offset,
+ length_argument);
+ if (start_offset < a_count)
+ TEST_COMPARE (CALL (impl, start_pointer, length_argument),
+ MIN (a_count - start_offset,
+ length_argument));
+ else
+ TEST_COMPARE (CALL (impl, start_pointer, length_argument),
+ 0);
+ }
+ else
+ for (int length_argument = 0;
+ length_argument <= buffer_length - start_offset;
+ ++length_argument)
+ TEST_COMPARE (CALL (impl, start_pointer, length_argument),
+ length_argument);
+ }
+ }
+ }
+
+ support_next_to_fault_free (&ntf);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/string/test-strchr.c b/string/test-strchr.c
index c795eac..72b17af 100644
--- a/string/test-strchr.c
+++ b/string/test-strchr.c
@@ -255,6 +255,69 @@ check1 (void)
check_result (impl, s, c, exp_result);
}
+static void
+check2 (void)
+{
+ CHAR *s = (CHAR *) (buf1 + getpagesize () - 4 * sizeof (CHAR));
+ CHAR *s_begin = (CHAR *) (buf1 + getpagesize () - 64);
+#ifndef USE_FOR_STRCHRNUL
+ CHAR *exp_result = NULL;
+#else
+ CHAR *exp_result = s + 1;
+#endif
+ CHAR val = 0x12;
+ for (; s_begin != s; ++s_begin)
+ *s_begin = val;
+
+ s[0] = val + 1;
+ s[1] = 0;
+ s[2] = val + 1;
+ s[3] = val + 1;
+
+ {
+ FOR_EACH_IMPL (impl, 0)
+ check_result (impl, s, val, exp_result);
+ }
+ s[3] = val;
+ {
+ FOR_EACH_IMPL (impl, 0)
+ check_result (impl, s, val, exp_result);
+ }
+ exp_result = s;
+ s[0] = val;
+ {
+ FOR_EACH_IMPL (impl, 0)
+ check_result (impl, s, val, exp_result);
+ }
+
+ s[3] = val + 1;
+ {
+ FOR_EACH_IMPL (impl, 0)
+ check_result (impl, s, val, exp_result);
+ }
+
+ s[0] = val + 1;
+ s[1] = val + 1;
+ s[2] = val + 1;
+ s[3] = val + 1;
+ s[4] = val;
+ exp_result = s + 4;
+ {
+ FOR_EACH_IMPL (impl, 0)
+ check_result (impl, s, val, exp_result);
+ }
+ s[4] = 0;
+#ifndef USE_FOR_STRCHRNUL
+ exp_result = NULL;
+#else
+ exp_result = s + 4;
+#endif
+ {
+ FOR_EACH_IMPL (impl, 0)
+ check_result (impl, s, val, exp_result);
+ }
+}
+
int
test_main (void)
{
@@ -263,7 +326,7 @@ test_main (void)
test_init ();
check1 ();
-
+ check2 ();
printf ("%20s", "");
FOR_EACH_IMPL (impl, 0)
printf ("\t%s", impl->name);
diff --git a/string/test-strncmp-nonarray.c b/string/test-strncmp-nonarray.c
new file mode 100644
index 0000000..581e52d
--- /dev/null
+++ b/string/test-strncmp-nonarray.c
@@ -0,0 +1,4 @@
+#define TEST_IDENTIFIER strncmp
+#define TEST_NAME "strncmp"
+typedef char CHAR;
+#include "test-Xncmp-nonarray.c"
diff --git a/string/test-strnlen-nonarray.c b/string/test-strnlen-nonarray.c
new file mode 100644
index 0000000..0ad0575
--- /dev/null
+++ b/string/test-strnlen-nonarray.c
@@ -0,0 +1,4 @@
+#define TEST_IDENTIFIER strnlen
+#define TEST_NAME "strnlen"
+typedef char CHAR;
+#include "test-Xnlen-nonarray.c"
diff --git a/support/check.h b/support/check.h
index 711f34b..7ea22c7 100644
--- a/support/check.h
+++ b/support/check.h
@@ -25,6 +25,11 @@
__BEGIN_DECLS
/* Record a test failure, print the failure message to standard output
+ and pass the result of 1 through. */
+#define FAIL(...) \
+ support_print_failure_impl (__FILE__, __LINE__, __VA_ARGS__)
+
+/* Record a test failure, print the failure message to standard output
and return 1. */
#define FAIL_RET(...) \
return support_print_failure_impl (__FILE__, __LINE__, __VA_ARGS__)
diff --git a/support/test-driver.c b/support/test-driver.c
index f4c3e4d..04ceebc 100644
--- a/support/test-driver.c
+++ b/support/test-driver.c
@@ -155,6 +155,7 @@ main (int argc, char **argv)
{
CMDLINE_OPTIONS
TEST_DEFAULT_OPTIONS
+ { 0, }
};
test_config.options = &options;
#endif
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 50f58a6..259ce2e 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -1200,10 +1200,8 @@ extern void _dl_get_tls_static_info (size_t *sizep, size_t *alignp);
extern void _dl_allocate_static_tls (struct link_map *map) attribute_hidden;
-/* These are internal entry points to the two halves of _dl_allocate_tls,
- only used within rtld.c itself at startup time. */
extern void *_dl_allocate_tls_storage (void) attribute_hidden;
-extern void *_dl_allocate_tls_init (void *, bool);
+extern void *_dl_allocate_tls_init (void *result, bool main_thread);
rtld_hidden_proto (_dl_allocate_tls_init)
/* True if the TCB has been set up. */
@@ -1241,13 +1239,7 @@ extern void *_dl_open (const char *name, int mode, const void *caller,
extern int _dl_scope_free (void *) attribute_hidden;
-/* Add module to slot information data. If DO_ADD is false, only the
- required memory is allocated. Must be called with GL
- (dl_load_tls_lock) acquired. If the function has already been called
- for the link map L with !do_add, then this function will not raise
- an exception, otherwise it is possible that it encounters a memory
- allocation failure. */
-extern void _dl_add_to_slotinfo (struct link_map *l, bool do_add)
+extern bool _dl_add_to_slotinfo (struct link_map *l, bool do_add)
attribute_hidden;
/* Update slot information data for at least the generation of the
@@ -1256,6 +1248,20 @@ extern struct link_map *_dl_update_slotinfo (unsigned long int req_modid,
size_t gen)
attribute_hidden;
+/* The last TLS module ID that is initially loaded, plus 1. TLS
+ addresses for modules with IDs lower than that can be obtained from
+ the DTV even if its generation is outdated. */
+extern size_t _dl_tls_initial_modid_limit attribute_hidden attribute_relro;
+
+/* Compute _dl_tls_initial_modid_limit. To be called after initial
+ relocation. */
+void _dl_tls_initial_modid_limit_setup (void) attribute_hidden;
+
+/* Number of threads currently in a TLS update. This is used to
+ detect reentrant __tls_get_addr calls without a per-thread
+ flag. */
+extern unsigned int _dl_tls_threads_in_update attribute_hidden;
+
/* Look up the module's TLS block as for __tls_get_addr,
but never touch anything. Return null if it's not allocated yet. */
extern void *_dl_tls_get_addr_soft (struct link_map *l) attribute_hidden;
diff --git a/sysdeps/generic/mremap-failure.h b/sysdeps/generic/mremap-failure.h
new file mode 100644
index 0000000..bc0d476
--- /dev/null
+++ b/sysdeps/generic/mremap-failure.h
@@ -0,0 +1,25 @@
+/* mremap failure handling. Generic version.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Return exit value on mremap failure with errno ERR. */
+
+static int
+mremap_failure_exit (int err)
+{
+ return EXIT_FAILURE;
+}
diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile
index 5214eb4..ca5e395 100644
--- a/sysdeps/powerpc/powerpc64/le/Makefile
+++ b/sysdeps/powerpc/powerpc64/le/Makefile
@@ -129,6 +129,10 @@ CFLAGS-tst-strtod-round.c += $(type-float128-CFLAGS)
CFLAGS-tst-wcstod-round.c += $(type-float128-CFLAGS)
CFLAGS-tst-strtod-nan-locale.c += $(type-float128-CFLAGS)
CFLAGS-tst-wcstod-nan-locale.c += $(type-float128-CFLAGS)
+CFLAGS-tst-strtod1i.c += $(type-float128-CFLAGS)
+CFLAGS-tst-strtod3.c += $(type-float128-CFLAGS)
+CFLAGS-tst-strtod4.c += $(type-float128-CFLAGS)
+CFLAGS-tst-strtod5i.c += $(type-float128-CFLAGS)
CFLAGS-tst-strtod6.c += $(type-float128-CFLAGS)
CFLAGS-tst-strfrom.c += $(type-float128-CFLAGS)
CFLAGS-tst-strfrom-locale.c += $(type-float128-CFLAGS)
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index f9efb50..04ea565 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -282,6 +282,10 @@ tests += \
tst-vfork2x \
# tests
+tests-2.0 += \
+ tst-pthread_kill-exited
+ # tests-2.0
+
tests-time64 += \
tst-abstime-time64 \
tst-cnd-timedwait-time64 \
diff --git a/sysdeps/pthread/tst-setuid3.c b/sysdeps/pthread/tst-setuid3.c
index 83f42a0..3845ab0 100644
--- a/sysdeps/pthread/tst-setuid3.c
+++ b/sysdeps/pthread/tst-setuid3.c
@@ -15,24 +15,19 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <stdio.h>
#include <errno.h>
#include <pthread.h>
#include <stdbool.h>
#include <unistd.h>
+#include <support/check.h>
+
/* The test must run under a non-privileged user ID. */
static const uid_t test_uid = 1;
static pthread_barrier_t barrier1;
static pthread_barrier_t barrier2;
-#define FAIL(fmt, ...) \
- do { printf ("FAIL: " fmt "\n", __VA_ARGS__); _exit (1); } while (0)
-
-#define FAIL_ERR(fmt, ...) \
- do { printf ("FAIL: " fmt ": %m\n", __VA_ARGS__); _exit (1); } while (0)
-
/* True if x is not a successful return code from pthread_barrier_wait. */
static inline bool
is_invalid_barrier_ret (int x)
@@ -45,10 +40,10 @@ thread_func (void *ctx __attribute__ ((unused)))
{
int ret = pthread_barrier_wait (&barrier1);
if (is_invalid_barrier_ret (ret))
- FAIL ("pthread_barrier_wait (barrier1) (on thread): %d", ret);
+ FAIL_EXIT1 ("pthread_barrier_wait (barrier1) (on thread): %d", ret);
ret = pthread_barrier_wait (&barrier2);
if (is_invalid_barrier_ret (ret))
- FAIL ("pthread_barrier_wait (barrier2) (on thread): %d", ret);
+ FAIL_EXIT1 ("pthread_barrier_wait (barrier2) (on thread): %d", ret);
return NULL;
}
@@ -59,13 +54,13 @@ setuid_failure (int phase)
switch (ret)
{
case 0:
- FAIL ("setuid succeeded unexpectedly in phase %d", phase);
+ FAIL_EXIT1 ("setuid succeeded unexpectedly in phase %d", phase);
case -1:
if (errno != EPERM)
- FAIL_ERR ("setuid phase %d", phase);
+ FAIL_EXIT1 ("setuid phase %d: %m", phase);
break;
default:
- FAIL ("invalid setuid return value in phase %d: %d", phase, ret);
+ FAIL_EXIT1 ("invalid setuid return value in phase %d: %d", phase, ret);
}
}
@@ -74,42 +69,42 @@ do_test (void)
{
if (getuid () == 0)
if (setuid (test_uid) != 0)
- FAIL_ERR ("setuid (%u)", (unsigned) test_uid);
+ FAIL_EXIT1 ("setuid (%u): %m", (unsigned) test_uid);
if (setuid (getuid ()))
- FAIL_ERR ("setuid (%s)", "getuid ()");
+ FAIL_EXIT1 ("setuid (%s): %m", "getuid ()");
setuid_failure (1);
int ret = pthread_barrier_init (&barrier1, NULL, 2);
if (ret != 0)
- FAIL ("pthread_barrier_init (barrier1): %d", ret);
+ FAIL_EXIT1 ("pthread_barrier_init (barrier1): %d", ret);
ret = pthread_barrier_init (&barrier2, NULL, 2);
if (ret != 0)
- FAIL ("pthread_barrier_init (barrier2): %d", ret);
+ FAIL_EXIT1 ("pthread_barrier_init (barrier2): %d", ret);
pthread_t thread;
ret = pthread_create (&thread, NULL, thread_func, NULL);
if (ret != 0)
- FAIL ("pthread_create: %d", ret);
+ FAIL_EXIT1 ("pthread_create: %d", ret);
/* Ensure that the thread is running properly. */
ret = pthread_barrier_wait (&barrier1);
if (is_invalid_barrier_ret (ret))
- FAIL ("pthread_barrier_wait (barrier1): %d", ret);
+ FAIL_EXIT1 ("pthread_barrier_wait (barrier1): %d", ret);
setuid_failure (2);
/* Check success case. */
if (setuid (getuid ()) != 0)
- FAIL_ERR ("setuid (%s)", "getuid ()");
+ FAIL_EXIT1 ("setuid (%s): %m", "getuid ()");
/* Shutdown. */
ret = pthread_barrier_wait (&barrier2);
if (is_invalid_barrier_ret (ret))
- FAIL ("pthread_barrier_wait (barrier2): %d", ret);
+ FAIL_EXIT1 ("pthread_barrier_wait (barrier2): %d", ret);
ret = pthread_join (thread, NULL);
if (ret != 0)
- FAIL ("pthread_join: %d", ret);
+ FAIL_EXIT1 ("pthread_join: %d", ret);
return 0;
}
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 6ab9b90..eee91c7 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -205,6 +205,7 @@ tests += \
tst-getauxval \
tst-gettid \
tst-gettid-kill \
+ tst-linux-mremap1 \
tst-memfd_create \
tst-misalign-clone \
tst-mlock2 \
diff --git a/sysdeps/unix/sysv/linux/mremap-failure.h b/sysdeps/unix/sysv/linux/mremap-failure.h
new file mode 100644
index 0000000..c99ab30
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mremap-failure.h
@@ -0,0 +1,30 @@
+/* mremap failure handling. Linux version.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/check.h>
+
+/* Return exit value on mremap failure with errno ERR. */
+
+static int
+mremap_failure_exit (int err)
+{
+ if (err != EINVAL)
+ return EXIT_FAILURE;
+
+ return EXIT_UNSUPPORTED;
+}
diff --git a/sysdeps/unix/sysv/linux/mremap.c b/sysdeps/unix/sysv/linux/mremap.c
index 4f77079..1ada5c1 100644
--- a/sysdeps/unix/sysv/linux/mremap.c
+++ b/sysdeps/unix/sysv/linux/mremap.c
@@ -20,6 +20,12 @@
#include <sysdep.h>
#include <stdarg.h>
#include <stddef.h>
+#include <errno.h>
+
+#define MREMAP_KNOWN_BITS \
+ (MREMAP_MAYMOVE \
+ | MREMAP_FIXED \
+ | MREMAP_DONTUNMAP)
void *
__mremap (void *addr, size_t old_len, size_t new_len, int flags, ...)
@@ -27,7 +33,13 @@ __mremap (void *addr, size_t old_len, size_t new_len, int flags, ...)
va_list va;
void *new_addr = NULL;
- if (flags & MREMAP_FIXED)
+ if (flags & ~(MREMAP_KNOWN_BITS))
+ {
+ __set_errno (EINVAL);
+ return MAP_FAILED;
+ }
+
+ if (flags & (MREMAP_FIXED | MREMAP_DONTUNMAP))
{
va_start (va, flags);
new_addr = va_arg (va, void *);
diff --git a/sysdeps/unix/sysv/linux/tst-linux-mremap1.c b/sysdeps/unix/sysv/linux/tst-linux-mremap1.c
new file mode 100644
index 0000000..408e8af
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-linux-mremap1.c
@@ -0,0 +1,63 @@
+/* Test mremap with MREMAP_DONTUNMAP.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/mman.h>
+#include <support/xstdlib.h>
+#include <support/xunistd.h>
+#include <support/check.h>
+#include <support/test-driver.h>
+#include <mremap-failure.h>
+
+static int
+do_test (void)
+{
+ size_t old_size = getpagesize ();
+ size_t new_size = old_size;
+ char *old_addr = xmmap (NULL, old_size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1);
+ old_addr[0] = 1;
+ old_addr[old_size - 1] = 2;
+
+ /* Create an available 64-page mmap region. */
+ size_t fixed_size = old_size * 64;
+ char *fixed_addr = xmmap (NULL, fixed_size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1);
+ xmunmap (fixed_addr, fixed_size);
+
+ /* Add 3 * pagesize. */
+ fixed_size += 3 * old_size;
+
+ /* Test MREMAP_DONTUNMAP. It should return FIXED_ADDR created above. */
+ char *new_addr = mremap (old_addr, old_size, new_size,
+ MREMAP_DONTUNMAP | MREMAP_MAYMOVE,
+ fixed_addr);
+ if (new_addr == MAP_FAILED)
+ return mremap_failure_exit (errno);
+ TEST_VERIFY_EXIT (fixed_addr == new_addr);
+ old_addr[0] = 3;
+ old_addr[old_size - 1] = 4;
+ new_addr[0] = 1;
+ new_addr[new_size - 1] = 2;
+ xmunmap (new_addr, new_size);
+ xmunmap (old_addr, old_size);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-cet.h b/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
index 1fe3133..b4f7e6c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
+++ b/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
@@ -92,9 +92,9 @@ dl_cet_ibt_enabled (void)
# Pass GL(dl_x86_feature_1) to _dl_cet_setup_features.\n\
movl %edx, %edi\n\
# Align stack for the _dl_cet_setup_features call.\n\
- andq $-16, %rsp\n\
+ and $-16, %" RSP_LP "\n\
call _dl_cet_setup_features\n\
# Restore %rax and %rsp from %r12 and %r13.\n\
- movq %r12, %rax\n\
- movq %r13, %rsp\n\
+ mov %" R12_LP ", %" RAX_LP "\n\
+ mov %" R13_LP ", %" RSP_LP "\n\
"
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h b/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
index b9db8bc..645e858 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
@@ -151,6 +151,7 @@
#define __NR_lsetxattr 1073742013
#define __NR_lstat 1073741830
#define __NR_madvise 1073741852
+#define __NR_map_shadow_stack 1073742277
#define __NR_mbind 1073742061
#define __NR_membarrier 1073742148
#define __NR_memfd_create 1073742143
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
index 9812416..47fa8af 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
@@ -15,6 +15,10 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef __NR_map_shadow_stack
+# define __NR_map_shadow_stack 1073742277
+#endif
+
/* X32 uses the same 64-bit syscall interface for set_thread_area. */
#ifndef __NR_set_thread_area
# define __NR_set_thread_area 1073742029
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index ff5d45f..899f565 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -139,37 +139,37 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
.globl _start\n\
.globl _dl_start_user\n\
_start:\n\
- movq %rsp, %rdi\n\
+ mov %" RSP_LP ", %" RDI_LP "\n\
call _dl_start\n\
_dl_start_user:\n\
# Save the user entry point address in %r12.\n\
- movq %rax, %r12\n\
+ mov %" RAX_LP ", %" R12_LP "\n\
# Save %rsp value in %r13.\n\
- movq %rsp, %r13\n\
+ mov %" RSP_LP ", % " R13_LP "\n\
"\
RTLD_START_ENABLE_X86_FEATURES \
"\
# Read the original argument count.\n\
- movq (%rsp), %rdx\n\
+ mov (%rsp), %" RDX_LP "\n\
# Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
# argc -> rsi\n\
- movq %rdx, %rsi\n\
+ mov %" RDX_LP ", %" RSI_LP "\n\
# And align stack for the _dl_init call. \n\
- andq $-16, %rsp\n\
+ and $-16, %" RSP_LP "\n\
# _dl_loaded -> rdi\n\
- movq _rtld_local(%rip), %rdi\n\
+ mov _rtld_local(%rip), %" RDI_LP "\n\
# env -> rcx\n\
- leaq 16(%r13,%rdx,8), %rcx\n\
+ lea 2*" LP_SIZE "(%r13,%rdx," LP_SIZE "), %" RCX_LP "\n\
# argv -> rdx\n\
- leaq 8(%r13), %rdx\n\
+ lea " LP_SIZE "(%r13), %" RDX_LP "\n\
# Clear %rbp to mark outermost frame obviously even for constructors.\n\
xorl %ebp, %ebp\n\
# Call the function to run the initializers.\n\
call _dl_init\n\
# Pass our finalizer function to the user in %rdx, as per ELF ABI.\n\
- leaq _dl_fini(%rip), %rdx\n\
+ lea _dl_fini(%rip), %" RDX_LP "\n\
# And make sure %rsp points to argc stored on the stack.\n\
- movq %r13, %rsp\n\
+ mov %" R13_LP ", %" RSP_LP "\n\
# Jump to the user's entry point.\n\
jmp *%r12\n\
.previous\n\
@@ -234,8 +234,13 @@ elf_machine_plt_value (struct link_map *map, const ElfW(Rela) *reloc,
/* Names of the architecture-specific auditing callback functions. */
+#ifdef __LP64__
#define ARCH_LA_PLTENTER x86_64_gnu_pltenter
#define ARCH_LA_PLTEXIT x86_64_gnu_pltexit
+#else
+#define ARCH_LA_PLTENTER x32_gnu_pltenter
+#define ARCH_LA_PLTEXIT x32_gnu_pltexit
+#endif
#endif /* !dl_machine_h */
diff --git a/sysdeps/x86_64/dl-tls.c b/sysdeps/x86_64/dl-tls.c
index 869023b..b3c1e4f 100644
--- a/sysdeps/x86_64/dl-tls.c
+++ b/sysdeps/x86_64/dl-tls.c
@@ -41,7 +41,10 @@ __tls_get_addr_slow (GET_ADDR_ARGS)
dtv_t *dtv = THREAD_DTV ();
size_t gen = atomic_load_acquire (&GL(dl_tls_generation));
- if (__glibc_unlikely (dtv[0].counter != gen))
+ if (__glibc_unlikely (dtv[0].counter != gen)
+ /* See comment in __tls_get_addr in elf/dl-tls.c. */
+ && !(_dl_tls_allocate_active ()
+ && GET_ADDR_MODULE < _dl_tls_initial_modid_limit))
return update_get_addr (GET_ADDR_PARAM, gen);
return tls_get_addr_tail (GET_ADDR_PARAM, dtv, NULL);
diff --git a/sysdeps/x86_64/multiarch/strchr-evex-base.S b/sysdeps/x86_64/multiarch/strchr-evex-base.S
index 04e2c0e..3a0b7c9 100644
--- a/sysdeps/x86_64/multiarch/strchr-evex-base.S
+++ b/sysdeps/x86_64/multiarch/strchr-evex-base.S
@@ -124,13 +124,13 @@ L(page_cross):
VPCMPNE %VMM(1), %VMM(0), %k1
VPTEST %VMM(1), %VMM(1), %k0{%k1}
KMOV %k0, %VRAX
-# ifdef USE_AS_WCSCHR
+ sar %cl, %VRAX
+#ifdef USE_AS_WCSCHR
sub $VEC_MATCH_MASK, %VRAX
-# else
+#else
inc %VRAX
-# endif
+#endif
/* Ignore number of character for alignment adjustment. */
- shr %cl, %VRAX
jz L(align_more)
bsf %VRAX, %VRAX
diff --git a/sysdeps/x86_64/x32/dl-machine.h b/sysdeps/x86_64/x32/dl-machine.h
deleted file mode 100644
index c35cee9..0000000
--- a/sysdeps/x86_64/x32/dl-machine.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Machine-dependent ELF dynamic relocation inline functions. x32 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* Must allow <sysdeps/x86_64/dl-machine.h> to be included more than once.
- See #ifdef RESOLVE_MAP in sysdeps/x86_64/dl-machine.h. */
-#include <sysdeps/x86_64/dl-machine.h>
-
-#ifndef _X32_DL_MACHINE_H
-#define _X32_DL_MACHINE_H
-
-#undef ARCH_LA_PLTENTER
-#undef ARCH_LA_PLTEXIT
-#undef RTLD_START
-
-/* Names of the architecture-specific auditing callback functions. */
-#define ARCH_LA_PLTENTER x32_gnu_pltenter
-#define ARCH_LA_PLTEXIT x32_gnu_pltexit
-
-/* Initial entry point code for the dynamic linker.
- The C function `_dl_start' is the real entry point;
- its return value is the user program's entry point. */
-#define RTLD_START asm ("\n\
-.text\n\
- .p2align 4\n\
-.globl _start\n\
-.globl _dl_start_user\n\
-_start:\n\
- movl %esp, %edi\n\
- call _dl_start\n\
-_dl_start_user:\n\
- # Save the user entry point address in %r12.\n\
- movl %eax, %r12d\n\
- # Read the original argument count.\n\
- movl (%rsp), %edx\n\
- # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
- # argc -> rsi\n\
- movl %edx, %esi\n\
- # Save %rsp value in %r13.\n\
- movl %esp, %r13d\n\
- # And align stack for the _dl_init call.\n\
- and $-16, %esp\n\
- # _dl_loaded -> rdi\n\
- movl _rtld_local(%rip), %edi\n\
- # env -> rcx\n\
- lea 8(%r13,%rdx,4), %ecx\n\
- # argv -> rdx\n\
- lea 4(%r13), %edx\n\
- # Clear %rbp to mark outermost frame obviously even for constructors.\n\
- xorl %ebp, %ebp\n\
- # Call the function to run the initializers.\n\
- call _dl_init\n\
- # Pass our finalizer function to the user in %rdx, as per ELF ABI.\n\
- lea _dl_fini(%rip), %edx\n\
- # And make sure %rsp points to argc stored on the stack.\n\
- movl %r13d, %esp\n\
- # Jump to the user's entry point.\n\
- jmp *%r12\n\
-.previous\n\
-");
-
-#endif /* !_X32_DL_MACHINE_H */
diff --git a/wcsmbs/Makefile b/wcsmbs/Makefile
index 65173e2..6eb38c2 100644
--- a/wcsmbs/Makefile
+++ b/wcsmbs/Makefile
@@ -160,6 +160,7 @@ tests := \
test-wcsncmp \
test-wcsncpy \
test-wcsnlen \
+ test-wcsnlen-nonarray \
test-wcspbrk \
test-wcsrchr \
test-wcsspn \
@@ -204,6 +205,10 @@ tests := \
wcsmbs-tst1 \
# tests
+# This test runs for a long time.
+xtests += test-wcsncmp-nonarray
+
+
include ../Rules
ifeq ($(run-built-tests),yes)
diff --git a/wcsmbs/bits/wchar2.h b/wcsmbs/bits/wchar2.h
index 49f19bc..c863b60 100644
--- a/wcsmbs/bits/wchar2.h
+++ b/wcsmbs/bits/wchar2.h
@@ -59,18 +59,18 @@ __NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
__fortify_function wchar_t *
__NTH (wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
{
- size_t sz = __glibc_objsize (__dest);
- if (sz != (size_t) -1)
- return __wcscpy_chk (__dest, __src, sz / sizeof (wchar_t));
+ size_t __sz = __glibc_objsize (__dest);
+ if (__sz != (size_t) -1)
+ return __wcscpy_chk (__dest, __src, __sz / sizeof (wchar_t));
return __wcscpy_alias (__dest, __src);
}
__fortify_function wchar_t *
__NTH (wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
{
- size_t sz = __glibc_objsize (__dest);
- if (sz != (size_t) -1)
- return __wcpcpy_chk (__dest, __src, sz / sizeof (wchar_t));
+ size_t __sz = __glibc_objsize (__dest);
+ if (__sz != (size_t) -1)
+ return __wcpcpy_chk (__dest, __src, __sz / sizeof (wchar_t));
return __wcpcpy_alias (__dest, __src);
}
@@ -95,9 +95,9 @@ __NTH (wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
__fortify_function wchar_t *
__NTH (wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
{
- size_t sz = __glibc_objsize (__dest);
- if (sz != (size_t) -1)
- return __wcscat_chk (__dest, __src, sz / sizeof (wchar_t));
+ size_t __sz = __glibc_objsize (__dest);
+ if (__sz != (size_t) -1)
+ return __wcscat_chk (__dest, __src, __sz / sizeof (wchar_t));
return __wcscat_alias (__dest, __src);
}
@@ -105,9 +105,9 @@ __fortify_function wchar_t *
__NTH (wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
size_t __n))
{
- size_t sz = __glibc_objsize (__dest);
- if (sz != (size_t) -1)
- return __wcsncat_chk (__dest, __src, __n, sz / sizeof (wchar_t));
+ size_t __sz = __glibc_objsize (__dest);
+ if (__sz != (size_t) -1)
+ return __wcsncat_chk (__dest, __src, __n, __sz / sizeof (wchar_t));
return __wcsncat_alias (__dest, __src, __n);
}
@@ -144,10 +144,10 @@ __fortify_function int
__NTH (swprintf (wchar_t *__restrict __s, size_t __n,
const wchar_t *__restrict __fmt, ...))
{
- size_t sz = __glibc_objsize (__s);
- if (sz != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
+ size_t __sz = __glibc_objsize (__s);
+ if (__sz != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
return __swprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
- sz / sizeof (wchar_t), __fmt, __va_arg_pack ());
+ __sz / sizeof (wchar_t), __fmt, __va_arg_pack ());
return __swprintf_alias (__s, __n, __fmt, __va_arg_pack ());
}
#elif !defined __cplusplus
@@ -163,10 +163,10 @@ __fortify_function int
__NTH (vswprintf (wchar_t *__restrict __s, size_t __n,
const wchar_t *__restrict __fmt, __gnuc_va_list __ap))
{
- size_t sz = __glibc_objsize (__s);
- if (sz != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
+ size_t __sz = __glibc_objsize (__s);
+ if (__sz != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
return __vswprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
- sz / sizeof (wchar_t), __fmt, __ap);
+ __sz / sizeof (wchar_t), __fmt, __ap);
return __vswprintf_alias (__s, __n, __fmt, __ap);
}
@@ -210,25 +210,25 @@ vfwprintf (__FILE *__restrict __stream,
__fortify_function __wur wchar_t *
fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
{
- size_t sz = __glibc_objsize (__s);
- if (__glibc_safe_or_unknown_len (__n, sizeof (wchar_t), sz))
+ size_t __sz = __glibc_objsize (__s);
+ if (__glibc_safe_or_unknown_len (__n, sizeof (wchar_t), __sz))
return __fgetws_alias (__s, __n, __stream);
- if (__glibc_unsafe_len (__n, sizeof (wchar_t), sz))
- return __fgetws_chk_warn (__s, sz / sizeof (wchar_t), __n, __stream);
- return __fgetws_chk (__s, sz / sizeof (wchar_t), __n, __stream);
+ if (__glibc_unsafe_len (__n, sizeof (wchar_t), __sz))
+ return __fgetws_chk_warn (__s, __sz / sizeof (wchar_t), __n, __stream);
+ return __fgetws_chk (__s, __sz / sizeof (wchar_t), __n, __stream);
}
#ifdef __USE_GNU
__fortify_function __wur wchar_t *
fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
{
- size_t sz = __glibc_objsize (__s);
- if (__glibc_safe_or_unknown_len (__n, sizeof (wchar_t), sz))
+ size_t __sz = __glibc_objsize (__s);
+ if (__glibc_safe_or_unknown_len (__n, sizeof (wchar_t), __sz))
return __fgetws_unlocked_alias (__s, __n, __stream);
- if (__glibc_unsafe_len (__n, sizeof (wchar_t), sz))
- return __fgetws_unlocked_chk_warn (__s, sz / sizeof (wchar_t), __n,
+ if (__glibc_unsafe_len (__n, sizeof (wchar_t), __sz))
+ return __fgetws_unlocked_chk_warn (__s, __sz / sizeof (wchar_t), __n,
__stream);
- return __fgetws_unlocked_chk (__s, sz / sizeof (wchar_t), __n, __stream);
+ return __fgetws_unlocked_chk (__s, __sz / sizeof (wchar_t), __n, __stream);
}
#endif
diff --git a/wcsmbs/test-wcsncmp-nonarray.c b/wcsmbs/test-wcsncmp-nonarray.c
new file mode 100644
index 0000000..1ad9ebd
--- /dev/null
+++ b/wcsmbs/test-wcsncmp-nonarray.c
@@ -0,0 +1,5 @@
+#include <wchar.h>
+#define TEST_IDENTIFIER wcsncmp
+#define TEST_NAME "wcsncmp"
+typedef wchar_t CHAR;
+#include "../string/test-Xncmp-nonarray.c"
diff --git a/wcsmbs/test-wcsnlen-nonarray.c b/wcsmbs/test-wcsnlen-nonarray.c
new file mode 100644
index 0000000..a4b21fe
--- /dev/null
+++ b/wcsmbs/test-wcsnlen-nonarray.c
@@ -0,0 +1,5 @@
+#include <wchar.h>
+#define TEST_IDENTIFIER wcsnlen
+#define TEST_NAME "wcsnlen"
+typedef wchar_t CHAR;
+#include "../string/test-Xnlen-nonarray.c"