about summary refs log tree commit diff
path: root/stdlib/tst-strtod-round.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-04-10 20:45:30 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-04-10 20:45:30 +0000
commit5556d30caee170384553d2ae3247ec77a66b9ae8 (patch)
treef17624c702ee8f1304651ebe95145205f294273d /stdlib/tst-strtod-round.c
parentb3c66c534f8a9dbee44aa4983814fc52008f0323 (diff)
downloadglibc-5556d30caee170384553d2ae3247ec77a66b9ae8.tar.gz
glibc-5556d30caee170384553d2ae3247ec77a66b9ae8.tar.xz
glibc-5556d30caee170384553d2ae3247ec77a66b9ae8.zip
Fix strtof decimal rounding close to half least subnormal (bug 18247).
Bug 18247 is an off-by-one error in strtof's determination of a
decimal exponent such that any value with that decimal exponent is at
most half the least subnormal and so the appropriate underflowing
value for the rounding mode can be determined with no
multiple-precision computations.  (Whether the value is in fact safe
despite the off-by-one depends on the floating-point format in
question.  It's wrong for float and for m68k ldbl-96 but not for other
supported formats.)  This patch corrects the computation of the
exponent in question to be safe in general, adding a comment
explaining the new computation.

Tested for x86_64.

	[BZ #18247]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Decrease minimum
	decimal exponent by 1.
	* stdlib/tst-strtod-round-data: Add more tests.
	* stdlib/tst-strtod-round.c (tests): Regenerated.
Diffstat (limited to 'stdlib/tst-strtod-round.c')
-rw-r--r--stdlib/tst-strtod-round.c4638
1 files changed, 4638 insertions, 0 deletions
diff --git a/stdlib/tst-strtod-round.c b/stdlib/tst-strtod-round.c
index cfddad1dd9..5ff096e659 100644
--- a/stdlib/tst-strtod-round.c
+++ b/stdlib/tst-strtod-round.c
@@ -7826,6 +7826,4644 @@ static const struct test tests[] = {
 	-0x0p+0L,
 	-0x0p+0L,
 	-0x0p+0L),
+  TEST (".70064923216240853546186479164495807e-45",
+	false,
+	0x0p+0f,
+	0x8p-152f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.0000000000004p-152,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.0000000000004p-152L,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.0000000000000008p-152L,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.0000000000000008p-152L,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.00000000000000000000000002p-152L,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.0000000000000000000000000004p-152L),
+  TEST ("7.0064923216240853546186479164495806564013097093825788587853"
+	"4141944895541342930300743319094181060791015624e-46",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x3.ffffffffffffep-152,
+	0x4p-152,
+	0x3.ffffffffffffep-152,
+	0x4p-152,
+	false,
+	0x3.ffffffffffffep-152L,
+	0x4p-152L,
+	0x3.ffffffffffffep-152L,
+	0x4p-152L,
+	false,
+	0x3.fffffffffffffffcp-152L,
+	0x4p-152L,
+	0x3.fffffffffffffffcp-152L,
+	0x4p-152L,
+	false,
+	0x3.fffffffffffffffcp-152L,
+	0x4p-152L,
+	0x3.fffffffffffffffcp-152L,
+	0x4p-152L,
+	false,
+	0x3.ffffffffffffffffffffffffffp-152L,
+	0x4p-152L,
+	0x3.ffffffffffffffffffffffffffp-152L,
+	0x4p-152L,
+	false,
+	0x3.fffffffffffffffffffffffffffep-152L,
+	0x4p-152L,
+	0x3.fffffffffffffffffffffffffffep-152L,
+	0x4p-152L),
+  TEST ("7.0064923216240853546186479164495806564013097093825788587853"
+	"4141944895541342930300743319094181060791015625e-46",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	true,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	true,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	true,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	true,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	true,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	true,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L),
+  TEST ("7.0064923216240853546186479164495806564013097093825788587853"
+	"4141944895541342930300743319094181060791015626e-46",
+	false,
+	0x0p+0f,
+	0x8p-152f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.0000000000004p-152,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.0000000000004p-152L,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.0000000000000008p-152L,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.0000000000000008p-152L,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.00000000000000000000000002p-152L,
+	false,
+	0x4p-152L,
+	0x4p-152L,
+	0x4p-152L,
+	0x4.0000000000000000000000000004p-152L),
+  TEST ("-7.006492321624085354618647916449580656401309709382578858785"
+	"34141944895541342930300743319094181060791015624e-46",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-152,
+	-0x4p-152,
+	-0x3.ffffffffffffep-152,
+	-0x3.ffffffffffffep-152,
+	false,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x3.ffffffffffffep-152L,
+	-0x3.ffffffffffffep-152L,
+	false,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x3.fffffffffffffffcp-152L,
+	-0x3.fffffffffffffffcp-152L,
+	false,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x3.fffffffffffffffcp-152L,
+	-0x3.fffffffffffffffcp-152L,
+	false,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x3.ffffffffffffffffffffffffffp-152L,
+	-0x3.ffffffffffffffffffffffffffp-152L,
+	false,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x3.fffffffffffffffffffffffffffep-152L,
+	-0x3.fffffffffffffffffffffffffffep-152L),
+  TEST ("-7.006492321624085354618647916449580656401309709382578858785"
+	"34141944895541342930300743319094181060791015625e-46",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	true,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	true,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	true,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	true,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	true,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	true,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L),
+  TEST ("-7.006492321624085354618647916449580656401309709382578858785"
+	"34141944895541342930300743319094181060791015626e-46",
+	false,
+	-0x8p-152f,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4.0000000000004p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	false,
+	-0x4.0000000000004p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	false,
+	-0x4.0000000000000008p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	false,
+	-0x4.0000000000000008p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	false,
+	-0x4.00000000000000000000000002p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	false,
+	-0x4.0000000000000000000000000004p-152L,
+	-0x4p-152L,
+	-0x4p-152L,
+	-0x4p-152L),
+  TEST ("2.4703282292062327208828439643411068618252990130716238221279"
+	"284125033775363510437593264991818081799618989828234772285886"
+	"546332835517796989819938739800539093906315035659515570226392"
+	"290858392449105184435931802849936536152500319370457678249219"
+	"365623669863658480757001585769269903706311928279558551332927"
+	"834338409351978015531246597263579574622766465272827220056374"
+	"006485499977096599470454020828166226237857393450736339007967"
+	"761930577506740176324673600968951340535537458516661134223766"
+	"678604162159680461914467291840300530057530849048765391711386"
+	"591646239524912623653881879636239373280423891018672348497668"
+	"235089863388587925628302755995657524455507255189313690836254"
+	"779186948667994968324049705821028513185451396213837722826145"
+	"437693412532098591327667236328124e-324",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x1.fffffffffffffffep-1076L,
+	0x2p-1076L,
+	0x1.fffffffffffffffep-1076L,
+	0x2p-1076L,
+	false,
+	0x1.fffffffffffffffep-1076L,
+	0x2p-1076L,
+	0x1.fffffffffffffffep-1076L,
+	0x2p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x1.ffffffffffffffffffffffffffffp-1076L,
+	0x2p-1076L,
+	0x1.ffffffffffffffffffffffffffffp-1076L,
+	0x2p-1076L),
+  TEST ("2.4703282292062327208828439643411068618252990130716238221279"
+	"284125033775363510437593264991818081799618989828234772285886"
+	"546332835517796989819938739800539093906315035659515570226392"
+	"290858392449105184435931802849936536152500319370457678249219"
+	"365623669863658480757001585769269903706311928279558551332927"
+	"834338409351978015531246597263579574622766465272827220056374"
+	"006485499977096599470454020828166226237857393450736339007967"
+	"761930577506740176324673600968951340535537458516661134223766"
+	"678604162159680461914467291840300530057530849048765391711386"
+	"591646239524912623653881879636239373280423891018672348497668"
+	"235089863388587925628302755995657524455507255189313690836254"
+	"779186948667994968324049705821028513185451396213837722826145"
+	"437693412532098591327667236328125e-324",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	true,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L,
+	true,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	true,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L),
+  TEST ("2.4703282292062327208828439643411068618252990130716238221279"
+	"284125033775363510437593264991818081799618989828234772285886"
+	"546332835517796989819938739800539093906315035659515570226392"
+	"290858392449105184435931802849936536152500319370457678249219"
+	"365623669863658480757001585769269903706311928279558551332927"
+	"834338409351978015531246597263579574622766465272827220056374"
+	"006485499977096599470454020828166226237857393450736339007967"
+	"761930577506740176324673600968951340535537458516661134223766"
+	"678604162159680461914467291840300530057530849048765391711386"
+	"591646239524912623653881879636239373280423891018672348497668"
+	"235089863388587925628302755995657524455507255189313690836254"
+	"779186948667994968324049705821028513185451396213837722826145"
+	"437693412532098591327667236328126e-324",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x4p-1076,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x4p-1076L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2.0000000000000004p-1076L,
+	false,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2.0000000000000004p-1076L,
+	false,
+	0x0p+0L,
+	0x4p-1076L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2p-1076L,
+	0x2.0000000000000000000000000002p-1076L),
+  TEST ("-2.470328229206232720882843964341106861825299013071623822127"
+	"928412503377536351043759326499181808179961898982823477228588"
+	"654633283551779698981993873980053909390631503565951557022639"
+	"229085839244910518443593180284993653615250031937045767824921"
+	"936562366986365848075700158576926990370631192827955855133292"
+	"783433840935197801553124659726357957462276646527282722005637"
+	"400648549997709659947045402082816622623785739345073633900796"
+	"776193057750674017632467360096895134053553745851666113422376"
+	"667860416215968046191446729184030053005753084904876539171138"
+	"659164623952491262365388187963623937328042389101867234849766"
+	"823508986338858792562830275599565752445550725518931369083625"
+	"477918694866799496832404970582102851318545139621383772282614"
+	"5437693412532098591327667236328124e-324",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x1.fffffffffffffffep-1076L,
+	-0x1.fffffffffffffffep-1076L,
+	false,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x1.fffffffffffffffep-1076L,
+	-0x1.fffffffffffffffep-1076L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x1.ffffffffffffffffffffffffffffp-1076L,
+	-0x1.ffffffffffffffffffffffffffffp-1076L),
+  TEST ("-2.470328229206232720882843964341106861825299013071623822127"
+	"928412503377536351043759326499181808179961898982823477228588"
+	"654633283551779698981993873980053909390631503565951557022639"
+	"229085839244910518443593180284993653615250031937045767824921"
+	"936562366986365848075700158576926990370631192827955855133292"
+	"783433840935197801553124659726357957462276646527282722005637"
+	"400648549997709659947045402082816622623785739345073633900796"
+	"776193057750674017632467360096895134053553745851666113422376"
+	"667860416215968046191446729184030053005753084904876539171138"
+	"659164623952491262365388187963623937328042389101867234849766"
+	"823508986338858792562830275599565752445550725518931369083625"
+	"477918694866799496832404970582102851318545139621383772282614"
+	"5437693412532098591327667236328125e-324",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	true,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	true,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	true,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L),
+  TEST ("-2.470328229206232720882843964341106861825299013071623822127"
+	"928412503377536351043759326499181808179961898982823477228588"
+	"654633283551779698981993873980053909390631503565951557022639"
+	"229085839244910518443593180284993653615250031937045767824921"
+	"936562366986365848075700158576926990370631192827955855133292"
+	"783433840935197801553124659726357957462276646527282722005637"
+	"400648549997709659947045402082816622623785739345073633900796"
+	"776193057750674017632467360096895134053553745851666113422376"
+	"667860416215968046191446729184030053005753084904876539171138"
+	"659164623952491262365388187963623937328042389101867234849766"
+	"823508986338858792562830275599565752445550725518931369083625"
+	"477918694866799496832404970582102851318545139621383772282614"
+	"5437693412532098591327667236328126e-324",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x2.0000000000000004p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	false,
+	-0x2.0000000000000004p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	false,
+	-0x4p-1076L,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x2.0000000000000000000000000002p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L,
+	-0x2p-1076L),
+  TEST ("1.8225997659412373012642029668097099081995254078467816718604"
+	"902435141858443166988684047803543129136025986236736736017655"
+	"509834928163110160849867540377949045027419112905889658392846"
+	"126319028167798783107812829917053644701598967767636342956203"
+	"999770864055077592691915230273843577112246476529298591341071"
+	"313110337661777304220340396298768698441131694859514066773321"
+	"059786469060001083813361460161387168195154228027648977594276"
+	"496061276605855817438145692314650177569263750801566422892936"
+	"732834290416745265618525969943519916542939199731612507343012"
+	"297331882934352282118173551211985973294301787840335672389913"
+	"821098681464088756477802684228806339233239542587316254618680"
+	"197563613907079766830481997222017010585267442240109888818022"
+	"189543438116245170584546472752661417773021275082355242554950"
+	"776248474101880875363872607989624146320823364146896124171892"
+	"610744237622308266702265704492674694505399997330424978964704"
+	"335411125839490463131661420668167686151828553033363555080508"
+	"484934542727634080467233927879117726432283352324546435315312"
+	"937809651095964197873430398662003709663353962932921239516263"
+	"008572512558260093668527782388349282015308359304941505110445"
+	"043762021191469060607078792635897736408141163554429972292873"
+	"575169264387977130124003958599909776720759582995017519144111"
+	"001778329839793855454688442046155253818724410472281602421363"
+	"580613990749181808302947976045417884436271162664776148749463"
+	"202753814797191206392480969096910387729527305862739806702349"
+	"088455828380471306603628636563037414688265702108098430515297"
+	"645997107159687247830496686980315376091511219227376708389862"
+	"310190633134517040835432587726931910775044780329777051964574"
+	"763119639404235797665922677433332402402817037657141926646502"
+	"612388421085254756323737273178774331073924707711575555193153"
+	"421957126062196520952920611871114861423032687425262323243276"
+	"848595495133802591437804984986053892365334900647137137197585"
+	"161954823956838391108748154877098567190695813394392779995887"
+	"642254413740232692940887236351533691174492514884514265006822"
+	"752026136435469700291628942927286843274959781329315250417360"
+	"438115330104516894597449604875954147108010051910197388860417"
+	"003307595774863477182911525109554542883460240867674794470854"
+	"883815424039187014069246137704710366577005576311674384079810"
+	"437206511282792194562503036151028910065418370565117488062226"
+	"073975854919243439941741016447206284543777826080409075756028"
+	"194465562812076645422284670475730922346454505830553174377950"
+	"824178034708147037448871898963699023373821217419560423459358"
+	"846127232531421552826545954362386431279626917642725181802754"
+	"271134597856231805666129524101509582941585421888561296839474"
+	"232056474112935379177434928227554149402642893913492062781246"
+	"372611175305462271711931011635602039137701669573065960945871"
+	"579420683440097179831368317352157202215160682058878025153007"
+	"184185319863451652087375936651004559837502483808090613073982"
+	"264685620351993519454344577635257452328683726988824705474397"
+	"398247190812883071734743260426540123481791283782928972842466"
+	"595210269414219040901793935553872090377394005932597887081359"
+	"481915849178541128182923272843218513093012167744690818603663"
+	"862691727272565325057703378827553284852502067686026850339624"
+	"401046086817036618366842240024522042069888708534827471235203"
+	"998932259309110942367856287784097166420437430118381247339347"
+	"418156902369282431197735078016591613063918260343498992697002"
+	"033186558413655576703389208301203552157755701852051877927864"
+	"696515420369217703510602759815252574799728706795849558382877"
+	"392016396900560101736741462690753991602263974212137632508984"
+	"264559315540891383192361601189350414311358816980975697568561"
+	"515680971830107704152657284552920241862730125888825702301035"
+	"564615759615882010733764341109834449576907982406265803484111"
+	"303615971297609065271517286111839839646343815364461776394273"
+	"571391219315553915335300622295196577640884201524657614065743"
+	"729121754460652975075990012786021662416077757235487562550381"
+	"116824006014440438178253273174734436163638119532295383351135"
+	"543170811596051785036366846773285937845231974424475418970517"
+	"659179798069972876889488877627309887323737590814875050457317"
+	"809625163713227973229002908003491739085115971899606986738405"
+	"752463436186745107821032315480693516006251388789902053863235"
+	"071957895722121876262598833823352290042576488238120724072267"
+	"480348425637199003147760378463243043407534395221882144887315"
+	"875876025907739792297575795373506429192468470170038312050500"
+	"917665707583420927303790875332407805094505665159755210495266"
+	"485594187244922216154283213688032393939401426499517609275128"
+	"062067355172333120857796045387692492375534056470145301671359"
+	"016602832469675123108598588424022216759334733452626330303791"
+	"660952659036162827509451468771297954737165701921676834866994"
+	"084496268491510599580714458155026746676860790028899722645883"
+	"679435969902046442373108472951515492761911884847211825930115"
+	"654927539118088350255959445076757398298893380662248358210075"
+	"297702191186519614515280395341723177201383862827129721649638"
+	"274531314762377778754560119397123180107310216608157141828379"
+	"259328274508467371717057031104537750450228447941619684073375"
+	"630517322006118640290925241602376256334414376495602911265450"
+	"165889418372161719063670619610214632774542741157366426747861"
+	"054811449449004970132668146607323502760146957586465275981090"
+	"328336256381187450646030492071694516054712444513961269623339"
+	"705411366337817643269316717217432478812002049894979925260411"
+	"553651385384826214231392012841425936827944383266227115236029"
+	"717393064659821056467446870597828757433936024422511537561864"
+	"619865595955628070343780472634463916608440151554502790128417"
+	"277259492437005696576453717387309605129939526661181496994297"
+	"244693710437436581443653555343763817246961834486181294985455"
+	"884981266421533438177271809310897035958260776218253097858601"
+	"160643120653927024652834025146166356877731266566437231429061"
+	"099807825113272551869352908241073955695854354852545370793609"
+	"838167127357752579007490955536081388103461735071174567636929"
+	"060824172375010035497010614957197713919909924635906503348016"
+	"450952475530978921242656498701313530533991692867619886826204"
+	"706468476070943378163577235406861262755114909606255628375659"
+	"196050370661430148107216310635729360112021571291096278032076"
+	"401092225373270173950575377792566872113768085940991929655824"
+	"050914085013970861399015141010432835406337266746706727481946"
+	"196898882472095111505210339933002505227334750020285673634670"
+	"738458390159933494226851499935336922036551687169140582574153"
+	"726872453800858360764892975201757027862632615130256075468549"
+	"502839367841926212872731925042838691319757663382746471782087"
+	"828988857978192483595747889021081459460627705275735868618724"
+	"958783348362295106875556443770626864591972089881215465141073"
+	"516646930158996569747675806719463602045230325049794904894739"
+	"988312727573320971310488326486213061839843830003145873279435"
+	"454121817918269218294901387830156432148142381592864575229119"
+	"479029130050663564889172093067341444164942736885872753984012"
+	"865743421266470861425283889134636885790293235727017788606167"
+	"560012477186697069994213912998550931078617189790771376702549"
+	"055361745205232419031423044366971378594392952093464046441667"
+	"117613906203494872209149396518971207279263883566606774353236"
+	"255473603377861613942239543893894460581170658088042083661404"
+	"937465706659424639301296621963906278930754459296017486063079"
+	"582024995485338893699574289806529424673393810217577605952909"
+	"491283123179789154639057105774960699934999681018155749261864"
+	"012821574480758746632022143860041252142846691648490809250856"
+	"327057133540568617791625295314357533564192304930155735301757"
+	"457531580062662693966772497728335047637869054460240023262262"
+	"260698443946964564691259441706490611176164305693669515767804"
+	"836460521205954731752583848846525153811934541997962775215961"
+	"180346397456122329133421016560406277159258781706172834569862"
+	"946953007793254152187010227976038449980797987728559041018441"
+	"590564594738308310579014597893182017151615208050090318483536"
+	"106249131918576316944251537092347119867433735046169725181104"
+	"507590928834713669184230634083190791725243913641206256399101"
+	"550966117564795555149420011152858441084271411289366093158722"
+	"254752761637144762690747726313899449121995142565661043193165"
+	"353010677613760383307839362361625628371456344409245507081913"
+	"518237257141164239966660785903970075181826808229440731778746"
+	"830751045427285945936163931997929399708401851740705527023711"
+	"492262489476846435969872480702228386506357017948329114555484"
+	"164760105906717855684788039081591713778852802032849601308169"
+	"832017420608399347713424218434541771868442189843417628618330"
+	"607429739733739437863581804003482214082370567967330530446020"
+	"897773385726872912189813323094415093143437550397556262780011"
+	"208941731420098754319961419532567861629590267320403217607660"
+	"774125374101195389953895035347940170148097810952083736798564"
+	"420421622607993390894450932047257403433908665884124601384175"
+	"012387617430467934818665777122459487877479257747635172691688"
+	"471574765285820096075133353869554987216398800026453207557923"
+	"535966131756358352198875705382763163680830588056974671628368"
+	"719411827591592806044707764658145625683998557872894583705117"
+	"936257144994734815912058252772021032081682437093280526665192"
+	"728869800954748014250481042845426151143544474372887617562791"
+	"409866964806319608280819816846942058817381943129762034507591"
+	"367065185343216917751414811188645979508942996964383255432999"
+	"246119971295726296202396921903289017490293595312645036697141"
+	"581149988784499288560584613793415358537364677872496224892098"
+	"940856692342358755626519304557946447004033186014602147449599"
+	"351317079758304444877174136521487256811625263467410007624215"
+	"856145392339552689565690577293133060124853654497575571509576"
+	"408069646196646757505249296126372820539234090564691695806544"
+	"715766025588258581902342311480969412221466852421842650484494"
+	"063894865891424563992751226230317059592413191308470146226366"
+	"458233536657973376067140793776369412191789801225320255079444"
+	"592709005698858098716107025188986428347407279053266600044521"
+	"079987989879536957560131070100060050673537683871138182387904"
+	"590837539252425985326631955455857258818756188063697492342550"
+	"045277400125480079927908846850898283905756532829762950509886"
+	"991675925213188409911532242068610889478326451513981115020992"
+	"630395715520350039372702741107911736947893709538471200363740"
+	"669304116845653259038102180504837110789645359520309929381266"
+	"271463740502507456882882255788069710715770802338317704510793"
+	"279398576163709512326095306022330346997717688118726634628650"
+	"675984237916551201500684504118483305560295744746257951860545"
+	"390826531622290588364837980034428055971370065573420370270905"
+	"592141420051502465016793525150950140243606137664910359769114"
+	"512792293426708006440346732679574519594848136194781488696994"
+	"267355775509666977187349644291823026624985531726865131782364"
+	"428380093055155988532106121916567178604128111080322761213573"
+	"781334480667563871257352254033032675246444238637990062075058"
+	"819854494711379915549313390179300091783493496822950479766923"
+	"983305064901026858870340863556799948310622536592472509634484"
+	"910640735459644047154918467543140024764605449756679450446473"
+	"048922824617117723876384637412932380635306714345354710568410"
+	"140587435077620501285599837051978855056335305570615129711860"
+	"309387503970812843734718712815925040263182888714533431137355"
+	"255722368962836390856001176889513153529416105504464217522618"
+	"741534232432067776306691118141998014985541610448993152948945"
+	"865983354717289054861249734477980864059509622993770525110616"
+	"313865830823478927462500895844216364365499438449134659145333"
+	"799994034010282254566331595018205841080487728993632798168070"
+	"476921205941768965021887178681810499301253039335978279707627"
+	"295287697256489961179958946847840431902105306618594831078534"
+	"622089641993900896756734276531931450266972752637997248151974"
+	"2277811246822238899767398834228515624e-4951",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x8p-16448L,
+	false,
+	0x0p+0L,
+	0x4p-16448L,
+	0x0p+0L,
+	0x4p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x3.fffffffffffcp-16448L,
+	0x4p-16448L,
+	0x3.fffffffffffcp-16448L,
+	0x4p-16448L),
+  TEST ("1.8225997659412373012642029668097099081995254078467816718604"
+	"902435141858443166988684047803543129136025986236736736017655"
+	"509834928163110160849867540377949045027419112905889658392846"
+	"126319028167798783107812829917053644701598967767636342956203"
+	"999770864055077592691915230273843577112246476529298591341071"
+	"313110337661777304220340396298768698441131694859514066773321"
+	"059786469060001083813361460161387168195154228027648977594276"
+	"496061276605855817438145692314650177569263750801566422892936"
+	"732834290416745265618525969943519916542939199731612507343012"
+	"297331882934352282118173551211985973294301787840335672389913"
+	"821098681464088756477802684228806339233239542587316254618680"
+	"197563613907079766830481997222017010585267442240109888818022"
+	"189543438116245170584546472752661417773021275082355242554950"
+	"776248474101880875363872607989624146320823364146896124171892"
+	"610744237622308266702265704492674694505399997330424978964704"
+	"335411125839490463131661420668167686151828553033363555080508"
+	"484934542727634080467233927879117726432283352324546435315312"
+	"937809651095964197873430398662003709663353962932921239516263"
+	"008572512558260093668527782388349282015308359304941505110445"
+	"043762021191469060607078792635897736408141163554429972292873"
+	"575169264387977130124003958599909776720759582995017519144111"
+	"001778329839793855454688442046155253818724410472281602421363"
+	"580613990749181808302947976045417884436271162664776148749463"
+	"202753814797191206392480969096910387729527305862739806702349"
+	"088455828380471306603628636563037414688265702108098430515297"
+	"645997107159687247830496686980315376091511219227376708389862"
+	"310190633134517040835432587726931910775044780329777051964574"
+	"763119639404235797665922677433332402402817037657141926646502"
+	"612388421085254756323737273178774331073924707711575555193153"
+	"421957126062196520952920611871114861423032687425262323243276"
+	"848595495133802591437804984986053892365334900647137137197585"
+	"161954823956838391108748154877098567190695813394392779995887"
+	"642254413740232692940887236351533691174492514884514265006822"
+	"752026136435469700291628942927286843274959781329315250417360"
+	"438115330104516894597449604875954147108010051910197388860417"
+	"003307595774863477182911525109554542883460240867674794470854"
+	"883815424039187014069246137704710366577005576311674384079810"
+	"437206511282792194562503036151028910065418370565117488062226"
+	"073975854919243439941741016447206284543777826080409075756028"
+	"194465562812076645422284670475730922346454505830553174377950"
+	"824178034708147037448871898963699023373821217419560423459358"
+	"846127232531421552826545954362386431279626917642725181802754"
+	"271134597856231805666129524101509582941585421888561296839474"
+	"232056474112935379177434928227554149402642893913492062781246"
+	"372611175305462271711931011635602039137701669573065960945871"
+	"579420683440097179831368317352157202215160682058878025153007"
+	"184185319863451652087375936651004559837502483808090613073982"
+	"264685620351993519454344577635257452328683726988824705474397"
+	"398247190812883071734743260426540123481791283782928972842466"
+	"595210269414219040901793935553872090377394005932597887081359"
+	"481915849178541128182923272843218513093012167744690818603663"
+	"862691727272565325057703378827553284852502067686026850339624"
+	"401046086817036618366842240024522042069888708534827471235203"
+	"998932259309110942367856287784097166420437430118381247339347"
+	"418156902369282431197735078016591613063918260343498992697002"
+	"033186558413655576703389208301203552157755701852051877927864"
+	"696515420369217703510602759815252574799728706795849558382877"
+	"392016396900560101736741462690753991602263974212137632508984"
+	"264559315540891383192361601189350414311358816980975697568561"
+	"515680971830107704152657284552920241862730125888825702301035"
+	"564615759615882010733764341109834449576907982406265803484111"
+	"303615971297609065271517286111839839646343815364461776394273"
+	"571391219315553915335300622295196577640884201524657614065743"
+	"729121754460652975075990012786021662416077757235487562550381"
+	"116824006014440438178253273174734436163638119532295383351135"
+	"543170811596051785036366846773285937845231974424475418970517"
+	"659179798069972876889488877627309887323737590814875050457317"
+	"809625163713227973229002908003491739085115971899606986738405"
+	"752463436186745107821032315480693516006251388789902053863235"
+	"071957895722121876262598833823352290042576488238120724072267"
+	"480348425637199003147760378463243043407534395221882144887315"
+	"875876025907739792297575795373506429192468470170038312050500"
+	"917665707583420927303790875332407805094505665159755210495266"
+	"485594187244922216154283213688032393939401426499517609275128"
+	"062067355172333120857796045387692492375534056470145301671359"
+	"016602832469675123108598588424022216759334733452626330303791"
+	"660952659036162827509451468771297954737165701921676834866994"
+	"084496268491510599580714458155026746676860790028899722645883"
+	"679435969902046442373108472951515492761911884847211825930115"
+	"654927539118088350255959445076757398298893380662248358210075"
+	"297702191186519614515280395341723177201383862827129721649638"
+	"274531314762377778754560119397123180107310216608157141828379"
+	"259328274508467371717057031104537750450228447941619684073375"
+	"630517322006118640290925241602376256334414376495602911265450"
+	"165889418372161719063670619610214632774542741157366426747861"
+	"054811449449004970132668146607323502760146957586465275981090"
+	"328336256381187450646030492071694516054712444513961269623339"
+	"705411366337817643269316717217432478812002049894979925260411"
+	"553651385384826214231392012841425936827944383266227115236029"
+	"717393064659821056467446870597828757433936024422511537561864"
+	"619865595955628070343780472634463916608440151554502790128417"
+	"277259492437005696576453717387309605129939526661181496994297"
+	"244693710437436581443653555343763817246961834486181294985455"
+	"884981266421533438177271809310897035958260776218253097858601"
+	"160643120653927024652834025146166356877731266566437231429061"
+	"099807825113272551869352908241073955695854354852545370793609"
+	"838167127357752579007490955536081388103461735071174567636929"
+	"060824172375010035497010614957197713919909924635906503348016"
+	"450952475530978921242656498701313530533991692867619886826204"
+	"706468476070943378163577235406861262755114909606255628375659"
+	"196050370661430148107216310635729360112021571291096278032076"
+	"401092225373270173950575377792566872113768085940991929655824"
+	"050914085013970861399015141010432835406337266746706727481946"
+	"196898882472095111505210339933002505227334750020285673634670"
+	"738458390159933494226851499935336922036551687169140582574153"
+	"726872453800858360764892975201757027862632615130256075468549"
+	"502839367841926212872731925042838691319757663382746471782087"
+	"828988857978192483595747889021081459460627705275735868618724"
+	"958783348362295106875556443770626864591972089881215465141073"
+	"516646930158996569747675806719463602045230325049794904894739"
+	"988312727573320971310488326486213061839843830003145873279435"
+	"454121817918269218294901387830156432148142381592864575229119"
+	"479029130050663564889172093067341444164942736885872753984012"
+	"865743421266470861425283889134636885790293235727017788606167"
+	"560012477186697069994213912998550931078617189790771376702549"
+	"055361745205232419031423044366971378594392952093464046441667"
+	"117613906203494872209149396518971207279263883566606774353236"
+	"255473603377861613942239543893894460581170658088042083661404"
+	"937465706659424639301296621963906278930754459296017486063079"
+	"582024995485338893699574289806529424673393810217577605952909"
+	"491283123179789154639057105774960699934999681018155749261864"
+	"012821574480758746632022143860041252142846691648490809250856"
+	"327057133540568617791625295314357533564192304930155735301757"
+	"457531580062662693966772497728335047637869054460240023262262"
+	"260698443946964564691259441706490611176164305693669515767804"
+	"836460521205954731752583848846525153811934541997962775215961"
+	"180346397456122329133421016560406277159258781706172834569862"
+	"946953007793254152187010227976038449980797987728559041018441"
+	"590564594738308310579014597893182017151615208050090318483536"
+	"106249131918576316944251537092347119867433735046169725181104"
+	"507590928834713669184230634083190791725243913641206256399101"
+	"550966117564795555149420011152858441084271411289366093158722"
+	"254752761637144762690747726313899449121995142565661043193165"
+	"353010677613760383307839362361625628371456344409245507081913"
+	"518237257141164239966660785903970075181826808229440731778746"
+	"830751045427285945936163931997929399708401851740705527023711"
+	"492262489476846435969872480702228386506357017948329114555484"
+	"164760105906717855684788039081591713778852802032849601308169"
+	"832017420608399347713424218434541771868442189843417628618330"
+	"607429739733739437863581804003482214082370567967330530446020"
+	"897773385726872912189813323094415093143437550397556262780011"
+	"208941731420098754319961419532567861629590267320403217607660"
+	"774125374101195389953895035347940170148097810952083736798564"
+	"420421622607993390894450932047257403433908665884124601384175"
+	"012387617430467934818665777122459487877479257747635172691688"
+	"471574765285820096075133353869554987216398800026453207557923"
+	"535966131756358352198875705382763163680830588056974671628368"
+	"719411827591592806044707764658145625683998557872894583705117"
+	"936257144994734815912058252772021032081682437093280526665192"
+	"728869800954748014250481042845426151143544474372887617562791"
+	"409866964806319608280819816846942058817381943129762034507591"
+	"367065185343216917751414811188645979508942996964383255432999"
+	"246119971295726296202396921903289017490293595312645036697141"
+	"581149988784499288560584613793415358537364677872496224892098"
+	"940856692342358755626519304557946447004033186014602147449599"
+	"351317079758304444877174136521487256811625263467410007624215"
+	"856145392339552689565690577293133060124853654497575571509576"
+	"408069646196646757505249296126372820539234090564691695806544"
+	"715766025588258581902342311480969412221466852421842650484494"
+	"063894865891424563992751226230317059592413191308470146226366"
+	"458233536657973376067140793776369412191789801225320255079444"
+	"592709005698858098716107025188986428347407279053266600044521"
+	"079987989879536957560131070100060050673537683871138182387904"
+	"590837539252425985326631955455857258818756188063697492342550"
+	"045277400125480079927908846850898283905756532829762950509886"
+	"991675925213188409911532242068610889478326451513981115020992"
+	"630395715520350039372702741107911736947893709538471200363740"
+	"669304116845653259038102180504837110789645359520309929381266"
+	"271463740502507456882882255788069710715770802338317704510793"
+	"279398576163709512326095306022330346997717688118726634628650"
+	"675984237916551201500684504118483305560295744746257951860545"
+	"390826531622290588364837980034428055971370065573420370270905"
+	"592141420051502465016793525150950140243606137664910359769114"
+	"512792293426708006440346732679574519594848136194781488696994"
+	"267355775509666977187349644291823026624985531726865131782364"
+	"428380093055155988532106121916567178604128111080322761213573"
+	"781334480667563871257352254033032675246444238637990062075058"
+	"819854494711379915549313390179300091783493496822950479766923"
+	"983305064901026858870340863556799948310622536592472509634484"
+	"910640735459644047154918467543140024764605449756679450446473"
+	"048922824617117723876384637412932380635306714345354710568410"
+	"140587435077620501285599837051978855056335305570615129711860"
+	"309387503970812843734718712815925040263182888714533431137355"
+	"255722368962836390856001176889513153529416105504464217522618"
+	"741534232432067776306691118141998014985541610448993152948945"
+	"865983354717289054861249734477980864059509622993770525110616"
+	"313865830823478927462500895844216364365499438449134659145333"
+	"799994034010282254566331595018205841080487728993632798168070"
+	"476921205941768965021887178681810499301253039335978279707627"
+	"295287697256489961179958946847840431902105306618594831078534"
+	"622089641993900896756734276531931450266972752637997248151974"
+	"2277811246822238899767398834228515625e-4951",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x8p-16448L,
+	true,
+	0x4p-16448L,
+	0x4p-16448L,
+	0x4p-16448L,
+	0x4p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	true,
+	0x4p-16448L,
+	0x4p-16448L,
+	0x4p-16448L,
+	0x4p-16448L),
+  TEST ("1.8225997659412373012642029668097099081995254078467816718604"
+	"902435141858443166988684047803543129136025986236736736017655"
+	"509834928163110160849867540377949045027419112905889658392846"
+	"126319028167798783107812829917053644701598967767636342956203"
+	"999770864055077592691915230273843577112246476529298591341071"
+	"313110337661777304220340396298768698441131694859514066773321"
+	"059786469060001083813361460161387168195154228027648977594276"
+	"496061276605855817438145692314650177569263750801566422892936"
+	"732834290416745265618525969943519916542939199731612507343012"
+	"297331882934352282118173551211985973294301787840335672389913"
+	"821098681464088756477802684228806339233239542587316254618680"
+	"197563613907079766830481997222017010585267442240109888818022"
+	"189543438116245170584546472752661417773021275082355242554950"
+	"776248474101880875363872607989624146320823364146896124171892"
+	"610744237622308266702265704492674694505399997330424978964704"
+	"335411125839490463131661420668167686151828553033363555080508"
+	"484934542727634080467233927879117726432283352324546435315312"
+	"937809651095964197873430398662003709663353962932921239516263"
+	"008572512558260093668527782388349282015308359304941505110445"
+	"043762021191469060607078792635897736408141163554429972292873"
+	"575169264387977130124003958599909776720759582995017519144111"
+	"001778329839793855454688442046155253818724410472281602421363"
+	"580613990749181808302947976045417884436271162664776148749463"
+	"202753814797191206392480969096910387729527305862739806702349"
+	"088455828380471306603628636563037414688265702108098430515297"
+	"645997107159687247830496686980315376091511219227376708389862"
+	"310190633134517040835432587726931910775044780329777051964574"
+	"763119639404235797665922677433332402402817037657141926646502"
+	"612388421085254756323737273178774331073924707711575555193153"
+	"421957126062196520952920611871114861423032687425262323243276"
+	"848595495133802591437804984986053892365334900647137137197585"
+	"161954823956838391108748154877098567190695813394392779995887"
+	"642254413740232692940887236351533691174492514884514265006822"
+	"752026136435469700291628942927286843274959781329315250417360"
+	"438115330104516894597449604875954147108010051910197388860417"
+	"003307595774863477182911525109554542883460240867674794470854"
+	"883815424039187014069246137704710366577005576311674384079810"
+	"437206511282792194562503036151028910065418370565117488062226"
+	"073975854919243439941741016447206284543777826080409075756028"
+	"194465562812076645422284670475730922346454505830553174377950"
+	"824178034708147037448871898963699023373821217419560423459358"
+	"846127232531421552826545954362386431279626917642725181802754"
+	"271134597856231805666129524101509582941585421888561296839474"
+	"232056474112935379177434928227554149402642893913492062781246"
+	"372611175305462271711931011635602039137701669573065960945871"
+	"579420683440097179831368317352157202215160682058878025153007"
+	"184185319863451652087375936651004559837502483808090613073982"
+	"264685620351993519454344577635257452328683726988824705474397"
+	"398247190812883071734743260426540123481791283782928972842466"
+	"595210269414219040901793935553872090377394005932597887081359"
+	"481915849178541128182923272843218513093012167744690818603663"
+	"862691727272565325057703378827553284852502067686026850339624"
+	"401046086817036618366842240024522042069888708534827471235203"
+	"998932259309110942367856287784097166420437430118381247339347"
+	"418156902369282431197735078016591613063918260343498992697002"
+	"033186558413655576703389208301203552157755701852051877927864"
+	"696515420369217703510602759815252574799728706795849558382877"
+	"392016396900560101736741462690753991602263974212137632508984"
+	"264559315540891383192361601189350414311358816980975697568561"
+	"515680971830107704152657284552920241862730125888825702301035"
+	"564615759615882010733764341109834449576907982406265803484111"
+	"303615971297609065271517286111839839646343815364461776394273"
+	"571391219315553915335300622295196577640884201524657614065743"
+	"729121754460652975075990012786021662416077757235487562550381"
+	"116824006014440438178253273174734436163638119532295383351135"
+	"543170811596051785036366846773285937845231974424475418970517"
+	"659179798069972876889488877627309887323737590814875050457317"
+	"809625163713227973229002908003491739085115971899606986738405"
+	"752463436186745107821032315480693516006251388789902053863235"
+	"071957895722121876262598833823352290042576488238120724072267"
+	"480348425637199003147760378463243043407534395221882144887315"
+	"875876025907739792297575795373506429192468470170038312050500"
+	"917665707583420927303790875332407805094505665159755210495266"
+	"485594187244922216154283213688032393939401426499517609275128"
+	"062067355172333120857796045387692492375534056470145301671359"
+	"016602832469675123108598588424022216759334733452626330303791"
+	"660952659036162827509451468771297954737165701921676834866994"
+	"084496268491510599580714458155026746676860790028899722645883"
+	"679435969902046442373108472951515492761911884847211825930115"
+	"654927539118088350255959445076757398298893380662248358210075"
+	"297702191186519614515280395341723177201383862827129721649638"
+	"274531314762377778754560119397123180107310216608157141828379"
+	"259328274508467371717057031104537750450228447941619684073375"
+	"630517322006118640290925241602376256334414376495602911265450"
+	"165889418372161719063670619610214632774542741157366426747861"
+	"054811449449004970132668146607323502760146957586465275981090"
+	"328336256381187450646030492071694516054712444513961269623339"
+	"705411366337817643269316717217432478812002049894979925260411"
+	"553651385384826214231392012841425936827944383266227115236029"
+	"717393064659821056467446870597828757433936024422511537561864"
+	"619865595955628070343780472634463916608440151554502790128417"
+	"277259492437005696576453717387309605129939526661181496994297"
+	"244693710437436581443653555343763817246961834486181294985455"
+	"884981266421533438177271809310897035958260776218253097858601"
+	"160643120653927024652834025146166356877731266566437231429061"
+	"099807825113272551869352908241073955695854354852545370793609"
+	"838167127357752579007490955536081388103461735071174567636929"
+	"060824172375010035497010614957197713919909924635906503348016"
+	"450952475530978921242656498701313530533991692867619886826204"
+	"706468476070943378163577235406861262755114909606255628375659"
+	"196050370661430148107216310635729360112021571291096278032076"
+	"401092225373270173950575377792566872113768085940991929655824"
+	"050914085013970861399015141010432835406337266746706727481946"
+	"196898882472095111505210339933002505227334750020285673634670"
+	"738458390159933494226851499935336922036551687169140582574153"
+	"726872453800858360764892975201757027862632615130256075468549"
+	"502839367841926212872731925042838691319757663382746471782087"
+	"828988857978192483595747889021081459460627705275735868618724"
+	"958783348362295106875556443770626864591972089881215465141073"
+	"516646930158996569747675806719463602045230325049794904894739"
+	"988312727573320971310488326486213061839843830003145873279435"
+	"454121817918269218294901387830156432148142381592864575229119"
+	"479029130050663564889172093067341444164942736885872753984012"
+	"865743421266470861425283889134636885790293235727017788606167"
+	"560012477186697069994213912998550931078617189790771376702549"
+	"055361745205232419031423044366971378594392952093464046441667"
+	"117613906203494872209149396518971207279263883566606774353236"
+	"255473603377861613942239543893894460581170658088042083661404"
+	"937465706659424639301296621963906278930754459296017486063079"
+	"582024995485338893699574289806529424673393810217577605952909"
+	"491283123179789154639057105774960699934999681018155749261864"
+	"012821574480758746632022143860041252142846691648490809250856"
+	"327057133540568617791625295314357533564192304930155735301757"
+	"457531580062662693966772497728335047637869054460240023262262"
+	"260698443946964564691259441706490611176164305693669515767804"
+	"836460521205954731752583848846525153811934541997962775215961"
+	"180346397456122329133421016560406277159258781706172834569862"
+	"946953007793254152187010227976038449980797987728559041018441"
+	"590564594738308310579014597893182017151615208050090318483536"
+	"106249131918576316944251537092347119867433735046169725181104"
+	"507590928834713669184230634083190791725243913641206256399101"
+	"550966117564795555149420011152858441084271411289366093158722"
+	"254752761637144762690747726313899449121995142565661043193165"
+	"353010677613760383307839362361625628371456344409245507081913"
+	"518237257141164239966660785903970075181826808229440731778746"
+	"830751045427285945936163931997929399708401851740705527023711"
+	"492262489476846435969872480702228386506357017948329114555484"
+	"164760105906717855684788039081591713778852802032849601308169"
+	"832017420608399347713424218434541771868442189843417628618330"
+	"607429739733739437863581804003482214082370567967330530446020"
+	"897773385726872912189813323094415093143437550397556262780011"
+	"208941731420098754319961419532567861629590267320403217607660"
+	"774125374101195389953895035347940170148097810952083736798564"
+	"420421622607993390894450932047257403433908665884124601384175"
+	"012387617430467934818665777122459487877479257747635172691688"
+	"471574765285820096075133353869554987216398800026453207557923"
+	"535966131756358352198875705382763163680830588056974671628368"
+	"719411827591592806044707764658145625683998557872894583705117"
+	"936257144994734815912058252772021032081682437093280526665192"
+	"728869800954748014250481042845426151143544474372887617562791"
+	"409866964806319608280819816846942058817381943129762034507591"
+	"367065185343216917751414811188645979508942996964383255432999"
+	"246119971295726296202396921903289017490293595312645036697141"
+	"581149988784499288560584613793415358537364677872496224892098"
+	"940856692342358755626519304557946447004033186014602147449599"
+	"351317079758304444877174136521487256811625263467410007624215"
+	"856145392339552689565690577293133060124853654497575571509576"
+	"408069646196646757505249296126372820539234090564691695806544"
+	"715766025588258581902342311480969412221466852421842650484494"
+	"063894865891424563992751226230317059592413191308470146226366"
+	"458233536657973376067140793776369412191789801225320255079444"
+	"592709005698858098716107025188986428347407279053266600044521"
+	"079987989879536957560131070100060050673537683871138182387904"
+	"590837539252425985326631955455857258818756188063697492342550"
+	"045277400125480079927908846850898283905756532829762950509886"
+	"991675925213188409911532242068610889478326451513981115020992"
+	"630395715520350039372702741107911736947893709538471200363740"
+	"669304116845653259038102180504837110789645359520309929381266"
+	"271463740502507456882882255788069710715770802338317704510793"
+	"279398576163709512326095306022330346997717688118726634628650"
+	"675984237916551201500684504118483305560295744746257951860545"
+	"390826531622290588364837980034428055971370065573420370270905"
+	"592141420051502465016793525150950140243606137664910359769114"
+	"512792293426708006440346732679574519594848136194781488696994"
+	"267355775509666977187349644291823026624985531726865131782364"
+	"428380093055155988532106121916567178604128111080322761213573"
+	"781334480667563871257352254033032675246444238637990062075058"
+	"819854494711379915549313390179300091783493496822950479766923"
+	"983305064901026858870340863556799948310622536592472509634484"
+	"910640735459644047154918467543140024764605449756679450446473"
+	"048922824617117723876384637412932380635306714345354710568410"
+	"140587435077620501285599837051978855056335305570615129711860"
+	"309387503970812843734718712815925040263182888714533431137355"
+	"255722368962836390856001176889513153529416105504464217522618"
+	"741534232432067776306691118141998014985541610448993152948945"
+	"865983354717289054861249734477980864059509622993770525110616"
+	"313865830823478927462500895844216364365499438449134659145333"
+	"799994034010282254566331595018205841080487728993632798168070"
+	"476921205941768965021887178681810499301253039335978279707627"
+	"295287697256489961179958946847840431902105306618594831078534"
+	"622089641993900896756734276531931450266972752637997248151974"
+	"2277811246822238899767398834228515626e-4951",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x8p-16448L,
+	0x0p+0L,
+	0x8p-16448L,
+	false,
+	0x4p-16448L,
+	0x4p-16448L,
+	0x4p-16448L,
+	0x8p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x4p-16448L,
+	0x4p-16448L,
+	0x4p-16448L,
+	0x4.000000000004p-16448L),
+  TEST ("-1.822599765941237301264202966809709908199525407846781671860"
+	"490243514185844316698868404780354312913602598623673673601765"
+	"550983492816311016084986754037794904502741911290588965839284"
+	"612631902816779878310781282991705364470159896776763634295620"
+	"399977086405507759269191523027384357711224647652929859134107"
+	"131311033766177730422034039629876869844113169485951406677332"
+	"105978646906000108381336146016138716819515422802764897759427"
+	"649606127660585581743814569231465017756926375080156642289293"
+	"673283429041674526561852596994351991654293919973161250734301"
+	"229733188293435228211817355121198597329430178784033567238991"
+	"382109868146408875647780268422880633923323954258731625461868"
+	"019756361390707976683048199722201701058526744224010988881802"
+	"218954343811624517058454647275266141777302127508235524255495"
+	"077624847410188087536387260798962414632082336414689612417189"
+	"261074423762230826670226570449267469450539999733042497896470"
+	"433541112583949046313166142066816768615182855303336355508050"
+	"848493454272763408046723392787911772643228335232454643531531"
+	"293780965109596419787343039866200370966335396293292123951626"
+	"300857251255826009366852778238834928201530835930494150511044"
+	"504376202119146906060707879263589773640814116355442997229287"
+	"357516926438797713012400395859990977672075958299501751914411"
+	"100177832983979385545468844204615525381872441047228160242136"
+	"358061399074918180830294797604541788443627116266477614874946"
+	"320275381479719120639248096909691038772952730586273980670234"
+	"908845582838047130660362863656303741468826570210809843051529"
+	"764599710715968724783049668698031537609151121922737670838986"
+	"231019063313451704083543258772693191077504478032977705196457"
+	"476311963940423579766592267743333240240281703765714192664650"
+	"261238842108525475632373727317877433107392470771157555519315"
+	"342195712606219652095292061187111486142303268742526232324327"
+	"684859549513380259143780498498605389236533490064713713719758"
+	"516195482395683839110874815487709856719069581339439277999588"
+	"764225441374023269294088723635153369117449251488451426500682"
+	"275202613643546970029162894292728684327495978132931525041736"
+	"043811533010451689459744960487595414710801005191019738886041"
+	"700330759577486347718291152510955454288346024086767479447085"
+	"488381542403918701406924613770471036657700557631167438407981"
+	"043720651128279219456250303615102891006541837056511748806222"
+	"607397585491924343994174101644720628454377782608040907575602"
+	"819446556281207664542228467047573092234645450583055317437795"
+	"082417803470814703744887189896369902337382121741956042345935"
+	"884612723253142155282654595436238643127962691764272518180275"
+	"427113459785623180566612952410150958294158542188856129683947"
+	"423205647411293537917743492822755414940264289391349206278124"
+	"637261117530546227171193101163560203913770166957306596094587"
+	"157942068344009717983136831735215720221516068205887802515300"
+	"718418531986345165208737593665100455983750248380809061307398"
+	"226468562035199351945434457763525745232868372698882470547439"
+	"739824719081288307173474326042654012348179128378292897284246"
+	"659521026941421904090179393555387209037739400593259788708135"
+	"948191584917854112818292327284321851309301216774469081860366"
+	"386269172727256532505770337882755328485250206768602685033962"
+	"440104608681703661836684224002452204206988870853482747123520"
+	"399893225930911094236785628778409716642043743011838124733934"
+	"741815690236928243119773507801659161306391826034349899269700"
+	"203318655841365557670338920830120355215775570185205187792786"
+	"469651542036921770351060275981525257479972870679584955838287"
+	"739201639690056010173674146269075399160226397421213763250898"
+	"426455931554089138319236160118935041431135881698097569756856"
+	"151568097183010770415265728455292024186273012588882570230103"
+	"556461575961588201073376434110983444957690798240626580348411"
+	"130361597129760906527151728611183983964634381536446177639427"
+	"357139121931555391533530062229519657764088420152465761406574"
+	"372912175446065297507599001278602166241607775723548756255038"
+	"111682400601444043817825327317473443616363811953229538335113"
+	"554317081159605178503636684677328593784523197442447541897051"
+	"765917979806997287688948887762730988732373759081487505045731"
+	"780962516371322797322900290800349173908511597189960698673840"
+	"575246343618674510782103231548069351600625138878990205386323"
+	"507195789572212187626259883382335229004257648823812072407226"
+	"748034842563719900314776037846324304340753439522188214488731"
+	"587587602590773979229757579537350642919246847017003831205050"
+	"091766570758342092730379087533240780509450566515975521049526"
+	"648559418724492221615428321368803239393940142649951760927512"
+	"806206735517233312085779604538769249237553405647014530167135"
+	"901660283246967512310859858842402221675933473345262633030379"
+	"166095265903616282750945146877129795473716570192167683486699"
+	"408449626849151059958071445815502674667686079002889972264588"
+	"367943596990204644237310847295151549276191188484721182593011"
+	"565492753911808835025595944507675739829889338066224835821007"
+	"529770219118651961451528039534172317720138386282712972164963"
+	"827453131476237777875456011939712318010731021660815714182837"
+	"925932827450846737171705703110453775045022844794161968407337"
+	"563051732200611864029092524160237625633441437649560291126545"
+	"016588941837216171906367061961021463277454274115736642674786"
+	"105481144944900497013266814660732350276014695758646527598109"
+	"032833625638118745064603049207169451605471244451396126962333"
+	"970541136633781764326931671721743247881200204989497992526041"
+	"155365138538482621423139201284142593682794438326622711523602"
+	"971739306465982105646744687059782875743393602442251153756186"
+	"461986559595562807034378047263446391660844015155450279012841"
+	"727725949243700569657645371738730960512993952666118149699429"
+	"724469371043743658144365355534376381724696183448618129498545"
+	"588498126642153343817727180931089703595826077621825309785860"
+	"116064312065392702465283402514616635687773126656643723142906"
+	"109980782511327255186935290824107395569585435485254537079360"
+	"983816712735775257900749095553608138810346173507117456763692"
+	"906082417237501003549701061495719771391990992463590650334801"
+	"645095247553097892124265649870131353053399169286761988682620"
+	"470646847607094337816357723540686126275511490960625562837565"
+	"919605037066143014810721631063572936011202157129109627803207"
+	"640109222537327017395057537779256687211376808594099192965582"
+	"405091408501397086139901514101043283540633726674670672748194"
+	"619689888247209511150521033993300250522733475002028567363467"
+	"073845839015993349422685149993533692203655168716914058257415"
+	"372687245380085836076489297520175702786263261513025607546854"
+	"950283936784192621287273192504283869131975766338274647178208"
+	"782898885797819248359574788902108145946062770527573586861872"
+	"495878334836229510687555644377062686459197208988121546514107"
+	"351664693015899656974767580671946360204523032504979490489473"
+	"998831272757332097131048832648621306183984383000314587327943"
+	"545412181791826921829490138783015643214814238159286457522911"
+	"947902913005066356488917209306734144416494273688587275398401"
+	"286574342126647086142528388913463688579029323572701778860616"
+	"756001247718669706999421391299855093107861718979077137670254"
+	"905536174520523241903142304436697137859439295209346404644166"
+	"711761390620349487220914939651897120727926388356660677435323"
+	"625547360337786161394223954389389446058117065808804208366140"
+	"493746570665942463930129662196390627893075445929601748606307"
+	"958202499548533889369957428980652942467339381021757760595290"
+	"949128312317978915463905710577496069993499968101815574926186"
+	"401282157448075874663202214386004125214284669164849080925085"
+	"632705713354056861779162529531435753356419230493015573530175"
+	"745753158006266269396677249772833504763786905446024002326226"
+	"226069844394696456469125944170649061117616430569366951576780"
+	"483646052120595473175258384884652515381193454199796277521596"
+	"118034639745612232913342101656040627715925878170617283456986"
+	"294695300779325415218701022797603844998079798772855904101844"
+	"159056459473830831057901459789318201715161520805009031848353"
+	"610624913191857631694425153709234711986743373504616972518110"
+	"450759092883471366918423063408319079172524391364120625639910"
+	"155096611756479555514942001115285844108427141128936609315872"
+	"225475276163714476269074772631389944912199514256566104319316"
+	"535301067761376038330783936236162562837145634440924550708191"
+	"351823725714116423996666078590397007518182680822944073177874"
+	"683075104542728594593616393199792939970840185174070552702371"
+	"149226248947684643596987248070222838650635701794832911455548"
+	"416476010590671785568478803908159171377885280203284960130816"
+	"983201742060839934771342421843454177186844218984341762861833"
+	"060742973973373943786358180400348221408237056796733053044602"
+	"089777338572687291218981332309441509314343755039755626278001"
+	"120894173142009875431996141953256786162959026732040321760766"
+	"077412537410119538995389503534794017014809781095208373679856"
+	"442042162260799339089445093204725740343390866588412460138417"
+	"501238761743046793481866577712245948787747925774763517269168"
+	"847157476528582009607513335386955498721639880002645320755792"
+	"353596613175635835219887570538276316368083058805697467162836"
+	"871941182759159280604470776465814562568399855787289458370511"
+	"793625714499473481591205825277202103208168243709328052666519"
+	"272886980095474801425048104284542615114354447437288761756279"
+	"140986696480631960828081981684694205881738194312976203450759"
+	"136706518534321691775141481118864597950894299696438325543299"
+	"924611997129572629620239692190328901749029359531264503669714"
+	"158114998878449928856058461379341535853736467787249622489209"
+	"894085669234235875562651930455794644700403318601460214744959"
+	"935131707975830444487717413652148725681162526346741000762421"
+	"585614539233955268956569057729313306012485365449757557150957"
+	"640806964619664675750524929612637282053923409056469169580654"
+	"471576602558825858190234231148096941222146685242184265048449"
+	"406389486589142456399275122623031705959241319130847014622636"
+	"645823353665797337606714079377636941219178980122532025507944"
+	"459270900569885809871610702518898642834740727905326660004452"
+	"107998798987953695756013107010006005067353768387113818238790"
+	"459083753925242598532663195545585725881875618806369749234255"
+	"004527740012548007992790884685089828390575653282976295050988"
+	"699167592521318840991153224206861088947832645151398111502099"
+	"263039571552035003937270274110791173694789370953847120036374"
+	"066930411684565325903810218050483711078964535952030992938126"
+	"627146374050250745688288225578806971071577080233831770451079"
+	"327939857616370951232609530602233034699771768811872663462865"
+	"067598423791655120150068450411848330556029574474625795186054"
+	"539082653162229058836483798003442805597137006557342037027090"
+	"559214142005150246501679352515095014024360613766491035976911"
+	"451279229342670800644034673267957451959484813619478148869699"
+	"426735577550966697718734964429182302662498553172686513178236"
+	"442838009305515598853210612191656717860412811108032276121357"
+	"378133448066756387125735225403303267524644423863799006207505"
+	"881985449471137991554931339017930009178349349682295047976692"
+	"398330506490102685887034086355679994831062253659247250963448"
+	"491064073545964404715491846754314002476460544975667945044647"
+	"304892282461711772387638463741293238063530671434535471056841"
+	"014058743507762050128559983705197885505633530557061512971186"
+	"030938750397081284373471871281592504026318288871453343113735"
+	"525572236896283639085600117688951315352941610550446421752261"
+	"874153423243206777630669111814199801498554161044899315294894"
+	"586598335471728905486124973447798086405950962299377052511061"
+	"631386583082347892746250089584421636436549943844913465914533"
+	"379999403401028225456633159501820584108048772899363279816807"
+	"047692120594176896502188717868181049930125303933597827970762"
+	"729528769725648996117995894684784043190210530661859483107853"
+	"462208964199390089675673427653193145026697275263799724815197"
+	"42277811246822238899767398834228515624e-4951",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x3.fffffffffffcp-16448L,
+	-0x3.fffffffffffcp-16448L),
+  TEST ("-1.822599765941237301264202966809709908199525407846781671860"
+	"490243514185844316698868404780354312913602598623673673601765"
+	"550983492816311016084986754037794904502741911290588965839284"
+	"612631902816779878310781282991705364470159896776763634295620"
+	"399977086405507759269191523027384357711224647652929859134107"
+	"131311033766177730422034039629876869844113169485951406677332"
+	"105978646906000108381336146016138716819515422802764897759427"
+	"649606127660585581743814569231465017756926375080156642289293"
+	"673283429041674526561852596994351991654293919973161250734301"
+	"229733188293435228211817355121198597329430178784033567238991"
+	"382109868146408875647780268422880633923323954258731625461868"
+	"019756361390707976683048199722201701058526744224010988881802"
+	"218954343811624517058454647275266141777302127508235524255495"
+	"077624847410188087536387260798962414632082336414689612417189"
+	"261074423762230826670226570449267469450539999733042497896470"
+	"433541112583949046313166142066816768615182855303336355508050"
+	"848493454272763408046723392787911772643228335232454643531531"
+	"293780965109596419787343039866200370966335396293292123951626"
+	"300857251255826009366852778238834928201530835930494150511044"
+	"504376202119146906060707879263589773640814116355442997229287"
+	"357516926438797713012400395859990977672075958299501751914411"
+	"100177832983979385545468844204615525381872441047228160242136"
+	"358061399074918180830294797604541788443627116266477614874946"
+	"320275381479719120639248096909691038772952730586273980670234"
+	"908845582838047130660362863656303741468826570210809843051529"
+	"764599710715968724783049668698031537609151121922737670838986"
+	"231019063313451704083543258772693191077504478032977705196457"
+	"476311963940423579766592267743333240240281703765714192664650"
+	"261238842108525475632373727317877433107392470771157555519315"
+	"342195712606219652095292061187111486142303268742526232324327"
+	"684859549513380259143780498498605389236533490064713713719758"
+	"516195482395683839110874815487709856719069581339439277999588"
+	"764225441374023269294088723635153369117449251488451426500682"
+	"275202613643546970029162894292728684327495978132931525041736"
+	"043811533010451689459744960487595414710801005191019738886041"
+	"700330759577486347718291152510955454288346024086767479447085"
+	"488381542403918701406924613770471036657700557631167438407981"
+	"043720651128279219456250303615102891006541837056511748806222"
+	"607397585491924343994174101644720628454377782608040907575602"
+	"819446556281207664542228467047573092234645450583055317437795"
+	"082417803470814703744887189896369902337382121741956042345935"
+	"884612723253142155282654595436238643127962691764272518180275"
+	"427113459785623180566612952410150958294158542188856129683947"
+	"423205647411293537917743492822755414940264289391349206278124"
+	"637261117530546227171193101163560203913770166957306596094587"
+	"157942068344009717983136831735215720221516068205887802515300"
+	"718418531986345165208737593665100455983750248380809061307398"
+	"226468562035199351945434457763525745232868372698882470547439"
+	"739824719081288307173474326042654012348179128378292897284246"
+	"659521026941421904090179393555387209037739400593259788708135"
+	"948191584917854112818292327284321851309301216774469081860366"
+	"386269172727256532505770337882755328485250206768602685033962"
+	"440104608681703661836684224002452204206988870853482747123520"
+	"399893225930911094236785628778409716642043743011838124733934"
+	"741815690236928243119773507801659161306391826034349899269700"
+	"203318655841365557670338920830120355215775570185205187792786"
+	"469651542036921770351060275981525257479972870679584955838287"
+	"739201639690056010173674146269075399160226397421213763250898"
+	"426455931554089138319236160118935041431135881698097569756856"
+	"151568097183010770415265728455292024186273012588882570230103"
+	"556461575961588201073376434110983444957690798240626580348411"
+	"130361597129760906527151728611183983964634381536446177639427"
+	"357139121931555391533530062229519657764088420152465761406574"
+	"372912175446065297507599001278602166241607775723548756255038"
+	"111682400601444043817825327317473443616363811953229538335113"
+	"554317081159605178503636684677328593784523197442447541897051"
+	"765917979806997287688948887762730988732373759081487505045731"
+	"780962516371322797322900290800349173908511597189960698673840"
+	"575246343618674510782103231548069351600625138878990205386323"
+	"507195789572212187626259883382335229004257648823812072407226"
+	"748034842563719900314776037846324304340753439522188214488731"
+	"587587602590773979229757579537350642919246847017003831205050"
+	"091766570758342092730379087533240780509450566515975521049526"
+	"648559418724492221615428321368803239393940142649951760927512"
+	"806206735517233312085779604538769249237553405647014530167135"
+	"901660283246967512310859858842402221675933473345262633030379"
+	"166095265903616282750945146877129795473716570192167683486699"
+	"408449626849151059958071445815502674667686079002889972264588"
+	"367943596990204644237310847295151549276191188484721182593011"
+	"565492753911808835025595944507675739829889338066224835821007"
+	"529770219118651961451528039534172317720138386282712972164963"
+	"827453131476237777875456011939712318010731021660815714182837"
+	"925932827450846737171705703110453775045022844794161968407337"
+	"563051732200611864029092524160237625633441437649560291126545"
+	"016588941837216171906367061961021463277454274115736642674786"
+	"105481144944900497013266814660732350276014695758646527598109"
+	"032833625638118745064603049207169451605471244451396126962333"
+	"970541136633781764326931671721743247881200204989497992526041"
+	"155365138538482621423139201284142593682794438326622711523602"
+	"971739306465982105646744687059782875743393602442251153756186"
+	"461986559595562807034378047263446391660844015155450279012841"
+	"727725949243700569657645371738730960512993952666118149699429"
+	"724469371043743658144365355534376381724696183448618129498545"
+	"588498126642153343817727180931089703595826077621825309785860"
+	"116064312065392702465283402514616635687773126656643723142906"
+	"109980782511327255186935290824107395569585435485254537079360"
+	"983816712735775257900749095553608138810346173507117456763692"
+	"906082417237501003549701061495719771391990992463590650334801"
+	"645095247553097892124265649870131353053399169286761988682620"
+	"470646847607094337816357723540686126275511490960625562837565"
+	"919605037066143014810721631063572936011202157129109627803207"
+	"640109222537327017395057537779256687211376808594099192965582"
+	"405091408501397086139901514101043283540633726674670672748194"
+	"619689888247209511150521033993300250522733475002028567363467"
+	"073845839015993349422685149993533692203655168716914058257415"
+	"372687245380085836076489297520175702786263261513025607546854"
+	"950283936784192621287273192504283869131975766338274647178208"
+	"782898885797819248359574788902108145946062770527573586861872"
+	"495878334836229510687555644377062686459197208988121546514107"
+	"351664693015899656974767580671946360204523032504979490489473"
+	"998831272757332097131048832648621306183984383000314587327943"
+	"545412181791826921829490138783015643214814238159286457522911"
+	"947902913005066356488917209306734144416494273688587275398401"
+	"286574342126647086142528388913463688579029323572701778860616"
+	"756001247718669706999421391299855093107861718979077137670254"
+	"905536174520523241903142304436697137859439295209346404644166"
+	"711761390620349487220914939651897120727926388356660677435323"
+	"625547360337786161394223954389389446058117065808804208366140"
+	"493746570665942463930129662196390627893075445929601748606307"
+	"958202499548533889369957428980652942467339381021757760595290"
+	"949128312317978915463905710577496069993499968101815574926186"
+	"401282157448075874663202214386004125214284669164849080925085"
+	"632705713354056861779162529531435753356419230493015573530175"
+	"745753158006266269396677249772833504763786905446024002326226"
+	"226069844394696456469125944170649061117616430569366951576780"
+	"483646052120595473175258384884652515381193454199796277521596"
+	"118034639745612232913342101656040627715925878170617283456986"
+	"294695300779325415218701022797603844998079798772855904101844"
+	"159056459473830831057901459789318201715161520805009031848353"
+	"610624913191857631694425153709234711986743373504616972518110"
+	"450759092883471366918423063408319079172524391364120625639910"
+	"155096611756479555514942001115285844108427141128936609315872"
+	"225475276163714476269074772631389944912199514256566104319316"
+	"535301067761376038330783936236162562837145634440924550708191"
+	"351823725714116423996666078590397007518182680822944073177874"
+	"683075104542728594593616393199792939970840185174070552702371"
+	"149226248947684643596987248070222838650635701794832911455548"
+	"416476010590671785568478803908159171377885280203284960130816"
+	"983201742060839934771342421843454177186844218984341762861833"
+	"060742973973373943786358180400348221408237056796733053044602"
+	"089777338572687291218981332309441509314343755039755626278001"
+	"120894173142009875431996141953256786162959026732040321760766"
+	"077412537410119538995389503534794017014809781095208373679856"
+	"442042162260799339089445093204725740343390866588412460138417"
+	"501238761743046793481866577712245948787747925774763517269168"
+	"847157476528582009607513335386955498721639880002645320755792"
+	"353596613175635835219887570538276316368083058805697467162836"
+	"871941182759159280604470776465814562568399855787289458370511"
+	"793625714499473481591205825277202103208168243709328052666519"
+	"272886980095474801425048104284542615114354447437288761756279"
+	"140986696480631960828081981684694205881738194312976203450759"
+	"136706518534321691775141481118864597950894299696438325543299"
+	"924611997129572629620239692190328901749029359531264503669714"
+	"158114998878449928856058461379341535853736467787249622489209"
+	"894085669234235875562651930455794644700403318601460214744959"
+	"935131707975830444487717413652148725681162526346741000762421"
+	"585614539233955268956569057729313306012485365449757557150957"
+	"640806964619664675750524929612637282053923409056469169580654"
+	"471576602558825858190234231148096941222146685242184265048449"
+	"406389486589142456399275122623031705959241319130847014622636"
+	"645823353665797337606714079377636941219178980122532025507944"
+	"459270900569885809871610702518898642834740727905326660004452"
+	"107998798987953695756013107010006005067353768387113818238790"
+	"459083753925242598532663195545585725881875618806369749234255"
+	"004527740012548007992790884685089828390575653282976295050988"
+	"699167592521318840991153224206861088947832645151398111502099"
+	"263039571552035003937270274110791173694789370953847120036374"
+	"066930411684565325903810218050483711078964535952030992938126"
+	"627146374050250745688288225578806971071577080233831770451079"
+	"327939857616370951232609530602233034699771768811872663462865"
+	"067598423791655120150068450411848330556029574474625795186054"
+	"539082653162229058836483798003442805597137006557342037027090"
+	"559214142005150246501679352515095014024360613766491035976911"
+	"451279229342670800644034673267957451959484813619478148869699"
+	"426735577550966697718734964429182302662498553172686513178236"
+	"442838009305515598853210612191656717860412811108032276121357"
+	"378133448066756387125735225403303267524644423863799006207505"
+	"881985449471137991554931339017930009178349349682295047976692"
+	"398330506490102685887034086355679994831062253659247250963448"
+	"491064073545964404715491846754314002476460544975667945044647"
+	"304892282461711772387638463741293238063530671434535471056841"
+	"014058743507762050128559983705197885505633530557061512971186"
+	"030938750397081284373471871281592504026318288871453343113735"
+	"525572236896283639085600117688951315352941610550446421752261"
+	"874153423243206777630669111814199801498554161044899315294894"
+	"586598335471728905486124973447798086405950962299377052511061"
+	"631386583082347892746250089584421636436549943844913465914533"
+	"379999403401028225456633159501820584108048772899363279816807"
+	"047692120594176896502188717868181049930125303933597827970762"
+	"729528769725648996117995894684784043190210530661859483107853"
+	"462208964199390089675673427653193145026697275263799724815197"
+	"42277811246822238899767398834228515625e-4951",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	true,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	true,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x4p-16448L),
+  TEST ("-1.822599765941237301264202966809709908199525407846781671860"
+	"490243514185844316698868404780354312913602598623673673601765"
+	"550983492816311016084986754037794904502741911290588965839284"
+	"612631902816779878310781282991705364470159896776763634295620"
+	"399977086405507759269191523027384357711224647652929859134107"
+	"131311033766177730422034039629876869844113169485951406677332"
+	"105978646906000108381336146016138716819515422802764897759427"
+	"649606127660585581743814569231465017756926375080156642289293"
+	"673283429041674526561852596994351991654293919973161250734301"
+	"229733188293435228211817355121198597329430178784033567238991"
+	"382109868146408875647780268422880633923323954258731625461868"
+	"019756361390707976683048199722201701058526744224010988881802"
+	"218954343811624517058454647275266141777302127508235524255495"
+	"077624847410188087536387260798962414632082336414689612417189"
+	"261074423762230826670226570449267469450539999733042497896470"
+	"433541112583949046313166142066816768615182855303336355508050"
+	"848493454272763408046723392787911772643228335232454643531531"
+	"293780965109596419787343039866200370966335396293292123951626"
+	"300857251255826009366852778238834928201530835930494150511044"
+	"504376202119146906060707879263589773640814116355442997229287"
+	"357516926438797713012400395859990977672075958299501751914411"
+	"100177832983979385545468844204615525381872441047228160242136"
+	"358061399074918180830294797604541788443627116266477614874946"
+	"320275381479719120639248096909691038772952730586273980670234"
+	"908845582838047130660362863656303741468826570210809843051529"
+	"764599710715968724783049668698031537609151121922737670838986"
+	"231019063313451704083543258772693191077504478032977705196457"
+	"476311963940423579766592267743333240240281703765714192664650"
+	"261238842108525475632373727317877433107392470771157555519315"
+	"342195712606219652095292061187111486142303268742526232324327"
+	"684859549513380259143780498498605389236533490064713713719758"
+	"516195482395683839110874815487709856719069581339439277999588"
+	"764225441374023269294088723635153369117449251488451426500682"
+	"275202613643546970029162894292728684327495978132931525041736"
+	"043811533010451689459744960487595414710801005191019738886041"
+	"700330759577486347718291152510955454288346024086767479447085"
+	"488381542403918701406924613770471036657700557631167438407981"
+	"043720651128279219456250303615102891006541837056511748806222"
+	"607397585491924343994174101644720628454377782608040907575602"
+	"819446556281207664542228467047573092234645450583055317437795"
+	"082417803470814703744887189896369902337382121741956042345935"
+	"884612723253142155282654595436238643127962691764272518180275"
+	"427113459785623180566612952410150958294158542188856129683947"
+	"423205647411293537917743492822755414940264289391349206278124"
+	"637261117530546227171193101163560203913770166957306596094587"
+	"157942068344009717983136831735215720221516068205887802515300"
+	"718418531986345165208737593665100455983750248380809061307398"
+	"226468562035199351945434457763525745232868372698882470547439"
+	"739824719081288307173474326042654012348179128378292897284246"
+	"659521026941421904090179393555387209037739400593259788708135"
+	"948191584917854112818292327284321851309301216774469081860366"
+	"386269172727256532505770337882755328485250206768602685033962"
+	"440104608681703661836684224002452204206988870853482747123520"
+	"399893225930911094236785628778409716642043743011838124733934"
+	"741815690236928243119773507801659161306391826034349899269700"
+	"203318655841365557670338920830120355215775570185205187792786"
+	"469651542036921770351060275981525257479972870679584955838287"
+	"739201639690056010173674146269075399160226397421213763250898"
+	"426455931554089138319236160118935041431135881698097569756856"
+	"151568097183010770415265728455292024186273012588882570230103"
+	"556461575961588201073376434110983444957690798240626580348411"
+	"130361597129760906527151728611183983964634381536446177639427"
+	"357139121931555391533530062229519657764088420152465761406574"
+	"372912175446065297507599001278602166241607775723548756255038"
+	"111682400601444043817825327317473443616363811953229538335113"
+	"554317081159605178503636684677328593784523197442447541897051"
+	"765917979806997287688948887762730988732373759081487505045731"
+	"780962516371322797322900290800349173908511597189960698673840"
+	"575246343618674510782103231548069351600625138878990205386323"
+	"507195789572212187626259883382335229004257648823812072407226"
+	"748034842563719900314776037846324304340753439522188214488731"
+	"587587602590773979229757579537350642919246847017003831205050"
+	"091766570758342092730379087533240780509450566515975521049526"
+	"648559418724492221615428321368803239393940142649951760927512"
+	"806206735517233312085779604538769249237553405647014530167135"
+	"901660283246967512310859858842402221675933473345262633030379"
+	"166095265903616282750945146877129795473716570192167683486699"
+	"408449626849151059958071445815502674667686079002889972264588"
+	"367943596990204644237310847295151549276191188484721182593011"
+	"565492753911808835025595944507675739829889338066224835821007"
+	"529770219118651961451528039534172317720138386282712972164963"
+	"827453131476237777875456011939712318010731021660815714182837"
+	"925932827450846737171705703110453775045022844794161968407337"
+	"563051732200611864029092524160237625633441437649560291126545"
+	"016588941837216171906367061961021463277454274115736642674786"
+	"105481144944900497013266814660732350276014695758646527598109"
+	"032833625638118745064603049207169451605471244451396126962333"
+	"970541136633781764326931671721743247881200204989497992526041"
+	"155365138538482621423139201284142593682794438326622711523602"
+	"971739306465982105646744687059782875743393602442251153756186"
+	"461986559595562807034378047263446391660844015155450279012841"
+	"727725949243700569657645371738730960512993952666118149699429"
+	"724469371043743658144365355534376381724696183448618129498545"
+	"588498126642153343817727180931089703595826077621825309785860"
+	"116064312065392702465283402514616635687773126656643723142906"
+	"109980782511327255186935290824107395569585435485254537079360"
+	"983816712735775257900749095553608138810346173507117456763692"
+	"906082417237501003549701061495719771391990992463590650334801"
+	"645095247553097892124265649870131353053399169286761988682620"
+	"470646847607094337816357723540686126275511490960625562837565"
+	"919605037066143014810721631063572936011202157129109627803207"
+	"640109222537327017395057537779256687211376808594099192965582"
+	"405091408501397086139901514101043283540633726674670672748194"
+	"619689888247209511150521033993300250522733475002028567363467"
+	"073845839015993349422685149993533692203655168716914058257415"
+	"372687245380085836076489297520175702786263261513025607546854"
+	"950283936784192621287273192504283869131975766338274647178208"
+	"782898885797819248359574788902108145946062770527573586861872"
+	"495878334836229510687555644377062686459197208988121546514107"
+	"351664693015899656974767580671946360204523032504979490489473"
+	"998831272757332097131048832648621306183984383000314587327943"
+	"545412181791826921829490138783015643214814238159286457522911"
+	"947902913005066356488917209306734144416494273688587275398401"
+	"286574342126647086142528388913463688579029323572701778860616"
+	"756001247718669706999421391299855093107861718979077137670254"
+	"905536174520523241903142304436697137859439295209346404644166"
+	"711761390620349487220914939651897120727926388356660677435323"
+	"625547360337786161394223954389389446058117065808804208366140"
+	"493746570665942463930129662196390627893075445929601748606307"
+	"958202499548533889369957428980652942467339381021757760595290"
+	"949128312317978915463905710577496069993499968101815574926186"
+	"401282157448075874663202214386004125214284669164849080925085"
+	"632705713354056861779162529531435753356419230493015573530175"
+	"745753158006266269396677249772833504763786905446024002326226"
+	"226069844394696456469125944170649061117616430569366951576780"
+	"483646052120595473175258384884652515381193454199796277521596"
+	"118034639745612232913342101656040627715925878170617283456986"
+	"294695300779325415218701022797603844998079798772855904101844"
+	"159056459473830831057901459789318201715161520805009031848353"
+	"610624913191857631694425153709234711986743373504616972518110"
+	"450759092883471366918423063408319079172524391364120625639910"
+	"155096611756479555514942001115285844108427141128936609315872"
+	"225475276163714476269074772631389944912199514256566104319316"
+	"535301067761376038330783936236162562837145634440924550708191"
+	"351823725714116423996666078590397007518182680822944073177874"
+	"683075104542728594593616393199792939970840185174070552702371"
+	"149226248947684643596987248070222838650635701794832911455548"
+	"416476010590671785568478803908159171377885280203284960130816"
+	"983201742060839934771342421843454177186844218984341762861833"
+	"060742973973373943786358180400348221408237056796733053044602"
+	"089777338572687291218981332309441509314343755039755626278001"
+	"120894173142009875431996141953256786162959026732040321760766"
+	"077412537410119538995389503534794017014809781095208373679856"
+	"442042162260799339089445093204725740343390866588412460138417"
+	"501238761743046793481866577712245948787747925774763517269168"
+	"847157476528582009607513335386955498721639880002645320755792"
+	"353596613175635835219887570538276316368083058805697467162836"
+	"871941182759159280604470776465814562568399855787289458370511"
+	"793625714499473481591205825277202103208168243709328052666519"
+	"272886980095474801425048104284542615114354447437288761756279"
+	"140986696480631960828081981684694205881738194312976203450759"
+	"136706518534321691775141481118864597950894299696438325543299"
+	"924611997129572629620239692190328901749029359531264503669714"
+	"158114998878449928856058461379341535853736467787249622489209"
+	"894085669234235875562651930455794644700403318601460214744959"
+	"935131707975830444487717413652148725681162526346741000762421"
+	"585614539233955268956569057729313306012485365449757557150957"
+	"640806964619664675750524929612637282053923409056469169580654"
+	"471576602558825858190234231148096941222146685242184265048449"
+	"406389486589142456399275122623031705959241319130847014622636"
+	"645823353665797337606714079377636941219178980122532025507944"
+	"459270900569885809871610702518898642834740727905326660004452"
+	"107998798987953695756013107010006005067353768387113818238790"
+	"459083753925242598532663195545585725881875618806369749234255"
+	"004527740012548007992790884685089828390575653282976295050988"
+	"699167592521318840991153224206861088947832645151398111502099"
+	"263039571552035003937270274110791173694789370953847120036374"
+	"066930411684565325903810218050483711078964535952030992938126"
+	"627146374050250745688288225578806971071577080233831770451079"
+	"327939857616370951232609530602233034699771768811872663462865"
+	"067598423791655120150068450411848330556029574474625795186054"
+	"539082653162229058836483798003442805597137006557342037027090"
+	"559214142005150246501679352515095014024360613766491035976911"
+	"451279229342670800644034673267957451959484813619478148869699"
+	"426735577550966697718734964429182302662498553172686513178236"
+	"442838009305515598853210612191656717860412811108032276121357"
+	"378133448066756387125735225403303267524644423863799006207505"
+	"881985449471137991554931339017930009178349349682295047976692"
+	"398330506490102685887034086355679994831062253659247250963448"
+	"491064073545964404715491846754314002476460544975667945044647"
+	"304892282461711772387638463741293238063530671434535471056841"
+	"014058743507762050128559983705197885505633530557061512971186"
+	"030938750397081284373471871281592504026318288871453343113735"
+	"525572236896283639085600117688951315352941610550446421752261"
+	"874153423243206777630669111814199801498554161044899315294894"
+	"586598335471728905486124973447798086405950962299377052511061"
+	"631386583082347892746250089584421636436549943844913465914533"
+	"379999403401028225456633159501820584108048772899363279816807"
+	"047692120594176896502188717868181049930125303933597827970762"
+	"729528769725648996117995894684784043190210530661859483107853"
+	"462208964199390089675673427653193145026697275263799724815197"
+	"42277811246822238899767398834228515626e-4951",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4.000000000004p-16448L,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x4p-16448L),
+  TEST ("9.1129988297061865063210148340485495409976270392339083593024"
+	"512175709292215834943420239017715645680129931183683680088277"
+	"549174640815550804249337701889745225137095564529448291964230"
+	"631595140838993915539064149585268223507994838838181714781019"
+	"998854320275387963459576151369217885561232382646492956705356"
+	"565551688308886521101701981493843492205658474297570333866605"
+	"298932345300005419066807300806935840975771140138244887971382"
+	"480306383029279087190728461573250887846318754007832114464683"
+	"664171452083726328092629849717599582714695998658062536715061"
+	"486659414671761410590867756059929866471508939201678361949569"
+	"105493407320443782389013421144031696166197712936581273093400"
+	"987818069535398834152409986110085052926337211200549444090110"
+	"947717190581225852922732363763307088865106375411776212774753"
+	"881242370509404376819363039948120731604116820734480620859463"
+	"053721188111541333511328522463373472526999986652124894823521"
+	"677055629197452315658307103340838430759142765166817775402542"
+	"424672713638170402336169639395588632161416761622732176576564"
+	"689048255479820989367151993310018548316769814664606197581315"
+	"042862562791300468342638911941746410076541796524707525552225"
+	"218810105957345303035393963179488682040705817772149861464367"
+	"875846321939885650620019792999548883603797914975087595720555"
+	"008891649198969277273442210230776269093622052361408012106817"
+	"903069953745909041514739880227089422181355813323880743747316"
+	"013769073985956031962404845484551938647636529313699033511745"
+	"442279141902356533018143182815187073441328510540492152576488"
+	"229985535798436239152483434901576880457556096136883541949311"
+	"550953165672585204177162938634659553875223901648885259822873"
+	"815598197021178988329613387166662012014085188285709633232513"
+	"061942105426273781618686365893871655369623538557877775965767"
+	"109785630310982604764603059355574307115163437126311616216384"
+	"242977475669012957189024924930269461826674503235685685987925"
+	"809774119784191955543740774385492835953479066971963899979438"
+	"211272068701163464704436181757668455872462574422571325034113"
+	"760130682177348501458144714636434216374798906646576252086802"
+	"190576650522584472987248024379770735540050259550986944302085"
+	"016537978874317385914557625547772714417301204338373972354274"
+	"419077120195935070346230688523551832885027881558371920399052"
+	"186032556413960972812515180755144550327091852825587440311130"
+	"369879274596217199708705082236031422718889130402045378780140"
+	"972327814060383227111423352378654611732272529152765871889754"
+	"120890173540735187244359494818495116869106087097802117296794"
+	"230636162657107764132729771811932156398134588213625909013771"
+	"355672989281159028330647620507547914707927109442806484197371"
+	"160282370564676895887174641137770747013214469567460313906231"
+	"863055876527311358559655058178010195688508347865329804729357"
+	"897103417200485899156841586760786011075803410294390125765035"
+	"920926599317258260436879683255022799187512419040453065369911"
+	"323428101759967597271722888176287261643418634944123527371986"
+	"991235954064415358673716302132700617408956418914644864212332"
+	"976051347071095204508969677769360451886970029662989435406797"
+	"409579245892705640914616364216092565465060838723454093018319"
+	"313458636362826625288516894137766424262510338430134251698122"
+	"005230434085183091834211200122610210349443542674137356176019"
+	"994661296545554711839281438920485832102187150591906236696737"
+	"090784511846412155988675390082958065319591301717494963485010"
+	"165932792068277883516946041506017760788778509260259389639323"
+	"482577101846088517553013799076262873998643533979247791914386"
+	"960081984502800508683707313453769958011319871060688162544921"
+	"322796577704456915961808005946752071556794084904878487842807"
+	"578404859150538520763286422764601209313650629444128511505177"
+	"823078798079410053668821705549172247884539912031329017420556"
+	"518079856488045326357586430559199198231719076822308881971367"
+	"856956096577769576676503111475982888204421007623288070328718"
+	"645608772303264875379950063930108312080388786177437812751905"
+	"584120030072202190891266365873672180818190597661476916755677"
+	"715854057980258925181834233866429689226159872122377094852588"
+	"295898990349864384447444388136549436618687954074375252286589"
+	"048125818566139866145014540017458695425579859498034933692028"
+	"762317180933725539105161577403467580031256943949510269316175"
+	"359789478610609381312994169116761450212882441190603620361337"
+	"401742128185995015738801892316215217037671976109410724436579"
+	"379380129538698961487878976867532145962342350850191560252504"
+	"588328537917104636518954376662039025472528325798776052476332"
+	"427970936224611080771416068440161969697007132497588046375640"
+	"310336775861665604288980226938462461877670282350726508356795"
+	"083014162348375615542992942120111083796673667263131651518958"
+	"304763295180814137547257343856489773685828509608384174334970"
+	"422481342457552997903572290775133733384303950144498613229418"
+	"397179849510232211865542364757577463809559424236059129650578"
+	"274637695590441751279797225383786991494466903311241791050376"
+	"488510955932598072576401976708615886006919314135648608248191"
+	"372656573811888893772800596985615900536551083040785709141896"
+	"296641372542336858585285155522688752251142239708098420366878"
+	"152586610030593201454626208011881281672071882478014556327250"
+	"829447091860808595318353098051073163872713705786832133739305"
+	"274057247245024850663340733036617513800734787932326379905451"
+	"641681281905937253230152460358472580273562222569806348116698"
+	"527056831689088216346583586087162394060010249474899626302057"
+	"768256926924131071156960064207129684139721916331135576180148"
+	"586965323299105282337234352989143787169680122112557687809323"
+	"099327979778140351718902363172319583042200757772513950642086"
+	"386297462185028482882268586936548025649697633305907484971486"
+	"223468552187182907218267776718819086234809172430906474927279"
+	"424906332107667190886359046554485179791303881091265489293005"
+	"803215603269635123264170125730831784388656332832186157145305"
+	"499039125566362759346764541205369778479271774262726853968049"
+	"190835636788762895037454777680406940517308675355872838184645"
+	"304120861875050177485053074785988569599549623179532516740082"
+	"254762377654894606213282493506567652669958464338099434131023"
+	"532342380354716890817886177034306313775574548031278141878295"
+	"980251853307150740536081553178646800560107856455481390160382"
+	"005461126866350869752876888962834360568840429704959648279120"
+	"254570425069854306995075705052164177031686333733533637409730"
+	"984494412360475557526051699665012526136673750101428368173353"
+	"692291950799667471134257499676684610182758435845702912870768"
+	"634362269004291803824464876008785139313163075651280377342747"
+	"514196839209631064363659625214193456598788316913732358910439"
+	"144944289890962417978739445105407297303138526378679343093624"
+	"793916741811475534377782218853134322959860449406077325705367"
+	"583234650794982848738379033597318010226151625248974524473699"
+	"941563637866604856552441632431065309199219150015729366397177"
+	"270609089591346091474506939150782160740711907964322876145597"
+	"395145650253317824445860465336707220824713684429363769920064"
+	"328717106332354307126419445673184428951466178635088943030837"
+	"800062385933485349971069564992754655393085948953856883512745"
+	"276808726026162095157115221834856892971964760467320232208335"
+	"588069531017474361045746982594856036396319417833033871766181"
+	"277368016889308069711197719469472302905853290440210418307024"
+	"687328533297123196506483109819531394653772296480087430315397"
+	"910124977426694468497871449032647123366969051087888029764547"
+	"456415615898945773195285528874803499674998405090778746309320"
+	"064107872403793733160110719300206260714233458242454046254281"
+	"635285667702843088958126476571787667820961524650778676508787"
+	"287657900313313469833862488641675238189345272301200116311311"
+	"303492219734822823456297208532453055880821528468347578839024"
+	"182302606029773658762919244232625769059672709989813876079805"
+	"901731987280611645667105082802031385796293908530864172849314"
+	"734765038966270760935051139880192249903989938642795205092207"
+	"952822973691541552895072989465910085758076040250451592417680"
+	"531245659592881584721257685461735599337168675230848625905522"
+	"537954644173568345921153170415953958626219568206031281995507"
+	"754830587823977775747100055764292205421357056446830465793611"
+	"273763808185723813453738631569497245609975712828305215965826"
+	"765053388068801916539196811808128141857281722046227535409567"
+	"591186285705821199833303929519850375909134041147203658893734"
+	"153755227136429729680819659989646998542009258703527635118557"
+	"461312447384232179849362403511141932531785089741645572777420"
+	"823800529533589278423940195407958568894264010164248006540849"
+	"160087103041996738567121092172708859342210949217088143091653"
+	"037148698668697189317909020017411070411852839836652652230104"
+	"488866928634364560949066615472075465717187751987781313900056"
+	"044708657100493771599807097662839308147951336602016088038303"
+	"870626870505976949769475176739700850740489054760418683992822"
+	"102108113039966954472254660236287017169543329420623006920875"
+	"061938087152339674093328885612297439387396288738175863458442"
+	"357873826429100480375666769347774936081994000132266037789617"
+	"679830658781791760994378526913815818404152940284873358141843"
+	"597059137957964030223538823290728128419992789364472918525589"
+	"681285724973674079560291263860105160408412185466402633325963"
+	"644349004773740071252405214227130755717722371864438087813957"
+	"049334824031598041404099084234710294086909715648810172537956"
+	"835325926716084588757074055943229897544714984821916277164996"
+	"230599856478631481011984609516445087451467976563225183485707"
+	"905749943922496442802923068967076792686823389362481124460494"
+	"704283461711793778132596522789732235020165930073010737247996"
+	"756585398791522224385870682607436284058126317337050038121079"
+	"280726961697763447828452886465665300624268272487877857547882"
+	"040348230983233787526246480631864102696170452823458479032723"
+	"578830127941292909511711557404847061107334262109213252422470"
+	"319474329457122819963756131151585297962065956542350731131832"
+	"291167683289866880335703968881847060958949006126601275397222"
+	"963545028494290493580535125944932141737036395266333000222605"
+	"399939949397684787800655350500300253367688419355690911939522"
+	"954187696262129926633159777279286294093780940318487461712750"
+	"226387000627400399639544234254491419528782664148814752549434"
+	"958379626065942049557661210343054447391632257569905575104963"
+	"151978577601750196863513705539558684739468547692356001818703"
+	"346520584228266295190510902524185553948226797601549646906331"
+	"357318702512537284414411278940348553578854011691588522553966"
+	"396992880818547561630476530111651734988588440593633173143253"
+	"379921189582756007503422520592416527801478723731289759302726"
+	"954132658111452941824189900172140279856850327867101851354527"
+	"960707100257512325083967625754750701218030688324551798845572"
+	"563961467133540032201733663397872597974240680973907443484971"
+	"336778877548334885936748221459115133124927658634325658911822"
+	"141900465275779942660530609582835893020640555401613806067868"
+	"906672403337819356286761270165163376232221193189950310375294"
+	"099272473556899577746566950896500458917467484114752398834619"
+	"916525324505134294351704317783999741553112682962362548172424"
+	"553203677298220235774592337715700123823027248783397252232365"
+	"244614123085588619381923187064661903176533571726773552842050"
+	"702937175388102506427999185259894275281676527853075648559301"
+	"546937519854064218673593564079625201315914443572667155686776"
+	"278611844814181954280005884447565767647080527522321087613093"
+	"707671162160338881533455590709990074927708052244965764744729"
+	"329916773586445274306248672389904320297548114968852625553081"
+	"569329154117394637312504479221081821827497192245673295726668"
+	"999970170051411272831657975091029205402438644968163990840352"
+	"384606029708844825109435893409052496506265196679891398538136"
+	"476438486282449805899794734239202159510526533092974155392673"
+	"110448209969504483783671382659657251334863763189986240759871"
+	"1389056234111194498836994171142578124e-4952",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x8p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x1.fffffffffffcp-16448L,
+	0x2p-16448L,
+	0x1.fffffffffffcp-16448L,
+	0x2p-16448L),
+  TEST ("9.1129988297061865063210148340485495409976270392339083593024"
+	"512175709292215834943420239017715645680129931183683680088277"
+	"549174640815550804249337701889745225137095564529448291964230"
+	"631595140838993915539064149585268223507994838838181714781019"
+	"998854320275387963459576151369217885561232382646492956705356"
+	"565551688308886521101701981493843492205658474297570333866605"
+	"298932345300005419066807300806935840975771140138244887971382"
+	"480306383029279087190728461573250887846318754007832114464683"
+	"664171452083726328092629849717599582714695998658062536715061"
+	"486659414671761410590867756059929866471508939201678361949569"
+	"105493407320443782389013421144031696166197712936581273093400"
+	"987818069535398834152409986110085052926337211200549444090110"
+	"947717190581225852922732363763307088865106375411776212774753"
+	"881242370509404376819363039948120731604116820734480620859463"
+	"053721188111541333511328522463373472526999986652124894823521"
+	"677055629197452315658307103340838430759142765166817775402542"
+	"424672713638170402336169639395588632161416761622732176576564"
+	"689048255479820989367151993310018548316769814664606197581315"
+	"042862562791300468342638911941746410076541796524707525552225"
+	"218810105957345303035393963179488682040705817772149861464367"
+	"875846321939885650620019792999548883603797914975087595720555"
+	"008891649198969277273442210230776269093622052361408012106817"
+	"903069953745909041514739880227089422181355813323880743747316"
+	"013769073985956031962404845484551938647636529313699033511745"
+	"442279141902356533018143182815187073441328510540492152576488"
+	"229985535798436239152483434901576880457556096136883541949311"
+	"550953165672585204177162938634659553875223901648885259822873"
+	"815598197021178988329613387166662012014085188285709633232513"
+	"061942105426273781618686365893871655369623538557877775965767"
+	"109785630310982604764603059355574307115163437126311616216384"
+	"242977475669012957189024924930269461826674503235685685987925"
+	"809774119784191955543740774385492835953479066971963899979438"
+	"211272068701163464704436181757668455872462574422571325034113"
+	"760130682177348501458144714636434216374798906646576252086802"
+	"190576650522584472987248024379770735540050259550986944302085"
+	"016537978874317385914557625547772714417301204338373972354274"
+	"419077120195935070346230688523551832885027881558371920399052"
+	"186032556413960972812515180755144550327091852825587440311130"
+	"369879274596217199708705082236031422718889130402045378780140"
+	"972327814060383227111423352378654611732272529152765871889754"
+	"120890173540735187244359494818495116869106087097802117296794"
+	"230636162657107764132729771811932156398134588213625909013771"
+	"355672989281159028330647620507547914707927109442806484197371"
+	"160282370564676895887174641137770747013214469567460313906231"
+	"863055876527311358559655058178010195688508347865329804729357"
+	"897103417200485899156841586760786011075803410294390125765035"
+	"920926599317258260436879683255022799187512419040453065369911"
+	"323428101759967597271722888176287261643418634944123527371986"
+	"991235954064415358673716302132700617408956418914644864212332"
+	"976051347071095204508969677769360451886970029662989435406797"
+	"409579245892705640914616364216092565465060838723454093018319"
+	"313458636362826625288516894137766424262510338430134251698122"
+	"005230434085183091834211200122610210349443542674137356176019"
+	"994661296545554711839281438920485832102187150591906236696737"
+	"090784511846412155988675390082958065319591301717494963485010"
+	"165932792068277883516946041506017760788778509260259389639323"
+	"482577101846088517553013799076262873998643533979247791914386"
+	"960081984502800508683707313453769958011319871060688162544921"
+	"322796577704456915961808005946752071556794084904878487842807"
+	"578404859150538520763286422764601209313650629444128511505177"
+	"823078798079410053668821705549172247884539912031329017420556"
+	"518079856488045326357586430559199198231719076822308881971367"
+	"856956096577769576676503111475982888204421007623288070328718"
+	"645608772303264875379950063930108312080388786177437812751905"
+	"584120030072202190891266365873672180818190597661476916755677"
+	"715854057980258925181834233866429689226159872122377094852588"
+	"295898990349864384447444388136549436618687954074375252286589"
+	"048125818566139866145014540017458695425579859498034933692028"
+	"762317180933725539105161577403467580031256943949510269316175"
+	"359789478610609381312994169116761450212882441190603620361337"
+	"401742128185995015738801892316215217037671976109410724436579"
+	"379380129538698961487878976867532145962342350850191560252504"
+	"588328537917104636518954376662039025472528325798776052476332"
+	"427970936224611080771416068440161969697007132497588046375640"
+	"310336775861665604288980226938462461877670282350726508356795"
+	"083014162348375615542992942120111083796673667263131651518958"
+	"304763295180814137547257343856489773685828509608384174334970"
+	"422481342457552997903572290775133733384303950144498613229418"
+	"397179849510232211865542364757577463809559424236059129650578"
+	"274637695590441751279797225383786991494466903311241791050376"
+	"488510955932598072576401976708615886006919314135648608248191"
+	"372656573811888893772800596985615900536551083040785709141896"
+	"296641372542336858585285155522688752251142239708098420366878"
+	"152586610030593201454626208011881281672071882478014556327250"
+	"829447091860808595318353098051073163872713705786832133739305"
+	"274057247245024850663340733036617513800734787932326379905451"
+	"641681281905937253230152460358472580273562222569806348116698"
+	"527056831689088216346583586087162394060010249474899626302057"
+	"768256926924131071156960064207129684139721916331135576180148"
+	"586965323299105282337234352989143787169680122112557687809323"
+	"099327979778140351718902363172319583042200757772513950642086"
+	"386297462185028482882268586936548025649697633305907484971486"
+	"223468552187182907218267776718819086234809172430906474927279"
+	"424906332107667190886359046554485179791303881091265489293005"
+	"803215603269635123264170125730831784388656332832186157145305"
+	"499039125566362759346764541205369778479271774262726853968049"
+	"190835636788762895037454777680406940517308675355872838184645"
+	"304120861875050177485053074785988569599549623179532516740082"
+	"254762377654894606213282493506567652669958464338099434131023"
+	"532342380354716890817886177034306313775574548031278141878295"
+	"980251853307150740536081553178646800560107856455481390160382"
+	"005461126866350869752876888962834360568840429704959648279120"
+	"254570425069854306995075705052164177031686333733533637409730"
+	"984494412360475557526051699665012526136673750101428368173353"
+	"692291950799667471134257499676684610182758435845702912870768"
+	"634362269004291803824464876008785139313163075651280377342747"
+	"514196839209631064363659625214193456598788316913732358910439"
+	"144944289890962417978739445105407297303138526378679343093624"
+	"793916741811475534377782218853134322959860449406077325705367"
+	"583234650794982848738379033597318010226151625248974524473699"
+	"941563637866604856552441632431065309199219150015729366397177"
+	"270609089591346091474506939150782160740711907964322876145597"
+	"395145650253317824445860465336707220824713684429363769920064"
+	"328717106332354307126419445673184428951466178635088943030837"
+	"800062385933485349971069564992754655393085948953856883512745"
+	"276808726026162095157115221834856892971964760467320232208335"
+	"588069531017474361045746982594856036396319417833033871766181"
+	"277368016889308069711197719469472302905853290440210418307024"
+	"687328533297123196506483109819531394653772296480087430315397"
+	"910124977426694468497871449032647123366969051087888029764547"
+	"456415615898945773195285528874803499674998405090778746309320"
+	"064107872403793733160110719300206260714233458242454046254281"
+	"635285667702843088958126476571787667820961524650778676508787"
+	"287657900313313469833862488641675238189345272301200116311311"
+	"303492219734822823456297208532453055880821528468347578839024"
+	"182302606029773658762919244232625769059672709989813876079805"
+	"901731987280611645667105082802031385796293908530864172849314"
+	"734765038966270760935051139880192249903989938642795205092207"
+	"952822973691541552895072989465910085758076040250451592417680"
+	"531245659592881584721257685461735599337168675230848625905522"
+	"537954644173568345921153170415953958626219568206031281995507"
+	"754830587823977775747100055764292205421357056446830465793611"
+	"273763808185723813453738631569497245609975712828305215965826"
+	"765053388068801916539196811808128141857281722046227535409567"
+	"591186285705821199833303929519850375909134041147203658893734"
+	"153755227136429729680819659989646998542009258703527635118557"
+	"461312447384232179849362403511141932531785089741645572777420"
+	"823800529533589278423940195407958568894264010164248006540849"
+	"160087103041996738567121092172708859342210949217088143091653"
+	"037148698668697189317909020017411070411852839836652652230104"
+	"488866928634364560949066615472075465717187751987781313900056"
+	"044708657100493771599807097662839308147951336602016088038303"
+	"870626870505976949769475176739700850740489054760418683992822"
+	"102108113039966954472254660236287017169543329420623006920875"
+	"061938087152339674093328885612297439387396288738175863458442"
+	"357873826429100480375666769347774936081994000132266037789617"
+	"679830658781791760994378526913815818404152940284873358141843"
+	"597059137957964030223538823290728128419992789364472918525589"
+	"681285724973674079560291263860105160408412185466402633325963"
+	"644349004773740071252405214227130755717722371864438087813957"
+	"049334824031598041404099084234710294086909715648810172537956"
+	"835325926716084588757074055943229897544714984821916277164996"
+	"230599856478631481011984609516445087451467976563225183485707"
+	"905749943922496442802923068967076792686823389362481124460494"
+	"704283461711793778132596522789732235020165930073010737247996"
+	"756585398791522224385870682607436284058126317337050038121079"
+	"280726961697763447828452886465665300624268272487877857547882"
+	"040348230983233787526246480631864102696170452823458479032723"
+	"578830127941292909511711557404847061107334262109213252422470"
+	"319474329457122819963756131151585297962065956542350731131832"
+	"291167683289866880335703968881847060958949006126601275397222"
+	"963545028494290493580535125944932141737036395266333000222605"
+	"399939949397684787800655350500300253367688419355690911939522"
+	"954187696262129926633159777279286294093780940318487461712750"
+	"226387000627400399639544234254491419528782664148814752549434"
+	"958379626065942049557661210343054447391632257569905575104963"
+	"151978577601750196863513705539558684739468547692356001818703"
+	"346520584228266295190510902524185553948226797601549646906331"
+	"357318702512537284414411278940348553578854011691588522553966"
+	"396992880818547561630476530111651734988588440593633173143253"
+	"379921189582756007503422520592416527801478723731289759302726"
+	"954132658111452941824189900172140279856850327867101851354527"
+	"960707100257512325083967625754750701218030688324551798845572"
+	"563961467133540032201733663397872597974240680973907443484971"
+	"336778877548334885936748221459115133124927658634325658911822"
+	"141900465275779942660530609582835893020640555401613806067868"
+	"906672403337819356286761270165163376232221193189950310375294"
+	"099272473556899577746566950896500458917467484114752398834619"
+	"916525324505134294351704317783999741553112682962362548172424"
+	"553203677298220235774592337715700123823027248783397252232365"
+	"244614123085588619381923187064661903176533571726773552842050"
+	"702937175388102506427999185259894275281676527853075648559301"
+	"546937519854064218673593564079625201315914443572667155686776"
+	"278611844814181954280005884447565767647080527522321087613093"
+	"707671162160338881533455590709990074927708052244965764744729"
+	"329916773586445274306248672389904320297548114968852625553081"
+	"569329154117394637312504479221081821827497192245673295726668"
+	"999970170051411272831657975091029205402438644968163990840352"
+	"384606029708844825109435893409052496506265196679891398538136"
+	"476438486282449805899794734239202159510526533092974155392673"
+	"110448209969504483783671382659657251334863763189986240759871"
+	"1389056234111194498836994171142578125e-4952",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x8p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	true,
+	0x2p-16448L,
+	0x2p-16448L,
+	0x2p-16448L,
+	0x2p-16448L),
+  TEST ("9.1129988297061865063210148340485495409976270392339083593024"
+	"512175709292215834943420239017715645680129931183683680088277"
+	"549174640815550804249337701889745225137095564529448291964230"
+	"631595140838993915539064149585268223507994838838181714781019"
+	"998854320275387963459576151369217885561232382646492956705356"
+	"565551688308886521101701981493843492205658474297570333866605"
+	"298932345300005419066807300806935840975771140138244887971382"
+	"480306383029279087190728461573250887846318754007832114464683"
+	"664171452083726328092629849717599582714695998658062536715061"
+	"486659414671761410590867756059929866471508939201678361949569"
+	"105493407320443782389013421144031696166197712936581273093400"
+	"987818069535398834152409986110085052926337211200549444090110"
+	"947717190581225852922732363763307088865106375411776212774753"
+	"881242370509404376819363039948120731604116820734480620859463"
+	"053721188111541333511328522463373472526999986652124894823521"
+	"677055629197452315658307103340838430759142765166817775402542"
+	"424672713638170402336169639395588632161416761622732176576564"
+	"689048255479820989367151993310018548316769814664606197581315"
+	"042862562791300468342638911941746410076541796524707525552225"
+	"218810105957345303035393963179488682040705817772149861464367"
+	"875846321939885650620019792999548883603797914975087595720555"
+	"008891649198969277273442210230776269093622052361408012106817"
+	"903069953745909041514739880227089422181355813323880743747316"
+	"013769073985956031962404845484551938647636529313699033511745"
+	"442279141902356533018143182815187073441328510540492152576488"
+	"229985535798436239152483434901576880457556096136883541949311"
+	"550953165672585204177162938634659553875223901648885259822873"
+	"815598197021178988329613387166662012014085188285709633232513"
+	"061942105426273781618686365893871655369623538557877775965767"
+	"109785630310982604764603059355574307115163437126311616216384"
+	"242977475669012957189024924930269461826674503235685685987925"
+	"809774119784191955543740774385492835953479066971963899979438"
+	"211272068701163464704436181757668455872462574422571325034113"
+	"760130682177348501458144714636434216374798906646576252086802"
+	"190576650522584472987248024379770735540050259550986944302085"
+	"016537978874317385914557625547772714417301204338373972354274"
+	"419077120195935070346230688523551832885027881558371920399052"
+	"186032556413960972812515180755144550327091852825587440311130"
+	"369879274596217199708705082236031422718889130402045378780140"
+	"972327814060383227111423352378654611732272529152765871889754"
+	"120890173540735187244359494818495116869106087097802117296794"
+	"230636162657107764132729771811932156398134588213625909013771"
+	"355672989281159028330647620507547914707927109442806484197371"
+	"160282370564676895887174641137770747013214469567460313906231"
+	"863055876527311358559655058178010195688508347865329804729357"
+	"897103417200485899156841586760786011075803410294390125765035"
+	"920926599317258260436879683255022799187512419040453065369911"
+	"323428101759967597271722888176287261643418634944123527371986"
+	"991235954064415358673716302132700617408956418914644864212332"
+	"976051347071095204508969677769360451886970029662989435406797"
+	"409579245892705640914616364216092565465060838723454093018319"
+	"313458636362826625288516894137766424262510338430134251698122"
+	"005230434085183091834211200122610210349443542674137356176019"
+	"994661296545554711839281438920485832102187150591906236696737"
+	"090784511846412155988675390082958065319591301717494963485010"
+	"165932792068277883516946041506017760788778509260259389639323"
+	"482577101846088517553013799076262873998643533979247791914386"
+	"960081984502800508683707313453769958011319871060688162544921"
+	"322796577704456915961808005946752071556794084904878487842807"
+	"578404859150538520763286422764601209313650629444128511505177"
+	"823078798079410053668821705549172247884539912031329017420556"
+	"518079856488045326357586430559199198231719076822308881971367"
+	"856956096577769576676503111475982888204421007623288070328718"
+	"645608772303264875379950063930108312080388786177437812751905"
+	"584120030072202190891266365873672180818190597661476916755677"
+	"715854057980258925181834233866429689226159872122377094852588"
+	"295898990349864384447444388136549436618687954074375252286589"
+	"048125818566139866145014540017458695425579859498034933692028"
+	"762317180933725539105161577403467580031256943949510269316175"
+	"359789478610609381312994169116761450212882441190603620361337"
+	"401742128185995015738801892316215217037671976109410724436579"
+	"379380129538698961487878976867532145962342350850191560252504"
+	"588328537917104636518954376662039025472528325798776052476332"
+	"427970936224611080771416068440161969697007132497588046375640"
+	"310336775861665604288980226938462461877670282350726508356795"
+	"083014162348375615542992942120111083796673667263131651518958"
+	"304763295180814137547257343856489773685828509608384174334970"
+	"422481342457552997903572290775133733384303950144498613229418"
+	"397179849510232211865542364757577463809559424236059129650578"
+	"274637695590441751279797225383786991494466903311241791050376"
+	"488510955932598072576401976708615886006919314135648608248191"
+	"372656573811888893772800596985615900536551083040785709141896"
+	"296641372542336858585285155522688752251142239708098420366878"
+	"152586610030593201454626208011881281672071882478014556327250"
+	"829447091860808595318353098051073163872713705786832133739305"
+	"274057247245024850663340733036617513800734787932326379905451"
+	"641681281905937253230152460358472580273562222569806348116698"
+	"527056831689088216346583586087162394060010249474899626302057"
+	"768256926924131071156960064207129684139721916331135576180148"
+	"586965323299105282337234352989143787169680122112557687809323"
+	"099327979778140351718902363172319583042200757772513950642086"
+	"386297462185028482882268586936548025649697633305907484971486"
+	"223468552187182907218267776718819086234809172430906474927279"
+	"424906332107667190886359046554485179791303881091265489293005"
+	"803215603269635123264170125730831784388656332832186157145305"
+	"499039125566362759346764541205369778479271774262726853968049"
+	"190835636788762895037454777680406940517308675355872838184645"
+	"304120861875050177485053074785988569599549623179532516740082"
+	"254762377654894606213282493506567652669958464338099434131023"
+	"532342380354716890817886177034306313775574548031278141878295"
+	"980251853307150740536081553178646800560107856455481390160382"
+	"005461126866350869752876888962834360568840429704959648279120"
+	"254570425069854306995075705052164177031686333733533637409730"
+	"984494412360475557526051699665012526136673750101428368173353"
+	"692291950799667471134257499676684610182758435845702912870768"
+	"634362269004291803824464876008785139313163075651280377342747"
+	"514196839209631064363659625214193456598788316913732358910439"
+	"144944289890962417978739445105407297303138526378679343093624"
+	"793916741811475534377782218853134322959860449406077325705367"
+	"583234650794982848738379033597318010226151625248974524473699"
+	"941563637866604856552441632431065309199219150015729366397177"
+	"270609089591346091474506939150782160740711907964322876145597"
+	"395145650253317824445860465336707220824713684429363769920064"
+	"328717106332354307126419445673184428951466178635088943030837"
+	"800062385933485349971069564992754655393085948953856883512745"
+	"276808726026162095157115221834856892971964760467320232208335"
+	"588069531017474361045746982594856036396319417833033871766181"
+	"277368016889308069711197719469472302905853290440210418307024"
+	"687328533297123196506483109819531394653772296480087430315397"
+	"910124977426694468497871449032647123366969051087888029764547"
+	"456415615898945773195285528874803499674998405090778746309320"
+	"064107872403793733160110719300206260714233458242454046254281"
+	"635285667702843088958126476571787667820961524650778676508787"
+	"287657900313313469833862488641675238189345272301200116311311"
+	"303492219734822823456297208532453055880821528468347578839024"
+	"182302606029773658762919244232625769059672709989813876079805"
+	"901731987280611645667105082802031385796293908530864172849314"
+	"734765038966270760935051139880192249903989938642795205092207"
+	"952822973691541552895072989465910085758076040250451592417680"
+	"531245659592881584721257685461735599337168675230848625905522"
+	"537954644173568345921153170415953958626219568206031281995507"
+	"754830587823977775747100055764292205421357056446830465793611"
+	"273763808185723813453738631569497245609975712828305215965826"
+	"765053388068801916539196811808128141857281722046227535409567"
+	"591186285705821199833303929519850375909134041147203658893734"
+	"153755227136429729680819659989646998542009258703527635118557"
+	"461312447384232179849362403511141932531785089741645572777420"
+	"823800529533589278423940195407958568894264010164248006540849"
+	"160087103041996738567121092172708859342210949217088143091653"
+	"037148698668697189317909020017411070411852839836652652230104"
+	"488866928634364560949066615472075465717187751987781313900056"
+	"044708657100493771599807097662839308147951336602016088038303"
+	"870626870505976949769475176739700850740489054760418683992822"
+	"102108113039966954472254660236287017169543329420623006920875"
+	"061938087152339674093328885612297439387396288738175863458442"
+	"357873826429100480375666769347774936081994000132266037789617"
+	"679830658781791760994378526913815818404152940284873358141843"
+	"597059137957964030223538823290728128419992789364472918525589"
+	"681285724973674079560291263860105160408412185466402633325963"
+	"644349004773740071252405214227130755717722371864438087813957"
+	"049334824031598041404099084234710294086909715648810172537956"
+	"835325926716084588757074055943229897544714984821916277164996"
+	"230599856478631481011984609516445087451467976563225183485707"
+	"905749943922496442802923068967076792686823389362481124460494"
+	"704283461711793778132596522789732235020165930073010737247996"
+	"756585398791522224385870682607436284058126317337050038121079"
+	"280726961697763447828452886465665300624268272487877857547882"
+	"040348230983233787526246480631864102696170452823458479032723"
+	"578830127941292909511711557404847061107334262109213252422470"
+	"319474329457122819963756131151585297962065956542350731131832"
+	"291167683289866880335703968881847060958949006126601275397222"
+	"963545028494290493580535125944932141737036395266333000222605"
+	"399939949397684787800655350500300253367688419355690911939522"
+	"954187696262129926633159777279286294093780940318487461712750"
+	"226387000627400399639544234254491419528782664148814752549434"
+	"958379626065942049557661210343054447391632257569905575104963"
+	"151978577601750196863513705539558684739468547692356001818703"
+	"346520584228266295190510902524185553948226797601549646906331"
+	"357318702512537284414411278940348553578854011691588522553966"
+	"396992880818547561630476530111651734988588440593633173143253"
+	"379921189582756007503422520592416527801478723731289759302726"
+	"954132658111452941824189900172140279856850327867101851354527"
+	"960707100257512325083967625754750701218030688324551798845572"
+	"563961467133540032201733663397872597974240680973907443484971"
+	"336778877548334885936748221459115133124927658634325658911822"
+	"141900465275779942660530609582835893020640555401613806067868"
+	"906672403337819356286761270165163376232221193189950310375294"
+	"099272473556899577746566950896500458917467484114752398834619"
+	"916525324505134294351704317783999741553112682962362548172424"
+	"553203677298220235774592337715700123823027248783397252232365"
+	"244614123085588619381923187064661903176533571726773552842050"
+	"702937175388102506427999185259894275281676527853075648559301"
+	"546937519854064218673593564079625201315914443572667155686776"
+	"278611844814181954280005884447565767647080527522321087613093"
+	"707671162160338881533455590709990074927708052244965764744729"
+	"329916773586445274306248672389904320297548114968852625553081"
+	"569329154117394637312504479221081821827497192245673295726668"
+	"999970170051411272831657975091029205402438644968163990840352"
+	"384606029708844825109435893409052496506265196679891398538136"
+	"476438486282449805899794734239202159510526533092974155392673"
+	"110448209969504483783671382659657251334863763189986240759871"
+	"1389056234111194498836994171142578126e-4952",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x8p-16448L,
+	false,
+	0x0p+0L,
+	0x4p-16448L,
+	0x0p+0L,
+	0x4p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x2p-16448L,
+	0x2p-16448L,
+	0x2p-16448L,
+	0x2.000000000004p-16448L),
+  TEST ("-9.112998829706186506321014834048549540997627039233908359302"
+	"451217570929221583494342023901771564568012993118368368008827"
+	"754917464081555080424933770188974522513709556452944829196423"
+	"063159514083899391553906414958526822350799483883818171478101"
+	"999885432027538796345957615136921788556123238264649295670535"
+	"656555168830888652110170198149384349220565847429757033386660"
+	"529893234530000541906680730080693584097577114013824488797138"
+	"248030638302927908719072846157325088784631875400783211446468"
+	"366417145208372632809262984971759958271469599865806253671506"
+	"148665941467176141059086775605992986647150893920167836194956"
+	"910549340732044378238901342114403169616619771293658127309340"
+	"098781806953539883415240998611008505292633721120054944409011"
+	"094771719058122585292273236376330708886510637541177621277475"
+	"388124237050940437681936303994812073160411682073448062085946"
+	"305372118811154133351132852246337347252699998665212489482352"
+	"167705562919745231565830710334083843075914276516681777540254"
+	"242467271363817040233616963939558863216141676162273217657656"
+	"468904825547982098936715199331001854831676981466460619758131"
+	"504286256279130046834263891194174641007654179652470752555222"
+	"521881010595734530303539396317948868204070581777214986146436"
+	"787584632193988565062001979299954888360379791497508759572055"
+	"500889164919896927727344221023077626909362205236140801210681"
+	"790306995374590904151473988022708942218135581332388074374731"
+	"601376907398595603196240484548455193864763652931369903351174"
+	"544227914190235653301814318281518707344132851054049215257648"
+	"822998553579843623915248343490157688045755609613688354194931"
+	"155095316567258520417716293863465955387522390164888525982287"
+	"381559819702117898832961338716666201201408518828570963323251"
+	"306194210542627378161868636589387165536962353855787777596576"
+	"710978563031098260476460305935557430711516343712631161621638"
+	"424297747566901295718902492493026946182667450323568568598792"
+	"580977411978419195554374077438549283595347906697196389997943"
+	"821127206870116346470443618175766845587246257442257132503411"
+	"376013068217734850145814471463643421637479890664657625208680"
+	"219057665052258447298724802437977073554005025955098694430208"
+	"501653797887431738591455762554777271441730120433837397235427"
+	"441907712019593507034623068852355183288502788155837192039905"
+	"218603255641396097281251518075514455032709185282558744031113"
+	"036987927459621719970870508223603142271888913040204537878014"
+	"097232781406038322711142335237865461173227252915276587188975"
+	"412089017354073518724435949481849511686910608709780211729679"
+	"423063616265710776413272977181193215639813458821362590901377"
+	"135567298928115902833064762050754791470792710944280648419737"
+	"116028237056467689588717464113777074701321446956746031390623"
+	"186305587652731135855965505817801019568850834786532980472935"
+	"789710341720048589915684158676078601107580341029439012576503"
+	"592092659931725826043687968325502279918751241904045306536991"
+	"132342810175996759727172288817628726164341863494412352737198"
+	"699123595406441535867371630213270061740895641891464486421233"
+	"297605134707109520450896967776936045188697002966298943540679"
+	"740957924589270564091461636421609256546506083872345409301831"
+	"931345863636282662528851689413776642426251033843013425169812"
+	"200523043408518309183421120012261021034944354267413735617601"
+	"999466129654555471183928143892048583210218715059190623669673"
+	"709078451184641215598867539008295806531959130171749496348501"
+	"016593279206827788351694604150601776078877850926025938963932"
+	"348257710184608851755301379907626287399864353397924779191438"
+	"696008198450280050868370731345376995801131987106068816254492"
+	"132279657770445691596180800594675207155679408490487848784280"
+	"757840485915053852076328642276460120931365062944412851150517"
+	"782307879807941005366882170554917224788453991203132901742055"
+	"651807985648804532635758643055919919823171907682230888197136"
+	"785695609657776957667650311147598288820442100762328807032871"
+	"864560877230326487537995006393010831208038878617743781275190"
+	"558412003007220219089126636587367218081819059766147691675567"
+	"771585405798025892518183423386642968922615987212237709485258"
+	"829589899034986438444744438813654943661868795407437525228658"
+	"904812581856613986614501454001745869542557985949803493369202"
+	"876231718093372553910516157740346758003125694394951026931617"
+	"535978947861060938131299416911676145021288244119060362036133"
+	"740174212818599501573880189231621521703767197610941072443657"
+	"937938012953869896148787897686753214596234235085019156025250"
+	"458832853791710463651895437666203902547252832579877605247633"
+	"242797093622461108077141606844016196969700713249758804637564"
+	"031033677586166560428898022693846246187767028235072650835679"
+	"508301416234837561554299294212011108379667366726313165151895"
+	"830476329518081413754725734385648977368582850960838417433497"
+	"042248134245755299790357229077513373338430395014449861322941"
+	"839717984951023221186554236475757746380955942423605912965057"
+	"827463769559044175127979722538378699149446690331124179105037"
+	"648851095593259807257640197670861588600691931413564860824819"
+	"137265657381188889377280059698561590053655108304078570914189"
+	"629664137254233685858528515552268875225114223970809842036687"
+	"815258661003059320145462620801188128167207188247801455632725"
+	"082944709186080859531835309805107316387271370578683213373930"
+	"527405724724502485066334073303661751380073478793232637990545"
+	"164168128190593725323015246035847258027356222256980634811669"
+	"852705683168908821634658358608716239406001024947489962630205"
+	"776825692692413107115696006420712968413972191633113557618014"
+	"858696532329910528233723435298914378716968012211255768780932"
+	"309932797977814035171890236317231958304220075777251395064208"
+	"638629746218502848288226858693654802564969763330590748497148"
+	"622346855218718290721826777671881908623480917243090647492727"
+	"942490633210766719088635904655448517979130388109126548929300"
+	"580321560326963512326417012573083178438865633283218615714530"
+	"549903912556636275934676454120536977847927177426272685396804"
+	"919083563678876289503745477768040694051730867535587283818464"
+	"530412086187505017748505307478598856959954962317953251674008"
+	"225476237765489460621328249350656765266995846433809943413102"
+	"353234238035471689081788617703430631377557454803127814187829"
+	"598025185330715074053608155317864680056010785645548139016038"
+	"200546112686635086975287688896283436056884042970495964827912"
+	"025457042506985430699507570505216417703168633373353363740973"
+	"098449441236047555752605169966501252613667375010142836817335"
+	"369229195079966747113425749967668461018275843584570291287076"
+	"863436226900429180382446487600878513931316307565128037734274"
+	"751419683920963106436365962521419345659878831691373235891043"
+	"914494428989096241797873944510540729730313852637867934309362"
+	"479391674181147553437778221885313432295986044940607732570536"
+	"758323465079498284873837903359731801022615162524897452447369"
+	"994156363786660485655244163243106530919921915001572936639717"
+	"727060908959134609147450693915078216074071190796432287614559"
+	"739514565025331782444586046533670722082471368442936376992006"
+	"432871710633235430712641944567318442895146617863508894303083"
+	"780006238593348534997106956499275465539308594895385688351274"
+	"527680872602616209515711522183485689297196476046732023220833"
+	"558806953101747436104574698259485603639631941783303387176618"
+	"127736801688930806971119771946947230290585329044021041830702"
+	"468732853329712319650648310981953139465377229648008743031539"
+	"791012497742669446849787144903264712336696905108788802976454"
+	"745641561589894577319528552887480349967499840509077874630932"
+	"006410787240379373316011071930020626071423345824245404625428"
+	"163528566770284308895812647657178766782096152465077867650878"
+	"728765790031331346983386248864167523818934527230120011631131"
+	"130349221973482282345629720853245305588082152846834757883902"
+	"418230260602977365876291924423262576905967270998981387607980"
+	"590173198728061164566710508280203138579629390853086417284931"
+	"473476503896627076093505113988019224990398993864279520509220"
+	"795282297369154155289507298946591008575807604025045159241768"
+	"053124565959288158472125768546173559933716867523084862590552"
+	"253795464417356834592115317041595395862621956820603128199550"
+	"775483058782397777574710005576429220542135705644683046579361"
+	"127376380818572381345373863156949724560997571282830521596582"
+	"676505338806880191653919681180812814185728172204622753540956"
+	"759118628570582119983330392951985037590913404114720365889373"
+	"415375522713642972968081965998964699854200925870352763511855"
+	"746131244738423217984936240351114193253178508974164557277742"
+	"082380052953358927842394019540795856889426401016424800654084"
+	"916008710304199673856712109217270885934221094921708814309165"
+	"303714869866869718931790902001741107041185283983665265223010"
+	"448886692863436456094906661547207546571718775198778131390005"
+	"604470865710049377159980709766283930814795133660201608803830"
+	"387062687050597694976947517673970085074048905476041868399282"
+	"210210811303996695447225466023628701716954332942062300692087"
+	"506193808715233967409332888561229743938739628873817586345844"
+	"235787382642910048037566676934777493608199400013226603778961"
+	"767983065878179176099437852691381581840415294028487335814184"
+	"359705913795796403022353882329072812841999278936447291852558"
+	"968128572497367407956029126386010516040841218546640263332596"
+	"364434900477374007125240521422713075571772237186443808781395"
+	"704933482403159804140409908423471029408690971564881017253795"
+	"683532592671608458875707405594322989754471498482191627716499"
+	"623059985647863148101198460951644508745146797656322518348570"
+	"790574994392249644280292306896707679268682338936248112446049"
+	"470428346171179377813259652278973223502016593007301073724799"
+	"675658539879152222438587068260743628405812631733705003812107"
+	"928072696169776344782845288646566530062426827248787785754788"
+	"204034823098323378752624648063186410269617045282345847903272"
+	"357883012794129290951171155740484706110733426210921325242247"
+	"031947432945712281996375613115158529796206595654235073113183"
+	"229116768328986688033570396888184706095894900612660127539722"
+	"296354502849429049358053512594493214173703639526633300022260"
+	"539993994939768478780065535050030025336768841935569091193952"
+	"295418769626212992663315977727928629409378094031848746171275"
+	"022638700062740039963954423425449141952878266414881475254943"
+	"495837962606594204955766121034305444739163225756990557510496"
+	"315197857760175019686351370553955868473946854769235600181870"
+	"334652058422826629519051090252418555394822679760154964690633"
+	"135731870251253728441441127894034855357885401169158852255396"
+	"639699288081854756163047653011165173498858844059363317314325"
+	"337992118958275600750342252059241652780147872373128975930272"
+	"695413265811145294182418990017214027985685032786710185135452"
+	"796070710025751232508396762575475070121803068832455179884557"
+	"256396146713354003220173366339787259797424068097390744348497"
+	"133677887754833488593674822145911513312492765863432565891182"
+	"214190046527577994266053060958283589302064055540161380606786"
+	"890667240333781935628676127016516337623222119318995031037529"
+	"409927247355689957774656695089650045891746748411475239883461"
+	"991652532450513429435170431778399974155311268296236254817242"
+	"455320367729822023577459233771570012382302724878339725223236"
+	"524461412308558861938192318706466190317653357172677355284205"
+	"070293717538810250642799918525989427528167652785307564855930"
+	"154693751985406421867359356407962520131591444357266715568677"
+	"627861184481418195428000588444756576764708052752232108761309"
+	"370767116216033888153345559070999007492770805224496576474472"
+	"932991677358644527430624867238990432029754811496885262555308"
+	"156932915411739463731250447922108182182749719224567329572666"
+	"899997017005141127283165797509102920540243864496816399084035"
+	"238460602970884482510943589340905249650626519667989139853813"
+	"647643848628244980589979473423920215951052653309297415539267"
+	"311044820996950448378367138265965725133486376318998624075987"
+	"11389056234111194498836994171142578124e-4952",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x2p-16448L,
+	-0x2p-16448L,
+	-0x1.fffffffffffcp-16448L,
+	-0x1.fffffffffffcp-16448L),
+  TEST ("-9.112998829706186506321014834048549540997627039233908359302"
+	"451217570929221583494342023901771564568012993118368368008827"
+	"754917464081555080424933770188974522513709556452944829196423"
+	"063159514083899391553906414958526822350799483883818171478101"
+	"999885432027538796345957615136921788556123238264649295670535"
+	"656555168830888652110170198149384349220565847429757033386660"
+	"529893234530000541906680730080693584097577114013824488797138"
+	"248030638302927908719072846157325088784631875400783211446468"
+	"366417145208372632809262984971759958271469599865806253671506"
+	"148665941467176141059086775605992986647150893920167836194956"
+	"910549340732044378238901342114403169616619771293658127309340"
+	"098781806953539883415240998611008505292633721120054944409011"
+	"094771719058122585292273236376330708886510637541177621277475"
+	"388124237050940437681936303994812073160411682073448062085946"
+	"305372118811154133351132852246337347252699998665212489482352"
+	"167705562919745231565830710334083843075914276516681777540254"
+	"242467271363817040233616963939558863216141676162273217657656"
+	"468904825547982098936715199331001854831676981466460619758131"
+	"504286256279130046834263891194174641007654179652470752555222"
+	"521881010595734530303539396317948868204070581777214986146436"
+	"787584632193988565062001979299954888360379791497508759572055"
+	"500889164919896927727344221023077626909362205236140801210681"
+	"790306995374590904151473988022708942218135581332388074374731"
+	"601376907398595603196240484548455193864763652931369903351174"
+	"544227914190235653301814318281518707344132851054049215257648"
+	"822998553579843623915248343490157688045755609613688354194931"
+	"155095316567258520417716293863465955387522390164888525982287"
+	"381559819702117898832961338716666201201408518828570963323251"
+	"306194210542627378161868636589387165536962353855787777596576"
+	"710978563031098260476460305935557430711516343712631161621638"
+	"424297747566901295718902492493026946182667450323568568598792"
+	"580977411978419195554374077438549283595347906697196389997943"
+	"821127206870116346470443618175766845587246257442257132503411"
+	"376013068217734850145814471463643421637479890664657625208680"
+	"219057665052258447298724802437977073554005025955098694430208"
+	"501653797887431738591455762554777271441730120433837397235427"
+	"441907712019593507034623068852355183288502788155837192039905"
+	"218603255641396097281251518075514455032709185282558744031113"
+	"036987927459621719970870508223603142271888913040204537878014"
+	"097232781406038322711142335237865461173227252915276587188975"
+	"412089017354073518724435949481849511686910608709780211729679"
+	"423063616265710776413272977181193215639813458821362590901377"
+	"135567298928115902833064762050754791470792710944280648419737"
+	"116028237056467689588717464113777074701321446956746031390623"
+	"186305587652731135855965505817801019568850834786532980472935"
+	"789710341720048589915684158676078601107580341029439012576503"
+	"592092659931725826043687968325502279918751241904045306536991"
+	"132342810175996759727172288817628726164341863494412352737198"
+	"699123595406441535867371630213270061740895641891464486421233"
+	"297605134707109520450896967776936045188697002966298943540679"
+	"740957924589270564091461636421609256546506083872345409301831"
+	"931345863636282662528851689413776642426251033843013425169812"
+	"200523043408518309183421120012261021034944354267413735617601"
+	"999466129654555471183928143892048583210218715059190623669673"
+	"709078451184641215598867539008295806531959130171749496348501"
+	"016593279206827788351694604150601776078877850926025938963932"
+	"348257710184608851755301379907626287399864353397924779191438"
+	"696008198450280050868370731345376995801131987106068816254492"
+	"132279657770445691596180800594675207155679408490487848784280"
+	"757840485915053852076328642276460120931365062944412851150517"
+	"782307879807941005366882170554917224788453991203132901742055"
+	"651807985648804532635758643055919919823171907682230888197136"
+	"785695609657776957667650311147598288820442100762328807032871"
+	"864560877230326487537995006393010831208038878617743781275190"
+	"558412003007220219089126636587367218081819059766147691675567"
+	"771585405798025892518183423386642968922615987212237709485258"
+	"829589899034986438444744438813654943661868795407437525228658"
+	"904812581856613986614501454001745869542557985949803493369202"
+	"876231718093372553910516157740346758003125694394951026931617"
+	"535978947861060938131299416911676145021288244119060362036133"
+	"740174212818599501573880189231621521703767197610941072443657"
+	"937938012953869896148787897686753214596234235085019156025250"
+	"458832853791710463651895437666203902547252832579877605247633"
+	"242797093622461108077141606844016196969700713249758804637564"
+	"031033677586166560428898022693846246187767028235072650835679"
+	"508301416234837561554299294212011108379667366726313165151895"
+	"830476329518081413754725734385648977368582850960838417433497"
+	"042248134245755299790357229077513373338430395014449861322941"
+	"839717984951023221186554236475757746380955942423605912965057"
+	"827463769559044175127979722538378699149446690331124179105037"
+	"648851095593259807257640197670861588600691931413564860824819"
+	"137265657381188889377280059698561590053655108304078570914189"
+	"629664137254233685858528515552268875225114223970809842036687"
+	"815258661003059320145462620801188128167207188247801455632725"
+	"082944709186080859531835309805107316387271370578683213373930"
+	"527405724724502485066334073303661751380073478793232637990545"
+	"164168128190593725323015246035847258027356222256980634811669"
+	"852705683168908821634658358608716239406001024947489962630205"
+	"776825692692413107115696006420712968413972191633113557618014"
+	"858696532329910528233723435298914378716968012211255768780932"
+	"309932797977814035171890236317231958304220075777251395064208"
+	"638629746218502848288226858693654802564969763330590748497148"
+	"622346855218718290721826777671881908623480917243090647492727"
+	"942490633210766719088635904655448517979130388109126548929300"
+	"580321560326963512326417012573083178438865633283218615714530"
+	"549903912556636275934676454120536977847927177426272685396804"
+	"919083563678876289503745477768040694051730867535587283818464"
+	"530412086187505017748505307478598856959954962317953251674008"
+	"225476237765489460621328249350656765266995846433809943413102"
+	"353234238035471689081788617703430631377557454803127814187829"
+	"598025185330715074053608155317864680056010785645548139016038"
+	"200546112686635086975287688896283436056884042970495964827912"
+	"025457042506985430699507570505216417703168633373353363740973"
+	"098449441236047555752605169966501252613667375010142836817335"
+	"369229195079966747113425749967668461018275843584570291287076"
+	"863436226900429180382446487600878513931316307565128037734274"
+	"751419683920963106436365962521419345659878831691373235891043"
+	"914494428989096241797873944510540729730313852637867934309362"
+	"479391674181147553437778221885313432295986044940607732570536"
+	"758323465079498284873837903359731801022615162524897452447369"
+	"994156363786660485655244163243106530919921915001572936639717"
+	"727060908959134609147450693915078216074071190796432287614559"
+	"739514565025331782444586046533670722082471368442936376992006"
+	"432871710633235430712641944567318442895146617863508894303083"
+	"780006238593348534997106956499275465539308594895385688351274"
+	"527680872602616209515711522183485689297196476046732023220833"
+	"558806953101747436104574698259485603639631941783303387176618"
+	"127736801688930806971119771946947230290585329044021041830702"
+	"468732853329712319650648310981953139465377229648008743031539"
+	"791012497742669446849787144903264712336696905108788802976454"
+	"745641561589894577319528552887480349967499840509077874630932"
+	"006410787240379373316011071930020626071423345824245404625428"
+	"163528566770284308895812647657178766782096152465077867650878"
+	"728765790031331346983386248864167523818934527230120011631131"
+	"130349221973482282345629720853245305588082152846834757883902"
+	"418230260602977365876291924423262576905967270998981387607980"
+	"590173198728061164566710508280203138579629390853086417284931"
+	"473476503896627076093505113988019224990398993864279520509220"
+	"795282297369154155289507298946591008575807604025045159241768"
+	"053124565959288158472125768546173559933716867523084862590552"
+	"253795464417356834592115317041595395862621956820603128199550"
+	"775483058782397777574710005576429220542135705644683046579361"
+	"127376380818572381345373863156949724560997571282830521596582"
+	"676505338806880191653919681180812814185728172204622753540956"
+	"759118628570582119983330392951985037590913404114720365889373"
+	"415375522713642972968081965998964699854200925870352763511855"
+	"746131244738423217984936240351114193253178508974164557277742"
+	"082380052953358927842394019540795856889426401016424800654084"
+	"916008710304199673856712109217270885934221094921708814309165"
+	"303714869866869718931790902001741107041185283983665265223010"
+	"448886692863436456094906661547207546571718775198778131390005"
+	"604470865710049377159980709766283930814795133660201608803830"
+	"387062687050597694976947517673970085074048905476041868399282"
+	"210210811303996695447225466023628701716954332942062300692087"
+	"506193808715233967409332888561229743938739628873817586345844"
+	"235787382642910048037566676934777493608199400013226603778961"
+	"767983065878179176099437852691381581840415294028487335814184"
+	"359705913795796403022353882329072812841999278936447291852558"
+	"968128572497367407956029126386010516040841218546640263332596"
+	"364434900477374007125240521422713075571772237186443808781395"
+	"704933482403159804140409908423471029408690971564881017253795"
+	"683532592671608458875707405594322989754471498482191627716499"
+	"623059985647863148101198460951644508745146797656322518348570"
+	"790574994392249644280292306896707679268682338936248112446049"
+	"470428346171179377813259652278973223502016593007301073724799"
+	"675658539879152222438587068260743628405812631733705003812107"
+	"928072696169776344782845288646566530062426827248787785754788"
+	"204034823098323378752624648063186410269617045282345847903272"
+	"357883012794129290951171155740484706110733426210921325242247"
+	"031947432945712281996375613115158529796206595654235073113183"
+	"229116768328986688033570396888184706095894900612660127539722"
+	"296354502849429049358053512594493214173703639526633300022260"
+	"539993994939768478780065535050030025336768841935569091193952"
+	"295418769626212992663315977727928629409378094031848746171275"
+	"022638700062740039963954423425449141952878266414881475254943"
+	"495837962606594204955766121034305444739163225756990557510496"
+	"315197857760175019686351370553955868473946854769235600181870"
+	"334652058422826629519051090252418555394822679760154964690633"
+	"135731870251253728441441127894034855357885401169158852255396"
+	"639699288081854756163047653011165173498858844059363317314325"
+	"337992118958275600750342252059241652780147872373128975930272"
+	"695413265811145294182418990017214027985685032786710185135452"
+	"796070710025751232508396762575475070121803068832455179884557"
+	"256396146713354003220173366339787259797424068097390744348497"
+	"133677887754833488593674822145911513312492765863432565891182"
+	"214190046527577994266053060958283589302064055540161380606786"
+	"890667240333781935628676127016516337623222119318995031037529"
+	"409927247355689957774656695089650045891746748411475239883461"
+	"991652532450513429435170431778399974155311268296236254817242"
+	"455320367729822023577459233771570012382302724878339725223236"
+	"524461412308558861938192318706466190317653357172677355284205"
+	"070293717538810250642799918525989427528167652785307564855930"
+	"154693751985406421867359356407962520131591444357266715568677"
+	"627861184481418195428000588444756576764708052752232108761309"
+	"370767116216033888153345559070999007492770805224496576474472"
+	"932991677358644527430624867238990432029754811496885262555308"
+	"156932915411739463731250447922108182182749719224567329572666"
+	"899997017005141127283165797509102920540243864496816399084035"
+	"238460602970884482510943589340905249650626519667989139853813"
+	"647643848628244980589979473423920215951052653309297415539267"
+	"311044820996950448378367138265965725133486376318998624075987"
+	"11389056234111194498836994171142578125e-4952",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	true,
+	-0x2p-16448L,
+	-0x2p-16448L,
+	-0x2p-16448L,
+	-0x2p-16448L),
+  TEST ("-9.112998829706186506321014834048549540997627039233908359302"
+	"451217570929221583494342023901771564568012993118368368008827"
+	"754917464081555080424933770188974522513709556452944829196423"
+	"063159514083899391553906414958526822350799483883818171478101"
+	"999885432027538796345957615136921788556123238264649295670535"
+	"656555168830888652110170198149384349220565847429757033386660"
+	"529893234530000541906680730080693584097577114013824488797138"
+	"248030638302927908719072846157325088784631875400783211446468"
+	"366417145208372632809262984971759958271469599865806253671506"
+	"148665941467176141059086775605992986647150893920167836194956"
+	"910549340732044378238901342114403169616619771293658127309340"
+	"098781806953539883415240998611008505292633721120054944409011"
+	"094771719058122585292273236376330708886510637541177621277475"
+	"388124237050940437681936303994812073160411682073448062085946"
+	"305372118811154133351132852246337347252699998665212489482352"
+	"167705562919745231565830710334083843075914276516681777540254"
+	"242467271363817040233616963939558863216141676162273217657656"
+	"468904825547982098936715199331001854831676981466460619758131"
+	"504286256279130046834263891194174641007654179652470752555222"
+	"521881010595734530303539396317948868204070581777214986146436"
+	"787584632193988565062001979299954888360379791497508759572055"
+	"500889164919896927727344221023077626909362205236140801210681"
+	"790306995374590904151473988022708942218135581332388074374731"
+	"601376907398595603196240484548455193864763652931369903351174"
+	"544227914190235653301814318281518707344132851054049215257648"
+	"822998553579843623915248343490157688045755609613688354194931"
+	"155095316567258520417716293863465955387522390164888525982287"
+	"381559819702117898832961338716666201201408518828570963323251"
+	"306194210542627378161868636589387165536962353855787777596576"
+	"710978563031098260476460305935557430711516343712631161621638"
+	"424297747566901295718902492493026946182667450323568568598792"
+	"580977411978419195554374077438549283595347906697196389997943"
+	"821127206870116346470443618175766845587246257442257132503411"
+	"376013068217734850145814471463643421637479890664657625208680"
+	"219057665052258447298724802437977073554005025955098694430208"
+	"501653797887431738591455762554777271441730120433837397235427"
+	"441907712019593507034623068852355183288502788155837192039905"
+	"218603255641396097281251518075514455032709185282558744031113"
+	"036987927459621719970870508223603142271888913040204537878014"
+	"097232781406038322711142335237865461173227252915276587188975"
+	"412089017354073518724435949481849511686910608709780211729679"
+	"423063616265710776413272977181193215639813458821362590901377"
+	"135567298928115902833064762050754791470792710944280648419737"
+	"116028237056467689588717464113777074701321446956746031390623"
+	"186305587652731135855965505817801019568850834786532980472935"
+	"789710341720048589915684158676078601107580341029439012576503"
+	"592092659931725826043687968325502279918751241904045306536991"
+	"132342810175996759727172288817628726164341863494412352737198"
+	"699123595406441535867371630213270061740895641891464486421233"
+	"297605134707109520450896967776936045188697002966298943540679"
+	"740957924589270564091461636421609256546506083872345409301831"
+	"931345863636282662528851689413776642426251033843013425169812"
+	"200523043408518309183421120012261021034944354267413735617601"
+	"999466129654555471183928143892048583210218715059190623669673"
+	"709078451184641215598867539008295806531959130171749496348501"
+	"016593279206827788351694604150601776078877850926025938963932"
+	"348257710184608851755301379907626287399864353397924779191438"
+	"696008198450280050868370731345376995801131987106068816254492"
+	"132279657770445691596180800594675207155679408490487848784280"
+	"757840485915053852076328642276460120931365062944412851150517"
+	"782307879807941005366882170554917224788453991203132901742055"
+	"651807985648804532635758643055919919823171907682230888197136"
+	"785695609657776957667650311147598288820442100762328807032871"
+	"864560877230326487537995006393010831208038878617743781275190"
+	"558412003007220219089126636587367218081819059766147691675567"
+	"771585405798025892518183423386642968922615987212237709485258"
+	"829589899034986438444744438813654943661868795407437525228658"
+	"904812581856613986614501454001745869542557985949803493369202"
+	"876231718093372553910516157740346758003125694394951026931617"
+	"535978947861060938131299416911676145021288244119060362036133"
+	"740174212818599501573880189231621521703767197610941072443657"
+	"937938012953869896148787897686753214596234235085019156025250"
+	"458832853791710463651895437666203902547252832579877605247633"
+	"242797093622461108077141606844016196969700713249758804637564"
+	"031033677586166560428898022693846246187767028235072650835679"
+	"508301416234837561554299294212011108379667366726313165151895"
+	"830476329518081413754725734385648977368582850960838417433497"
+	"042248134245755299790357229077513373338430395014449861322941"
+	"839717984951023221186554236475757746380955942423605912965057"
+	"827463769559044175127979722538378699149446690331124179105037"
+	"648851095593259807257640197670861588600691931413564860824819"
+	"137265657381188889377280059698561590053655108304078570914189"
+	"629664137254233685858528515552268875225114223970809842036687"
+	"815258661003059320145462620801188128167207188247801455632725"
+	"082944709186080859531835309805107316387271370578683213373930"
+	"527405724724502485066334073303661751380073478793232637990545"
+	"164168128190593725323015246035847258027356222256980634811669"
+	"852705683168908821634658358608716239406001024947489962630205"
+	"776825692692413107115696006420712968413972191633113557618014"
+	"858696532329910528233723435298914378716968012211255768780932"
+	"309932797977814035171890236317231958304220075777251395064208"
+	"638629746218502848288226858693654802564969763330590748497148"
+	"622346855218718290721826777671881908623480917243090647492727"
+	"942490633210766719088635904655448517979130388109126548929300"
+	"580321560326963512326417012573083178438865633283218615714530"
+	"549903912556636275934676454120536977847927177426272685396804"
+	"919083563678876289503745477768040694051730867535587283818464"
+	"530412086187505017748505307478598856959954962317953251674008"
+	"225476237765489460621328249350656765266995846433809943413102"
+	"353234238035471689081788617703430631377557454803127814187829"
+	"598025185330715074053608155317864680056010785645548139016038"
+	"200546112686635086975287688896283436056884042970495964827912"
+	"025457042506985430699507570505216417703168633373353363740973"
+	"098449441236047555752605169966501252613667375010142836817335"
+	"369229195079966747113425749967668461018275843584570291287076"
+	"863436226900429180382446487600878513931316307565128037734274"
+	"751419683920963106436365962521419345659878831691373235891043"
+	"914494428989096241797873944510540729730313852637867934309362"
+	"479391674181147553437778221885313432295986044940607732570536"
+	"758323465079498284873837903359731801022615162524897452447369"
+	"994156363786660485655244163243106530919921915001572936639717"
+	"727060908959134609147450693915078216074071190796432287614559"
+	"739514565025331782444586046533670722082471368442936376992006"
+	"432871710633235430712641944567318442895146617863508894303083"
+	"780006238593348534997106956499275465539308594895385688351274"
+	"527680872602616209515711522183485689297196476046732023220833"
+	"558806953101747436104574698259485603639631941783303387176618"
+	"127736801688930806971119771946947230290585329044021041830702"
+	"468732853329712319650648310981953139465377229648008743031539"
+	"791012497742669446849787144903264712336696905108788802976454"
+	"745641561589894577319528552887480349967499840509077874630932"
+	"006410787240379373316011071930020626071423345824245404625428"
+	"163528566770284308895812647657178766782096152465077867650878"
+	"728765790031331346983386248864167523818934527230120011631131"
+	"130349221973482282345629720853245305588082152846834757883902"
+	"418230260602977365876291924423262576905967270998981387607980"
+	"590173198728061164566710508280203138579629390853086417284931"
+	"473476503896627076093505113988019224990398993864279520509220"
+	"795282297369154155289507298946591008575807604025045159241768"
+	"053124565959288158472125768546173559933716867523084862590552"
+	"253795464417356834592115317041595395862621956820603128199550"
+	"775483058782397777574710005576429220542135705644683046579361"
+	"127376380818572381345373863156949724560997571282830521596582"
+	"676505338806880191653919681180812814185728172204622753540956"
+	"759118628570582119983330392951985037590913404114720365889373"
+	"415375522713642972968081965998964699854200925870352763511855"
+	"746131244738423217984936240351114193253178508974164557277742"
+	"082380052953358927842394019540795856889426401016424800654084"
+	"916008710304199673856712109217270885934221094921708814309165"
+	"303714869866869718931790902001741107041185283983665265223010"
+	"448886692863436456094906661547207546571718775198778131390005"
+	"604470865710049377159980709766283930814795133660201608803830"
+	"387062687050597694976947517673970085074048905476041868399282"
+	"210210811303996695447225466023628701716954332942062300692087"
+	"506193808715233967409332888561229743938739628873817586345844"
+	"235787382642910048037566676934777493608199400013226603778961"
+	"767983065878179176099437852691381581840415294028487335814184"
+	"359705913795796403022353882329072812841999278936447291852558"
+	"968128572497367407956029126386010516040841218546640263332596"
+	"364434900477374007125240521422713075571772237186443808781395"
+	"704933482403159804140409908423471029408690971564881017253795"
+	"683532592671608458875707405594322989754471498482191627716499"
+	"623059985647863148101198460951644508745146797656322518348570"
+	"790574994392249644280292306896707679268682338936248112446049"
+	"470428346171179377813259652278973223502016593007301073724799"
+	"675658539879152222438587068260743628405812631733705003812107"
+	"928072696169776344782845288646566530062426827248787785754788"
+	"204034823098323378752624648063186410269617045282345847903272"
+	"357883012794129290951171155740484706110733426210921325242247"
+	"031947432945712281996375613115158529796206595654235073113183"
+	"229116768328986688033570396888184706095894900612660127539722"
+	"296354502849429049358053512594493214173703639526633300022260"
+	"539993994939768478780065535050030025336768841935569091193952"
+	"295418769626212992663315977727928629409378094031848746171275"
+	"022638700062740039963954423425449141952878266414881475254943"
+	"495837962606594204955766121034305444739163225756990557510496"
+	"315197857760175019686351370553955868473946854769235600181870"
+	"334652058422826629519051090252418555394822679760154964690633"
+	"135731870251253728441441127894034855357885401169158852255396"
+	"639699288081854756163047653011165173498858844059363317314325"
+	"337992118958275600750342252059241652780147872373128975930272"
+	"695413265811145294182418990017214027985685032786710185135452"
+	"796070710025751232508396762575475070121803068832455179884557"
+	"256396146713354003220173366339787259797424068097390744348497"
+	"133677887754833488593674822145911513312492765863432565891182"
+	"214190046527577994266053060958283589302064055540161380606786"
+	"890667240333781935628676127016516337623222119318995031037529"
+	"409927247355689957774656695089650045891746748411475239883461"
+	"991652532450513429435170431778399974155311268296236254817242"
+	"455320367729822023577459233771570012382302724878339725223236"
+	"524461412308558861938192318706466190317653357172677355284205"
+	"070293717538810250642799918525989427528167652785307564855930"
+	"154693751985406421867359356407962520131591444357266715568677"
+	"627861184481418195428000588444756576764708052752232108761309"
+	"370767116216033888153345559070999007492770805224496576474472"
+	"932991677358644527430624867238990432029754811496885262555308"
+	"156932915411739463731250447922108182182749719224567329572666"
+	"899997017005141127283165797509102920540243864496816399084035"
+	"238460602970884482510943589340905249650626519667989139853813"
+	"647643848628244980589979473423920215951052653309297415539267"
+	"311044820996950448378367138265965725133486376318998624075987"
+	"11389056234111194498836994171142578126e-4952",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x2.000000000004p-16448L,
+	-0x2p-16448L,
+	-0x2p-16448L,
+	-0x2p-16448L),
+  TEST ("3.2375875597190125554622194791138232762497846690173405048449"
+	"421945985197700620596855088357456383249701279390707384240598"
+	"382936099431912710233425550359863089915213963553756674672083"
+	"673128192358701197242632527769951957277781260855740340354110"
+	"173441284912381364143945515141786687806740155311932822963199"
+	"131134959539539338316310328556057915323285980341541664226172"
+	"265348802632447238304822896568757017013159021750199744350376"
+	"278243566840330589397015778833566517337174685312047058426075"
+	"688036665697114219175258344917835835984013214761767520398571"
+	"735519302688914468501077605843338555214753050109407568139932"
+	"147308502166696009676987494125921676927574464221699654264839"
+	"192243410627511520570610765229732327315423820550872393685221"
+	"676561948307418196052769717057382723931306989375320957256133"
+	"838073129463951849807075348034900035402513943244599879584009"
+	"391110011261908615236154859382854977144106096407982738165117"
+	"693915685918231984764157652755343417097983676870433731452629"
+	"339981084526616826599425863049784138127555181662391766144738"
+	"159400253422795753041594932607700680306368857466952063923782"
+	"760519487592638820793893796669403574411398166619131986561877"
+	"034635197232626532239192571857518274939275861531537920777299"
+	"133535479548088762634002006634954143608168633852204577195463"
+	"389533233992867620995583241321034602255800668175356808869060"
+	"608582640890741203603916133682748118680676374951545690715916"
+	"241859799379894025137504643469040366684778763795442214328000"
+	"375999444991619403217748350277527106812175542863660436614910"
+	"135938862296156144947361864759321605496309393905421651264941"
+	"669606814994816518612155298709843817262034769175075602668866"
+	"926449523554218142013501373514352370369126244144449924971423"
+	"038024236058971106053649565799145071085840022305247663313482"
+	"714565918140785997808209749619683146844964283106915422726638"
+	"184861327711776708749278315100024436584176080783836115268999"
+	"055336294569042349971163039294272620322160728879610722678506"
+	"182344928526064885227397447578450046944618127903428943538029"
+	"386719288345854473283987116842451647036255801966780244103035"
+	"425445345127067921349083698736056197567752071915587544133815"
+	"717564310032485290205726480489464589999677885266171263493459"
+	"668963623768410922688414177814149693150024191921819721215688"
+	"114324591287371281400636455584825253000890602388603923710921"
+	"026880979879158388608823700222683123228822356907857261909150"
+	"626993825760416437415551396973489279578569909699853422995997"
+	"974315036153120383930698087773157253674975950409660938084071"
+	"173163693891122166282318691732176374528554627905530306369204"
+	"877964658806333996327938827344733821685425961846791581492287"
+	"250044047142934607523718654369478552373072400018635730811749"
+	"291666457582760812726851561001954207941547404866373158231367"
+	"986951247388733285659455982411993350593989550494594498447410"
+	"984783303191128659803467713819821511544998464785455306500918"
+	"241648925913966507036336000231915215026183799886938007038845"
+	"551916478649593272604688927931953165785101738164060543643192"
+	"949066412847647883846835866623820426428526541564774787007791"
+	"235843699657232847114093617412355486871810526396392792853731"
+	"390841657984518997639795008374280777823099107035223998600103"
+	"103211166230289241182380237703814248941627178152962100972452"
+	"217697144954497443279450919433943252592977710901289696002698"
+	"225209041938801190947812141758873162203113090284565687499100"
+	"109623665868340184032428667217835198069330185880779776269137"
+	"742366802202585247113480377505916462865316253065105837519292"
+	"805411191872195967066157363040364443666632564266439033866945"
+	"366496486863801221986778957510023272290593640187551645170603"
+	"215150911733580059874983597994671388176488814794186236946834"
+	"548816837468411497151813344980969677026131105901402313456769"
+	"561412278508799050185582199844418197980544632067644131002512"
+	"557755358307705356209461595354064971347590431926479961905129"
+	"785864961996560707071051177738535042777950247546470241655891"
+	"294428226271478689174637951663865529219133988782700199051475"
+	"108495188941141025360733690471601309904116260484264378352956"
+	"830972782977747351810451586166745640802378131466232692150196"
+	"132319386267589275314909450293562079332893638471814389025392"
+	"970579695249613486078445695214422379148991006996109216699215"
+	"721671648754881325271879493185438097033881789311707997697928"
+	"860866812849648616086569281093053695399558469641977866770538"
+	"476039621947215238679930485285585513808236992918733520331110"
+	"962448142457896209307561142289713638388281085340301520317159"
+	"297224995464365477734040179470355969363384621039467975256670"
+	"339354334892926205316491997244008324897517881293654265688813"
+	"283579663372924392043825371743576754041055802440187836850412"
+	"247984570221893156921757872572872036331343007592090605703195"
+	"088864753777199111760713027328198781654685927174063882187275"
+	"850263521274368447629947228263907797373221137688424821608129"
+	"731003236738630502344377228987961455961818623205503012858619"
+	"800521948637807438081069469400793496307826769301971342062597"
+	"391253779410607511754278887744936774785938056823221738917303"
+	"119592848951788560393540150358649310736020595310015728915288"
+	"289821678102453433273888879288862086153270028346900686360943"
+	"250522514297816412678213672667152836436597491522644579383191"
+	"851483036048273636234050603745735057899230038434384361744893"
+	"838050985090837220507663282503497932038372021626246900935334"
+	"781144388106031405650705176699646299475436084049881780196520"
+	"881623075256119318210664937469946410480660118598143375898298"
+	"965497205621170906772915413181530577151676241283182977713765"
+	"317889730886996471681592298058774155948285325398399674640645"
+	"566475947058303746531133735308766583802401453804232106737787"
+	"768035926272312574958173945816077962772826443125107145322971"
+	"087220172175473177449006473180221085709470643042801004189714"
+	"505520073568915195232936144169440163547568663500508335014169"
+	"425050712038101167190534305435310279534374364467455668392421"
+	"298604104431988622194699721632249712583483143417550152131186"
+	"288827131347662976240916448058011869761525369135147129192405"
+	"037216807405860168320999468074663117771890506566769628495813"
+	"837909047220874786467663205170561835819702362482274133227483"
+	"041342457179876653773960112367066273208176545656826800069574"
+	"547599816180234764485446735080683694920665668954370505715843"
+	"455110709594838989387382250502925336743830916124954071268053"
+	"817964873658921319164268375226716232666274830656557657055342"
+	"393552148933959057023293404027940528842591460490646295820755"
+	"765633076707491896621769767253619370462005760078938144396953"
+	"018925287611875441613896820035092167912718365454954166761481"
+	"511451950826683236776211829914518353242818636196417736206010"
+	"145109509967467266157037719712666871515644277723594273405669"
+	"093518586548079997818085130346801040781966074621669280188633"
+	"856299289656492439545033914935979634179552686396067914528336"
+	"924678729357419403624798426886422277256625046946795576781709"
+	"298737741510378578072199383561520569978396254537274419476511"
+	"983161908266152660163477408756159700314280122283281906103567"
+	"067156627222418787671312246698375736071215395722993294041012"
+	"744631560602983489316782773611740570974847045870362276861106"
+	"774130949410119612624380274679529647271294627526939490197641"
+	"645383447755544661714281218489998189691140343327976729279891"
+	"077101372792811842951182338559423852563331641533781432796742"
+	"873181364582071661749961126386895359760476172215209100274274"
+	"851619657020388051618654944574445941780637669570374280535432"
+	"399157923698778110534174856844986671232161320063786308144771"
+	"068130888985636449091787794632959555876880672773686838364706"
+	"122084832995722603440165161942472322987408003421165899848443"
+	"566885769845535074102932500939450142098799833145629484519298"
+	"622410092757836842296697186410137365818568152771850732591405"
+	"340248509247875448717161746544246407280913725135059228268131"
+	"453903691495906528862410006254958805237716723952273129715780"
+	"425223305517882562616830806755498203755676925741529569939445"
+	"043490046171854709456730491532189688306135861932534903184518"
+	"717706426178028900836080044604143054210332610482947502104703"
+	"032028463320549525316174330585387581543470878545616097381416"
+	"151451037487775797335749896735101048367502483255117772375025"
+	"269956476872153642623856062175536913321594213515989059505375"
+	"135183515207096576145781316398544325320022366962008554087665"
+	"201050763789833457082359181807492731245904330245198691471329"
+	"319324627030678762142685799400660305214140453863665517807185"
+	"105354694177602424937823924511789133225030926924236498557565"
+	"212794565582753399214908928688568628950225640472058381324292"
+	"866007645368390366981937596341868992912741319342960598330486"
+	"905946276235953206760977215407164729909506118583728562718724"
+	"235732515062300426080741679038098122641980345051854359908213"
+	"563779664847422505775922437272989231878912994048540484468227"
+	"199282393172540734295329890896755037903724644870572648941076"
+	"132423009124870700536763793881894969000042397318202298868940"
+	"530196108237639578098191879486398269734335286831689173606327"
+	"500405178476864790935386838169242131756729797688220656276969"
+	"434749140204830563840068728357383111109865861495106613619153"
+	"421725274090787422508800568671498311491210197298472420373359"
+	"044400631309819996507004167876832936101195902219429743174557"
+	"163362274547892397934880322990633165889175059124060202200452"
+	"648684577182821651588921716304707095995039972827781680978274"
+	"973838841958209215836456212939412000456040621743349981715350"
+	"305133662772937143899882197561295808685181679238411733642697"
+	"748892466944352640514849114619882270112386610376024527101889"
+	"119004382703622803911212700216792471528793241950356942780714"
+	"774957204475130171711488773121937363663487116301055073658645"
+	"980695862570269762957141239436916216723776945522480189876803"
+	"386123827956059851911061129713987960026363403936931196519733"
+	"447116468545744829997003979525368783485129837821983305137448"
+	"031689360764270759437872004895754351479890333865299565515706"
+	"690471030702230767978923298480584997256328135245813726407464"
+	"159230169328539541524724878662873185450510653764301207480799"
+	"488602832618557388369552461881286225098286358672257087829660"
+	"174231705350465091313887538950130611513878400895128618426154"
+	"417299623157313010877679890009181366178705821415173309356192"
+	"686429159835537275875876767919535369607142366878476025895389"
+	"279625854409611312402187942369446302119309705461187450803468"
+	"606366203101933821675974655441744883993796837164178911391575"
+	"751463591650231265941242686108002052587760190005508737394014"
+	"453031299745602214380618917954427803281262300931789525045703"
+	"809571995929933387196864877982754748535701000330924817431298"
+	"365273697561943437891318220691072831562717726798635382168915"
+	"187137325209768346284183473712613689334546294053718697897526"
+	"843398053681374508250012035211936425982389543291022583173280"
+	"985811169783438836113209408147936547458073361625570571955232"
+	"746103236016857123149307991441916732438322836596693687161268"
+	"151183603534413030099360835441935243365729307681545065674775"
+	"655582111435085683962037818795920337874290127531069511296530"
+	"746308404963763022896682861683252995925040540038039172626001"
+	"958340013361801588367655990575379797454237110701588716509764"
+	"759243657077584013289594787913434812509790293636440469725564"
+	"222946985585616708175959944099853232059130350099233608207347"
+	"955460820122006976717445739825352919058005528371183277021250"
+	"186916447745609162301667393077050176560656798672598371789181"
+	"232542195795945358691713761483976100058707499929103557275695"
+	"937295677892604799308353051124627278706035295473126217205599"
+	"530746756205492173148619619059839609108464715691924592576481"
+	"382126740168148453274964955074129767533813576349605298268179"
+	"068244338581354855186516322703199278802275718580352103754433"
+	"240982354636196477238624205575823556321375833700666021556412"
+	"182358152808745703724362178773168996492870519432472065091133"
+	"11767578124e-4966",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x8p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-16496L),
+  TEST ("3.2375875597190125554622194791138232762497846690173405048449"
+	"421945985197700620596855088357456383249701279390707384240598"
+	"382936099431912710233425550359863089915213963553756674672083"
+	"673128192358701197242632527769951957277781260855740340354110"
+	"173441284912381364143945515141786687806740155311932822963199"
+	"131134959539539338316310328556057915323285980341541664226172"
+	"265348802632447238304822896568757017013159021750199744350376"
+	"278243566840330589397015778833566517337174685312047058426075"
+	"688036665697114219175258344917835835984013214761767520398571"
+	"735519302688914468501077605843338555214753050109407568139932"
+	"147308502166696009676987494125921676927574464221699654264839"
+	"192243410627511520570610765229732327315423820550872393685221"
+	"676561948307418196052769717057382723931306989375320957256133"
+	"838073129463951849807075348034900035402513943244599879584009"
+	"391110011261908615236154859382854977144106096407982738165117"
+	"693915685918231984764157652755343417097983676870433731452629"
+	"339981084526616826599425863049784138127555181662391766144738"
+	"159400253422795753041594932607700680306368857466952063923782"
+	"760519487592638820793893796669403574411398166619131986561877"
+	"034635197232626532239192571857518274939275861531537920777299"
+	"133535479548088762634002006634954143608168633852204577195463"
+	"389533233992867620995583241321034602255800668175356808869060"
+	"608582640890741203603916133682748118680676374951545690715916"
+	"241859799379894025137504643469040366684778763795442214328000"
+	"375999444991619403217748350277527106812175542863660436614910"
+	"135938862296156144947361864759321605496309393905421651264941"
+	"669606814994816518612155298709843817262034769175075602668866"
+	"926449523554218142013501373514352370369126244144449924971423"
+	"038024236058971106053649565799145071085840022305247663313482"
+	"714565918140785997808209749619683146844964283106915422726638"
+	"184861327711776708749278315100024436584176080783836115268999"
+	"055336294569042349971163039294272620322160728879610722678506"
+	"182344928526064885227397447578450046944618127903428943538029"
+	"386719288345854473283987116842451647036255801966780244103035"
+	"425445345127067921349083698736056197567752071915587544133815"
+	"717564310032485290205726480489464589999677885266171263493459"
+	"668963623768410922688414177814149693150024191921819721215688"
+	"114324591287371281400636455584825253000890602388603923710921"
+	"026880979879158388608823700222683123228822356907857261909150"
+	"626993825760416437415551396973489279578569909699853422995997"
+	"974315036153120383930698087773157253674975950409660938084071"
+	"173163693891122166282318691732176374528554627905530306369204"
+	"877964658806333996327938827344733821685425961846791581492287"
+	"250044047142934607523718654369478552373072400018635730811749"
+	"291666457582760812726851561001954207941547404866373158231367"
+	"986951247388733285659455982411993350593989550494594498447410"
+	"984783303191128659803467713819821511544998464785455306500918"
+	"241648925913966507036336000231915215026183799886938007038845"
+	"551916478649593272604688927931953165785101738164060543643192"
+	"949066412847647883846835866623820426428526541564774787007791"
+	"235843699657232847114093617412355486871810526396392792853731"
+	"390841657984518997639795008374280777823099107035223998600103"
+	"103211166230289241182380237703814248941627178152962100972452"
+	"217697144954497443279450919433943252592977710901289696002698"
+	"225209041938801190947812141758873162203113090284565687499100"
+	"109623665868340184032428667217835198069330185880779776269137"
+	"742366802202585247113480377505916462865316253065105837519292"
+	"805411191872195967066157363040364443666632564266439033866945"
+	"366496486863801221986778957510023272290593640187551645170603"
+	"215150911733580059874983597994671388176488814794186236946834"
+	"548816837468411497151813344980969677026131105901402313456769"
+	"561412278508799050185582199844418197980544632067644131002512"
+	"557755358307705356209461595354064971347590431926479961905129"
+	"785864961996560707071051177738535042777950247546470241655891"
+	"294428226271478689174637951663865529219133988782700199051475"
+	"108495188941141025360733690471601309904116260484264378352956"
+	"830972782977747351810451586166745640802378131466232692150196"
+	"132319386267589275314909450293562079332893638471814389025392"
+	"970579695249613486078445695214422379148991006996109216699215"
+	"721671648754881325271879493185438097033881789311707997697928"
+	"860866812849648616086569281093053695399558469641977866770538"
+	"476039621947215238679930485285585513808236992918733520331110"
+	"962448142457896209307561142289713638388281085340301520317159"
+	"297224995464365477734040179470355969363384621039467975256670"
+	"339354334892926205316491997244008324897517881293654265688813"
+	"283579663372924392043825371743576754041055802440187836850412"
+	"247984570221893156921757872572872036331343007592090605703195"
+	"088864753777199111760713027328198781654685927174063882187275"
+	"850263521274368447629947228263907797373221137688424821608129"
+	"731003236738630502344377228987961455961818623205503012858619"
+	"800521948637807438081069469400793496307826769301971342062597"
+	"391253779410607511754278887744936774785938056823221738917303"
+	"119592848951788560393540150358649310736020595310015728915288"
+	"289821678102453433273888879288862086153270028346900686360943"
+	"250522514297816412678213672667152836436597491522644579383191"
+	"851483036048273636234050603745735057899230038434384361744893"
+	"838050985090837220507663282503497932038372021626246900935334"
+	"781144388106031405650705176699646299475436084049881780196520"
+	"881623075256119318210664937469946410480660118598143375898298"
+	"965497205621170906772915413181530577151676241283182977713765"
+	"317889730886996471681592298058774155948285325398399674640645"
+	"566475947058303746531133735308766583802401453804232106737787"
+	"768035926272312574958173945816077962772826443125107145322971"
+	"087220172175473177449006473180221085709470643042801004189714"
+	"505520073568915195232936144169440163547568663500508335014169"
+	"425050712038101167190534305435310279534374364467455668392421"
+	"298604104431988622194699721632249712583483143417550152131186"
+	"288827131347662976240916448058011869761525369135147129192405"
+	"037216807405860168320999468074663117771890506566769628495813"
+	"837909047220874786467663205170561835819702362482274133227483"
+	"041342457179876653773960112367066273208176545656826800069574"
+	"547599816180234764485446735080683694920665668954370505715843"
+	"455110709594838989387382250502925336743830916124954071268053"
+	"817964873658921319164268375226716232666274830656557657055342"
+	"393552148933959057023293404027940528842591460490646295820755"
+	"765633076707491896621769767253619370462005760078938144396953"
+	"018925287611875441613896820035092167912718365454954166761481"
+	"511451950826683236776211829914518353242818636196417736206010"
+	"145109509967467266157037719712666871515644277723594273405669"
+	"093518586548079997818085130346801040781966074621669280188633"
+	"856299289656492439545033914935979634179552686396067914528336"
+	"924678729357419403624798426886422277256625046946795576781709"
+	"298737741510378578072199383561520569978396254537274419476511"
+	"983161908266152660163477408756159700314280122283281906103567"
+	"067156627222418787671312246698375736071215395722993294041012"
+	"744631560602983489316782773611740570974847045870362276861106"
+	"774130949410119612624380274679529647271294627526939490197641"
+	"645383447755544661714281218489998189691140343327976729279891"
+	"077101372792811842951182338559423852563331641533781432796742"
+	"873181364582071661749961126386895359760476172215209100274274"
+	"851619657020388051618654944574445941780637669570374280535432"
+	"399157923698778110534174856844986671232161320063786308144771"
+	"068130888985636449091787794632959555876880672773686838364706"
+	"122084832995722603440165161942472322987408003421165899848443"
+	"566885769845535074102932500939450142098799833145629484519298"
+	"622410092757836842296697186410137365818568152771850732591405"
+	"340248509247875448717161746544246407280913725135059228268131"
+	"453903691495906528862410006254958805237716723952273129715780"
+	"425223305517882562616830806755498203755676925741529569939445"
+	"043490046171854709456730491532189688306135861932534903184518"
+	"717706426178028900836080044604143054210332610482947502104703"
+	"032028463320549525316174330585387581543470878545616097381416"
+	"151451037487775797335749896735101048367502483255117772375025"
+	"269956476872153642623856062175536913321594213515989059505375"
+	"135183515207096576145781316398544325320022366962008554087665"
+	"201050763789833457082359181807492731245904330245198691471329"
+	"319324627030678762142685799400660305214140453863665517807185"
+	"105354694177602424937823924511789133225030926924236498557565"
+	"212794565582753399214908928688568628950225640472058381324292"
+	"866007645368390366981937596341868992912741319342960598330486"
+	"905946276235953206760977215407164729909506118583728562718724"
+	"235732515062300426080741679038098122641980345051854359908213"
+	"563779664847422505775922437272989231878912994048540484468227"
+	"199282393172540734295329890896755037903724644870572648941076"
+	"132423009124870700536763793881894969000042397318202298868940"
+	"530196108237639578098191879486398269734335286831689173606327"
+	"500405178476864790935386838169242131756729797688220656276969"
+	"434749140204830563840068728357383111109865861495106613619153"
+	"421725274090787422508800568671498311491210197298472420373359"
+	"044400631309819996507004167876832936101195902219429743174557"
+	"163362274547892397934880322990633165889175059124060202200452"
+	"648684577182821651588921716304707095995039972827781680978274"
+	"973838841958209215836456212939412000456040621743349981715350"
+	"305133662772937143899882197561295808685181679238411733642697"
+	"748892466944352640514849114619882270112386610376024527101889"
+	"119004382703622803911212700216792471528793241950356942780714"
+	"774957204475130171711488773121937363663487116301055073658645"
+	"980695862570269762957141239436916216723776945522480189876803"
+	"386123827956059851911061129713987960026363403936931196519733"
+	"447116468545744829997003979525368783485129837821983305137448"
+	"031689360764270759437872004895754351479890333865299565515706"
+	"690471030702230767978923298480584997256328135245813726407464"
+	"159230169328539541524724878662873185450510653764301207480799"
+	"488602832618557388369552461881286225098286358672257087829660"
+	"174231705350465091313887538950130611513878400895128618426154"
+	"417299623157313010877679890009181366178705821415173309356192"
+	"686429159835537275875876767919535369607142366878476025895389"
+	"279625854409611312402187942369446302119309705461187450803468"
+	"606366203101933821675974655441744883993796837164178911391575"
+	"751463591650231265941242686108002052587760190005508737394014"
+	"453031299745602214380618917954427803281262300931789525045703"
+	"809571995929933387196864877982754748535701000330924817431298"
+	"365273697561943437891318220691072831562717726798635382168915"
+	"187137325209768346284183473712613689334546294053718697897526"
+	"843398053681374508250012035211936425982389543291022583173280"
+	"985811169783438836113209408147936547458073361625570571955232"
+	"746103236016857123149307991441916732438322836596693687161268"
+	"151183603534413030099360835441935243365729307681545065674775"
+	"655582111435085683962037818795920337874290127531069511296530"
+	"746308404963763022896682861683252995925040540038039172626001"
+	"958340013361801588367655990575379797454237110701588716509764"
+	"759243657077584013289594787913434812509790293636440469725564"
+	"222946985585616708175959944099853232059130350099233608207347"
+	"955460820122006976717445739825352919058005528371183277021250"
+	"186916447745609162301667393077050176560656798672598371789181"
+	"232542195795945358691713761483976100058707499929103557275695"
+	"937295677892604799308353051124627278706035295473126217205599"
+	"530746756205492173148619619059839609108464715691924592576481"
+	"382126740168148453274964955074129767533813576349605298268179"
+	"068244338581354855186516322703199278802275718580352103754433"
+	"240982354636196477238624205575823556321375833700666021556412"
+	"182358152808745703724362178773168996492870519432472065091133"
+	"11767578125e-4966",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x8p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-16496L),
+  TEST ("3.2375875597190125554622194791138232762497846690173405048449"
+	"421945985197700620596855088357456383249701279390707384240598"
+	"382936099431912710233425550359863089915213963553756674672083"
+	"673128192358701197242632527769951957277781260855740340354110"
+	"173441284912381364143945515141786687806740155311932822963199"
+	"131134959539539338316310328556057915323285980341541664226172"
+	"265348802632447238304822896568757017013159021750199744350376"
+	"278243566840330589397015778833566517337174685312047058426075"
+	"688036665697114219175258344917835835984013214761767520398571"
+	"735519302688914468501077605843338555214753050109407568139932"
+	"147308502166696009676987494125921676927574464221699654264839"
+	"192243410627511520570610765229732327315423820550872393685221"
+	"676561948307418196052769717057382723931306989375320957256133"
+	"838073129463951849807075348034900035402513943244599879584009"
+	"391110011261908615236154859382854977144106096407982738165117"
+	"693915685918231984764157652755343417097983676870433731452629"
+	"339981084526616826599425863049784138127555181662391766144738"
+	"159400253422795753041594932607700680306368857466952063923782"
+	"760519487592638820793893796669403574411398166619131986561877"
+	"034635197232626532239192571857518274939275861531537920777299"
+	"133535479548088762634002006634954143608168633852204577195463"
+	"389533233992867620995583241321034602255800668175356808869060"
+	"608582640890741203603916133682748118680676374951545690715916"
+	"241859799379894025137504643469040366684778763795442214328000"
+	"375999444991619403217748350277527106812175542863660436614910"
+	"135938862296156144947361864759321605496309393905421651264941"
+	"669606814994816518612155298709843817262034769175075602668866"
+	"926449523554218142013501373514352370369126244144449924971423"
+	"038024236058971106053649565799145071085840022305247663313482"
+	"714565918140785997808209749619683146844964283106915422726638"
+	"184861327711776708749278315100024436584176080783836115268999"
+	"055336294569042349971163039294272620322160728879610722678506"
+	"182344928526064885227397447578450046944618127903428943538029"
+	"386719288345854473283987116842451647036255801966780244103035"
+	"425445345127067921349083698736056197567752071915587544133815"
+	"717564310032485290205726480489464589999677885266171263493459"
+	"668963623768410922688414177814149693150024191921819721215688"
+	"114324591287371281400636455584825253000890602388603923710921"
+	"026880979879158388608823700222683123228822356907857261909150"
+	"626993825760416437415551396973489279578569909699853422995997"
+	"974315036153120383930698087773157253674975950409660938084071"
+	"173163693891122166282318691732176374528554627905530306369204"
+	"877964658806333996327938827344733821685425961846791581492287"
+	"250044047142934607523718654369478552373072400018635730811749"
+	"291666457582760812726851561001954207941547404866373158231367"
+	"986951247388733285659455982411993350593989550494594498447410"
+	"984783303191128659803467713819821511544998464785455306500918"
+	"241648925913966507036336000231915215026183799886938007038845"
+	"551916478649593272604688927931953165785101738164060543643192"
+	"949066412847647883846835866623820426428526541564774787007791"
+	"235843699657232847114093617412355486871810526396392792853731"
+	"390841657984518997639795008374280777823099107035223998600103"
+	"103211166230289241182380237703814248941627178152962100972452"
+	"217697144954497443279450919433943252592977710901289696002698"
+	"225209041938801190947812141758873162203113090284565687499100"
+	"109623665868340184032428667217835198069330185880779776269137"
+	"742366802202585247113480377505916462865316253065105837519292"
+	"805411191872195967066157363040364443666632564266439033866945"
+	"366496486863801221986778957510023272290593640187551645170603"
+	"215150911733580059874983597994671388176488814794186236946834"
+	"548816837468411497151813344980969677026131105901402313456769"
+	"561412278508799050185582199844418197980544632067644131002512"
+	"557755358307705356209461595354064971347590431926479961905129"
+	"785864961996560707071051177738535042777950247546470241655891"
+	"294428226271478689174637951663865529219133988782700199051475"
+	"108495188941141025360733690471601309904116260484264378352956"
+	"830972782977747351810451586166745640802378131466232692150196"
+	"132319386267589275314909450293562079332893638471814389025392"
+	"970579695249613486078445695214422379148991006996109216699215"
+	"721671648754881325271879493185438097033881789311707997697928"
+	"860866812849648616086569281093053695399558469641977866770538"
+	"476039621947215238679930485285585513808236992918733520331110"
+	"962448142457896209307561142289713638388281085340301520317159"
+	"297224995464365477734040179470355969363384621039467975256670"
+	"339354334892926205316491997244008324897517881293654265688813"
+	"283579663372924392043825371743576754041055802440187836850412"
+	"247984570221893156921757872572872036331343007592090605703195"
+	"088864753777199111760713027328198781654685927174063882187275"
+	"850263521274368447629947228263907797373221137688424821608129"
+	"731003236738630502344377228987961455961818623205503012858619"
+	"800521948637807438081069469400793496307826769301971342062597"
+	"391253779410607511754278887744936774785938056823221738917303"
+	"119592848951788560393540150358649310736020595310015728915288"
+	"289821678102453433273888879288862086153270028346900686360943"
+	"250522514297816412678213672667152836436597491522644579383191"
+	"851483036048273636234050603745735057899230038434384361744893"
+	"838050985090837220507663282503497932038372021626246900935334"
+	"781144388106031405650705176699646299475436084049881780196520"
+	"881623075256119318210664937469946410480660118598143375898298"
+	"965497205621170906772915413181530577151676241283182977713765"
+	"317889730886996471681592298058774155948285325398399674640645"
+	"566475947058303746531133735308766583802401453804232106737787"
+	"768035926272312574958173945816077962772826443125107145322971"
+	"087220172175473177449006473180221085709470643042801004189714"
+	"505520073568915195232936144169440163547568663500508335014169"
+	"425050712038101167190534305435310279534374364467455668392421"
+	"298604104431988622194699721632249712583483143417550152131186"
+	"288827131347662976240916448058011869761525369135147129192405"
+	"037216807405860168320999468074663117771890506566769628495813"
+	"837909047220874786467663205170561835819702362482274133227483"
+	"041342457179876653773960112367066273208176545656826800069574"
+	"547599816180234764485446735080683694920665668954370505715843"
+	"455110709594838989387382250502925336743830916124954071268053"
+	"817964873658921319164268375226716232666274830656557657055342"
+	"393552148933959057023293404027940528842591460490646295820755"
+	"765633076707491896621769767253619370462005760078938144396953"
+	"018925287611875441613896820035092167912718365454954166761481"
+	"511451950826683236776211829914518353242818636196417736206010"
+	"145109509967467266157037719712666871515644277723594273405669"
+	"093518586548079997818085130346801040781966074621669280188633"
+	"856299289656492439545033914935979634179552686396067914528336"
+	"924678729357419403624798426886422277256625046946795576781709"
+	"298737741510378578072199383561520569978396254537274419476511"
+	"983161908266152660163477408756159700314280122283281906103567"
+	"067156627222418787671312246698375736071215395722993294041012"
+	"744631560602983489316782773611740570974847045870362276861106"
+	"774130949410119612624380274679529647271294627526939490197641"
+	"645383447755544661714281218489998189691140343327976729279891"
+	"077101372792811842951182338559423852563331641533781432796742"
+	"873181364582071661749961126386895359760476172215209100274274"
+	"851619657020388051618654944574445941780637669570374280535432"
+	"399157923698778110534174856844986671232161320063786308144771"
+	"068130888985636449091787794632959555876880672773686838364706"
+	"122084832995722603440165161942472322987408003421165899848443"
+	"566885769845535074102932500939450142098799833145629484519298"
+	"622410092757836842296697186410137365818568152771850732591405"
+	"340248509247875448717161746544246407280913725135059228268131"
+	"453903691495906528862410006254958805237716723952273129715780"
+	"425223305517882562616830806755498203755676925741529569939445"
+	"043490046171854709456730491532189688306135861932534903184518"
+	"717706426178028900836080044604143054210332610482947502104703"
+	"032028463320549525316174330585387581543470878545616097381416"
+	"151451037487775797335749896735101048367502483255117772375025"
+	"269956476872153642623856062175536913321594213515989059505375"
+	"135183515207096576145781316398544325320022366962008554087665"
+	"201050763789833457082359181807492731245904330245198691471329"
+	"319324627030678762142685799400660305214140453863665517807185"
+	"105354694177602424937823924511789133225030926924236498557565"
+	"212794565582753399214908928688568628950225640472058381324292"
+	"866007645368390366981937596341868992912741319342960598330486"
+	"905946276235953206760977215407164729909506118583728562718724"
+	"235732515062300426080741679038098122641980345051854359908213"
+	"563779664847422505775922437272989231878912994048540484468227"
+	"199282393172540734295329890896755037903724644870572648941076"
+	"132423009124870700536763793881894969000042397318202298868940"
+	"530196108237639578098191879486398269734335286831689173606327"
+	"500405178476864790935386838169242131756729797688220656276969"
+	"434749140204830563840068728357383111109865861495106613619153"
+	"421725274090787422508800568671498311491210197298472420373359"
+	"044400631309819996507004167876832936101195902219429743174557"
+	"163362274547892397934880322990633165889175059124060202200452"
+	"648684577182821651588921716304707095995039972827781680978274"
+	"973838841958209215836456212939412000456040621743349981715350"
+	"305133662772937143899882197561295808685181679238411733642697"
+	"748892466944352640514849114619882270112386610376024527101889"
+	"119004382703622803911212700216792471528793241950356942780714"
+	"774957204475130171711488773121937363663487116301055073658645"
+	"980695862570269762957141239436916216723776945522480189876803"
+	"386123827956059851911061129713987960026363403936931196519733"
+	"447116468545744829997003979525368783485129837821983305137448"
+	"031689360764270759437872004895754351479890333865299565515706"
+	"690471030702230767978923298480584997256328135245813726407464"
+	"159230169328539541524724878662873185450510653764301207480799"
+	"488602832618557388369552461881286225098286358672257087829660"
+	"174231705350465091313887538950130611513878400895128618426154"
+	"417299623157313010877679890009181366178705821415173309356192"
+	"686429159835537275875876767919535369607142366878476025895389"
+	"279625854409611312402187942369446302119309705461187450803468"
+	"606366203101933821675974655441744883993796837164178911391575"
+	"751463591650231265941242686108002052587760190005508737394014"
+	"453031299745602214380618917954427803281262300931789525045703"
+	"809571995929933387196864877982754748535701000330924817431298"
+	"365273697561943437891318220691072831562717726798635382168915"
+	"187137325209768346284183473712613689334546294053718697897526"
+	"843398053681374508250012035211936425982389543291022583173280"
+	"985811169783438836113209408147936547458073361625570571955232"
+	"746103236016857123149307991441916732438322836596693687161268"
+	"151183603534413030099360835441935243365729307681545065674775"
+	"655582111435085683962037818795920337874290127531069511296530"
+	"746308404963763022896682861683252995925040540038039172626001"
+	"958340013361801588367655990575379797454237110701588716509764"
+	"759243657077584013289594787913434812509790293636440469725564"
+	"222946985585616708175959944099853232059130350099233608207347"
+	"955460820122006976717445739825352919058005528371183277021250"
+	"186916447745609162301667393077050176560656798672598371789181"
+	"232542195795945358691713761483976100058707499929103557275695"
+	"937295677892604799308353051124627278706035295473126217205599"
+	"530746756205492173148619619059839609108464715691924592576481"
+	"382126740168148453274964955074129767533813576349605298268179"
+	"068244338581354855186516322703199278802275718580352103754433"
+	"240982354636196477238624205575823556321375833700666021556412"
+	"182358152808745703724362178773168996492870519432472065091133"
+	"11767578126e-4966",
+	false,
+	0x0p+0f,
+	0x0p+0f,
+	0x0p+0f,
+	0x8p-152f,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x8p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-16448L,
+	false,
+	0x0p+0L,
+	0x0p+0L,
+	0x0p+0L,
+	0x4p-1076L,
+	false,
+	0x0p+0L,
+	0x4p-16496L,
+	0x0p+0L,
+	0x4p-16496L),
+  TEST ("-3.237587559719012555462219479113823276249784669017340504844"
+	"942194598519770062059685508835745638324970127939070738424059"
+	"838293609943191271023342555035986308991521396355375667467208"
+	"367312819235870119724263252776995195727778126085574034035411"
+	"017344128491238136414394551514178668780674015531193282296319"
+	"913113495953953933831631032855605791532328598034154166422617"
+	"226534880263244723830482289656875701701315902175019974435037"
+	"627824356684033058939701577883356651733717468531204705842607"
+	"568803666569711421917525834491783583598401321476176752039857"
+	"173551930268891446850107760584333855521475305010940756813993"
+	"214730850216669600967698749412592167692757446422169965426483"
+	"919224341062751152057061076522973232731542382055087239368522"
+	"167656194830741819605276971705738272393130698937532095725613"
+	"383807312946395184980707534803490003540251394324459987958400"
+	"939111001126190861523615485938285497714410609640798273816511"
+	"769391568591823198476415765275534341709798367687043373145262"
+	"933998108452661682659942586304978413812755518166239176614473"
+	"815940025342279575304159493260770068030636885746695206392378"
+	"276051948759263882079389379666940357441139816661913198656187"
+	"703463519723262653223919257185751827493927586153153792077729"
+	"913353547954808876263400200663495414360816863385220457719546"
+	"338953323399286762099558324132103460225580066817535680886906"
+	"060858264089074120360391613368274811868067637495154569071591"
+	"624185979937989402513750464346904036668477876379544221432800"
+	"037599944499161940321774835027752710681217554286366043661491"
+	"013593886229615614494736186475932160549630939390542165126494"
+	"166960681499481651861215529870984381726203476917507560266886"
+	"692644952355421814201350137351435237036912624414444992497142"
+	"303802423605897110605364956579914507108584002230524766331348"
+	"271456591814078599780820974961968314684496428310691542272663"
+	"818486132771177670874927831510002443658417608078383611526899"
+	"905533629456904234997116303929427262032216072887961072267850"
+	"618234492852606488522739744757845004694461812790342894353802"
+	"938671928834585447328398711684245164703625580196678024410303"
+	"542544534512706792134908369873605619756775207191558754413381"
+	"571756431003248529020572648048946458999967788526617126349345"
+	"966896362376841092268841417781414969315002419192181972121568"
+	"811432459128737128140063645558482525300089060238860392371092"
+	"102688097987915838860882370022268312322882235690785726190915"
+	"062699382576041643741555139697348927957856990969985342299599"
+	"797431503615312038393069808777315725367497595040966093808407"
+	"117316369389112216628231869173217637452855462790553030636920"
+	"487796465880633399632793882734473382168542596184679158149228"
+	"725004404714293460752371865436947855237307240001863573081174"
+	"929166645758276081272685156100195420794154740486637315823136"
+	"798695124738873328565945598241199335059398955049459449844741"
+	"098478330319112865980346771381982151154499846478545530650091"
+	"824164892591396650703633600023191521502618379988693800703884"
+	"555191647864959327260468892793195316578510173816406054364319"
+	"294906641284764788384683586662382042642852654156477478700779"
+	"123584369965723284711409361741235548687181052639639279285373"
+	"139084165798451899763979500837428077782309910703522399860010"
+	"310321116623028924118238023770381424894162717815296210097245"
+	"221769714495449744327945091943394325259297771090128969600269"
+	"822520904193880119094781214175887316220311309028456568749910"
+	"010962366586834018403242866721783519806933018588077977626913"
+	"774236680220258524711348037750591646286531625306510583751929"
+	"280541119187219596706615736304036444366663256426643903386694"
+	"536649648686380122198677895751002327229059364018755164517060"
+	"321515091173358005987498359799467138817648881479418623694683"
+	"454881683746841149715181334498096967702613110590140231345676"
+	"956141227850879905018558219984441819798054463206764413100251"
+	"255775535830770535620946159535406497134759043192647996190512"
+	"978586496199656070707105117773853504277795024754647024165589"
+	"129442822627147868917463795166386552921913398878270019905147"
+	"510849518894114102536073369047160130990411626048426437835295"
+	"683097278297774735181045158616674564080237813146623269215019"
+	"613231938626758927531490945029356207933289363847181438902539"
+	"297057969524961348607844569521442237914899100699610921669921"
+	"572167164875488132527187949318543809703388178931170799769792"
+	"886086681284964861608656928109305369539955846964197786677053"
+	"847603962194721523867993048528558551380823699291873352033111"
+	"096244814245789620930756114228971363838828108534030152031715"
+	"929722499546436547773404017947035596936338462103946797525667"
+	"033935433489292620531649199724400832489751788129365426568881"
+	"328357966337292439204382537174357675404105580244018783685041"
+	"224798457022189315692175787257287203633134300759209060570319"
+	"508886475377719911176071302732819878165468592717406388218727"
+	"585026352127436844762994722826390779737322113768842482160812"
+	"973100323673863050234437722898796145596181862320550301285861"
+	"980052194863780743808106946940079349630782676930197134206259"
+	"739125377941060751175427888774493677478593805682322173891730"
+	"311959284895178856039354015035864931073602059531001572891528"
+	"828982167810245343327388887928886208615327002834690068636094"
+	"325052251429781641267821367266715283643659749152264457938319"
+	"185148303604827363623405060374573505789923003843438436174489"
+	"383805098509083722050766328250349793203837202162624690093533"
+	"478114438810603140565070517669964629947543608404988178019652"
+	"088162307525611931821066493746994641048066011859814337589829"
+	"896549720562117090677291541318153057715167624128318297771376"
+	"531788973088699647168159229805877415594828532539839967464064"
+	"556647594705830374653113373530876658380240145380423210673778"
+	"776803592627231257495817394581607796277282644312510714532297"
+	"108722017217547317744900647318022108570947064304280100418971"
+	"450552007356891519523293614416944016354756866350050833501416"
+	"942505071203810116719053430543531027953437436446745566839242"
+	"129860410443198862219469972163224971258348314341755015213118"
+	"628882713134766297624091644805801186976152536913514712919240"
+	"503721680740586016832099946807466311777189050656676962849581"
+	"383790904722087478646766320517056183581970236248227413322748"
+	"304134245717987665377396011236706627320817654565682680006957"
+	"454759981618023476448544673508068369492066566895437050571584"
+	"345511070959483898938738225050292533674383091612495407126805"
+	"381796487365892131916426837522671623266627483065655765705534"
+	"239355214893395905702329340402794052884259146049064629582075"
+	"576563307670749189662176976725361937046200576007893814439695"
+	"301892528761187544161389682003509216791271836545495416676148"
+	"151145195082668323677621182991451835324281863619641773620601"
+	"014510950996746726615703771971266687151564427772359427340566"
+	"909351858654807999781808513034680104078196607462166928018863"
+	"385629928965649243954503391493597963417955268639606791452833"
+	"692467872935741940362479842688642227725662504694679557678170"
+	"929873774151037857807219938356152056997839625453727441947651"
+	"198316190826615266016347740875615970031428012228328190610356"
+	"706715662722241878767131224669837573607121539572299329404101"
+	"274463156060298348931678277361174057097484704587036227686110"
+	"677413094941011961262438027467952964727129462752693949019764"
+	"164538344775554466171428121848999818969114034332797672927989"
+	"107710137279281184295118233855942385256333164153378143279674"
+	"287318136458207166174996112638689535976047617221520910027427"
+	"485161965702038805161865494457444594178063766957037428053543"
+	"239915792369877811053417485684498667123216132006378630814477"
+	"106813088898563644909178779463295955587688067277368683836470"
+	"612208483299572260344016516194247232298740800342116589984844"
+	"356688576984553507410293250093945014209879983314562948451929"
+	"862241009275783684229669718641013736581856815277185073259140"
+	"534024850924787544871716174654424640728091372513505922826813"
+	"145390369149590652886241000625495880523771672395227312971578"
+	"042522330551788256261683080675549820375567692574152956993944"
+	"504349004617185470945673049153218968830613586193253490318451"
+	"871770642617802890083608004460414305421033261048294750210470"
+	"303202846332054952531617433058538758154347087854561609738141"
+	"615145103748777579733574989673510104836750248325511777237502"
+	"526995647687215364262385606217553691332159421351598905950537"
+	"513518351520709657614578131639854432532002236696200855408766"
+	"520105076378983345708235918180749273124590433024519869147132"
+	"931932462703067876214268579940066030521414045386366551780718"
+	"510535469417760242493782392451178913322503092692423649855756"
+	"521279456558275339921490892868856862895022564047205838132429"
+	"286600764536839036698193759634186899291274131934296059833048"
+	"690594627623595320676097721540716472990950611858372856271872"
+	"423573251506230042608074167903809812264198034505185435990821"
+	"356377966484742250577592243727298923187891299404854048446822"
+	"719928239317254073429532989089675503790372464487057264894107"
+	"613242300912487070053676379388189496900004239731820229886894"
+	"053019610823763957809819187948639826973433528683168917360632"
+	"750040517847686479093538683816924213175672979768822065627696"
+	"943474914020483056384006872835738311110986586149510661361915"
+	"342172527409078742250880056867149831149121019729847242037335"
+	"904440063130981999650700416787683293610119590221942974317455"
+	"716336227454789239793488032299063316588917505912406020220045"
+	"264868457718282165158892171630470709599503997282778168097827"
+	"497383884195820921583645621293941200045604062174334998171535"
+	"030513366277293714389988219756129580868518167923841173364269"
+	"774889246694435264051484911461988227011238661037602452710188"
+	"911900438270362280391121270021679247152879324195035694278071"
+	"477495720447513017171148877312193736366348711630105507365864"
+	"598069586257026976295714123943691621672377694552248018987680"
+	"338612382795605985191106112971398796002636340393693119651973"
+	"344711646854574482999700397952536878348512983782198330513744"
+	"803168936076427075943787200489575435147989033386529956551570"
+	"669047103070223076797892329848058499725632813524581372640746"
+	"415923016932853954152472487866287318545051065376430120748079"
+	"948860283261855738836955246188128622509828635867225708782966"
+	"017423170535046509131388753895013061151387840089512861842615"
+	"441729962315731301087767989000918136617870582141517330935619"
+	"268642915983553727587587676791953536960714236687847602589538"
+	"927962585440961131240218794236944630211930970546118745080346"
+	"860636620310193382167597465544174488399379683716417891139157"
+	"575146359165023126594124268610800205258776019000550873739401"
+	"445303129974560221438061891795442780328126230093178952504570"
+	"380957199592993338719686487798275474853570100033092481743129"
+	"836527369756194343789131822069107283156271772679863538216891"
+	"518713732520976834628418347371261368933454629405371869789752"
+	"684339805368137450825001203521193642598238954329102258317328"
+	"098581116978343883611320940814793654745807336162557057195523"
+	"274610323601685712314930799144191673243832283659669368716126"
+	"815118360353441303009936083544193524336572930768154506567477"
+	"565558211143508568396203781879592033787429012753106951129653"
+	"074630840496376302289668286168325299592504054003803917262600"
+	"195834001336180158836765599057537979745423711070158871650976"
+	"475924365707758401328959478791343481250979029363644046972556"
+	"422294698558561670817595994409985323205913035009923360820734"
+	"795546082012200697671744573982535291905800552837118327702125"
+	"018691644774560916230166739307705017656065679867259837178918"
+	"123254219579594535869171376148397610005870749992910355727569"
+	"593729567789260479930835305112462727870603529547312621720559"
+	"953074675620549217314861961905983960910846471569192459257648"
+	"138212674016814845327496495507412976753381357634960529826817"
+	"906824433858135485518651632270319927880227571858035210375443"
+	"324098235463619647723862420557582355632137583370066602155641"
+	"218235815280874570372436217877316899649287051943247206509113"
+	"311767578124e-4966",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16496L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L),
+  TEST ("-3.237587559719012555462219479113823276249784669017340504844"
+	"942194598519770062059685508835745638324970127939070738424059"
+	"838293609943191271023342555035986308991521396355375667467208"
+	"367312819235870119724263252776995195727778126085574034035411"
+	"017344128491238136414394551514178668780674015531193282296319"
+	"913113495953953933831631032855605791532328598034154166422617"
+	"226534880263244723830482289656875701701315902175019974435037"
+	"627824356684033058939701577883356651733717468531204705842607"
+	"568803666569711421917525834491783583598401321476176752039857"
+	"173551930268891446850107760584333855521475305010940756813993"
+	"214730850216669600967698749412592167692757446422169965426483"
+	"919224341062751152057061076522973232731542382055087239368522"
+	"167656194830741819605276971705738272393130698937532095725613"
+	"383807312946395184980707534803490003540251394324459987958400"
+	"939111001126190861523615485938285497714410609640798273816511"
+	"769391568591823198476415765275534341709798367687043373145262"
+	"933998108452661682659942586304978413812755518166239176614473"
+	"815940025342279575304159493260770068030636885746695206392378"
+	"276051948759263882079389379666940357441139816661913198656187"
+	"703463519723262653223919257185751827493927586153153792077729"
+	"913353547954808876263400200663495414360816863385220457719546"
+	"338953323399286762099558324132103460225580066817535680886906"
+	"060858264089074120360391613368274811868067637495154569071591"
+	"624185979937989402513750464346904036668477876379544221432800"
+	"037599944499161940321774835027752710681217554286366043661491"
+	"013593886229615614494736186475932160549630939390542165126494"
+	"166960681499481651861215529870984381726203476917507560266886"
+	"692644952355421814201350137351435237036912624414444992497142"
+	"303802423605897110605364956579914507108584002230524766331348"
+	"271456591814078599780820974961968314684496428310691542272663"
+	"818486132771177670874927831510002443658417608078383611526899"
+	"905533629456904234997116303929427262032216072887961072267850"
+	"618234492852606488522739744757845004694461812790342894353802"
+	"938671928834585447328398711684245164703625580196678024410303"
+	"542544534512706792134908369873605619756775207191558754413381"
+	"571756431003248529020572648048946458999967788526617126349345"
+	"966896362376841092268841417781414969315002419192181972121568"
+	"811432459128737128140063645558482525300089060238860392371092"
+	"102688097987915838860882370022268312322882235690785726190915"
+	"062699382576041643741555139697348927957856990969985342299599"
+	"797431503615312038393069808777315725367497595040966093808407"
+	"117316369389112216628231869173217637452855462790553030636920"
+	"487796465880633399632793882734473382168542596184679158149228"
+	"725004404714293460752371865436947855237307240001863573081174"
+	"929166645758276081272685156100195420794154740486637315823136"
+	"798695124738873328565945598241199335059398955049459449844741"
+	"098478330319112865980346771381982151154499846478545530650091"
+	"824164892591396650703633600023191521502618379988693800703884"
+	"555191647864959327260468892793195316578510173816406054364319"
+	"294906641284764788384683586662382042642852654156477478700779"
+	"123584369965723284711409361741235548687181052639639279285373"
+	"139084165798451899763979500837428077782309910703522399860010"
+	"310321116623028924118238023770381424894162717815296210097245"
+	"221769714495449744327945091943394325259297771090128969600269"
+	"822520904193880119094781214175887316220311309028456568749910"
+	"010962366586834018403242866721783519806933018588077977626913"
+	"774236680220258524711348037750591646286531625306510583751929"
+	"280541119187219596706615736304036444366663256426643903386694"
+	"536649648686380122198677895751002327229059364018755164517060"
+	"321515091173358005987498359799467138817648881479418623694683"
+	"454881683746841149715181334498096967702613110590140231345676"
+	"956141227850879905018558219984441819798054463206764413100251"
+	"255775535830770535620946159535406497134759043192647996190512"
+	"978586496199656070707105117773853504277795024754647024165589"
+	"129442822627147868917463795166386552921913398878270019905147"
+	"510849518894114102536073369047160130990411626048426437835295"
+	"683097278297774735181045158616674564080237813146623269215019"
+	"613231938626758927531490945029356207933289363847181438902539"
+	"297057969524961348607844569521442237914899100699610921669921"
+	"572167164875488132527187949318543809703388178931170799769792"
+	"886086681284964861608656928109305369539955846964197786677053"
+	"847603962194721523867993048528558551380823699291873352033111"
+	"096244814245789620930756114228971363838828108534030152031715"
+	"929722499546436547773404017947035596936338462103946797525667"
+	"033935433489292620531649199724400832489751788129365426568881"
+	"328357966337292439204382537174357675404105580244018783685041"
+	"224798457022189315692175787257287203633134300759209060570319"
+	"508886475377719911176071302732819878165468592717406388218727"
+	"585026352127436844762994722826390779737322113768842482160812"
+	"973100323673863050234437722898796145596181862320550301285861"
+	"980052194863780743808106946940079349630782676930197134206259"
+	"739125377941060751175427888774493677478593805682322173891730"
+	"311959284895178856039354015035864931073602059531001572891528"
+	"828982167810245343327388887928886208615327002834690068636094"
+	"325052251429781641267821367266715283643659749152264457938319"
+	"185148303604827363623405060374573505789923003843438436174489"
+	"383805098509083722050766328250349793203837202162624690093533"
+	"478114438810603140565070517669964629947543608404988178019652"
+	"088162307525611931821066493746994641048066011859814337589829"
+	"896549720562117090677291541318153057715167624128318297771376"
+	"531788973088699647168159229805877415594828532539839967464064"
+	"556647594705830374653113373530876658380240145380423210673778"
+	"776803592627231257495817394581607796277282644312510714532297"
+	"108722017217547317744900647318022108570947064304280100418971"
+	"450552007356891519523293614416944016354756866350050833501416"
+	"942505071203810116719053430543531027953437436446745566839242"
+	"129860410443198862219469972163224971258348314341755015213118"
+	"628882713134766297624091644805801186976152536913514712919240"
+	"503721680740586016832099946807466311777189050656676962849581"
+	"383790904722087478646766320517056183581970236248227413322748"
+	"304134245717987665377396011236706627320817654565682680006957"
+	"454759981618023476448544673508068369492066566895437050571584"
+	"345511070959483898938738225050292533674383091612495407126805"
+	"381796487365892131916426837522671623266627483065655765705534"
+	"239355214893395905702329340402794052884259146049064629582075"
+	"576563307670749189662176976725361937046200576007893814439695"
+	"301892528761187544161389682003509216791271836545495416676148"
+	"151145195082668323677621182991451835324281863619641773620601"
+	"014510950996746726615703771971266687151564427772359427340566"
+	"909351858654807999781808513034680104078196607462166928018863"
+	"385629928965649243954503391493597963417955268639606791452833"
+	"692467872935741940362479842688642227725662504694679557678170"
+	"929873774151037857807219938356152056997839625453727441947651"
+	"198316190826615266016347740875615970031428012228328190610356"
+	"706715662722241878767131224669837573607121539572299329404101"
+	"274463156060298348931678277361174057097484704587036227686110"
+	"677413094941011961262438027467952964727129462752693949019764"
+	"164538344775554466171428121848999818969114034332797672927989"
+	"107710137279281184295118233855942385256333164153378143279674"
+	"287318136458207166174996112638689535976047617221520910027427"
+	"485161965702038805161865494457444594178063766957037428053543"
+	"239915792369877811053417485684498667123216132006378630814477"
+	"106813088898563644909178779463295955587688067277368683836470"
+	"612208483299572260344016516194247232298740800342116589984844"
+	"356688576984553507410293250093945014209879983314562948451929"
+	"862241009275783684229669718641013736581856815277185073259140"
+	"534024850924787544871716174654424640728091372513505922826813"
+	"145390369149590652886241000625495880523771672395227312971578"
+	"042522330551788256261683080675549820375567692574152956993944"
+	"504349004617185470945673049153218968830613586193253490318451"
+	"871770642617802890083608004460414305421033261048294750210470"
+	"303202846332054952531617433058538758154347087854561609738141"
+	"615145103748777579733574989673510104836750248325511777237502"
+	"526995647687215364262385606217553691332159421351598905950537"
+	"513518351520709657614578131639854432532002236696200855408766"
+	"520105076378983345708235918180749273124590433024519869147132"
+	"931932462703067876214268579940066030521414045386366551780718"
+	"510535469417760242493782392451178913322503092692423649855756"
+	"521279456558275339921490892868856862895022564047205838132429"
+	"286600764536839036698193759634186899291274131934296059833048"
+	"690594627623595320676097721540716472990950611858372856271872"
+	"423573251506230042608074167903809812264198034505185435990821"
+	"356377966484742250577592243727298923187891299404854048446822"
+	"719928239317254073429532989089675503790372464487057264894107"
+	"613242300912487070053676379388189496900004239731820229886894"
+	"053019610823763957809819187948639826973433528683168917360632"
+	"750040517847686479093538683816924213175672979768822065627696"
+	"943474914020483056384006872835738311110986586149510661361915"
+	"342172527409078742250880056867149831149121019729847242037335"
+	"904440063130981999650700416787683293610119590221942974317455"
+	"716336227454789239793488032299063316588917505912406020220045"
+	"264868457718282165158892171630470709599503997282778168097827"
+	"497383884195820921583645621293941200045604062174334998171535"
+	"030513366277293714389988219756129580868518167923841173364269"
+	"774889246694435264051484911461988227011238661037602452710188"
+	"911900438270362280391121270021679247152879324195035694278071"
+	"477495720447513017171148877312193736366348711630105507365864"
+	"598069586257026976295714123943691621672377694552248018987680"
+	"338612382795605985191106112971398796002636340393693119651973"
+	"344711646854574482999700397952536878348512983782198330513744"
+	"803168936076427075943787200489575435147989033386529956551570"
+	"669047103070223076797892329848058499725632813524581372640746"
+	"415923016932853954152472487866287318545051065376430120748079"
+	"948860283261855738836955246188128622509828635867225708782966"
+	"017423170535046509131388753895013061151387840089512861842615"
+	"441729962315731301087767989000918136617870582141517330935619"
+	"268642915983553727587587676791953536960714236687847602589538"
+	"927962585440961131240218794236944630211930970546118745080346"
+	"860636620310193382167597465544174488399379683716417891139157"
+	"575146359165023126594124268610800205258776019000550873739401"
+	"445303129974560221438061891795442780328126230093178952504570"
+	"380957199592993338719686487798275474853570100033092481743129"
+	"836527369756194343789131822069107283156271772679863538216891"
+	"518713732520976834628418347371261368933454629405371869789752"
+	"684339805368137450825001203521193642598238954329102258317328"
+	"098581116978343883611320940814793654745807336162557057195523"
+	"274610323601685712314930799144191673243832283659669368716126"
+	"815118360353441303009936083544193524336572930768154506567477"
+	"565558211143508568396203781879592033787429012753106951129653"
+	"074630840496376302289668286168325299592504054003803917262600"
+	"195834001336180158836765599057537979745423711070158871650976"
+	"475924365707758401328959478791343481250979029363644046972556"
+	"422294698558561670817595994409985323205913035009923360820734"
+	"795546082012200697671744573982535291905800552837118327702125"
+	"018691644774560916230166739307705017656065679867259837178918"
+	"123254219579594535869171376148397610005870749992910355727569"
+	"593729567789260479930835305112462727870603529547312621720559"
+	"953074675620549217314861961905983960910846471569192459257648"
+	"138212674016814845327496495507412976753381357634960529826817"
+	"906824433858135485518651632270319927880227571858035210375443"
+	"324098235463619647723862420557582355632137583370066602155641"
+	"218235815280874570372436217877316899649287051943247206509113"
+	"311767578125e-4966",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16496L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L),
+  TEST ("-3.237587559719012555462219479113823276249784669017340504844"
+	"942194598519770062059685508835745638324970127939070738424059"
+	"838293609943191271023342555035986308991521396355375667467208"
+	"367312819235870119724263252776995195727778126085574034035411"
+	"017344128491238136414394551514178668780674015531193282296319"
+	"913113495953953933831631032855605791532328598034154166422617"
+	"226534880263244723830482289656875701701315902175019974435037"
+	"627824356684033058939701577883356651733717468531204705842607"
+	"568803666569711421917525834491783583598401321476176752039857"
+	"173551930268891446850107760584333855521475305010940756813993"
+	"214730850216669600967698749412592167692757446422169965426483"
+	"919224341062751152057061076522973232731542382055087239368522"
+	"167656194830741819605276971705738272393130698937532095725613"
+	"383807312946395184980707534803490003540251394324459987958400"
+	"939111001126190861523615485938285497714410609640798273816511"
+	"769391568591823198476415765275534341709798367687043373145262"
+	"933998108452661682659942586304978413812755518166239176614473"
+	"815940025342279575304159493260770068030636885746695206392378"
+	"276051948759263882079389379666940357441139816661913198656187"
+	"703463519723262653223919257185751827493927586153153792077729"
+	"913353547954808876263400200663495414360816863385220457719546"
+	"338953323399286762099558324132103460225580066817535680886906"
+	"060858264089074120360391613368274811868067637495154569071591"
+	"624185979937989402513750464346904036668477876379544221432800"
+	"037599944499161940321774835027752710681217554286366043661491"
+	"013593886229615614494736186475932160549630939390542165126494"
+	"166960681499481651861215529870984381726203476917507560266886"
+	"692644952355421814201350137351435237036912624414444992497142"
+	"303802423605897110605364956579914507108584002230524766331348"
+	"271456591814078599780820974961968314684496428310691542272663"
+	"818486132771177670874927831510002443658417608078383611526899"
+	"905533629456904234997116303929427262032216072887961072267850"
+	"618234492852606488522739744757845004694461812790342894353802"
+	"938671928834585447328398711684245164703625580196678024410303"
+	"542544534512706792134908369873605619756775207191558754413381"
+	"571756431003248529020572648048946458999967788526617126349345"
+	"966896362376841092268841417781414969315002419192181972121568"
+	"811432459128737128140063645558482525300089060238860392371092"
+	"102688097987915838860882370022268312322882235690785726190915"
+	"062699382576041643741555139697348927957856990969985342299599"
+	"797431503615312038393069808777315725367497595040966093808407"
+	"117316369389112216628231869173217637452855462790553030636920"
+	"487796465880633399632793882734473382168542596184679158149228"
+	"725004404714293460752371865436947855237307240001863573081174"
+	"929166645758276081272685156100195420794154740486637315823136"
+	"798695124738873328565945598241199335059398955049459449844741"
+	"098478330319112865980346771381982151154499846478545530650091"
+	"824164892591396650703633600023191521502618379988693800703884"
+	"555191647864959327260468892793195316578510173816406054364319"
+	"294906641284764788384683586662382042642852654156477478700779"
+	"123584369965723284711409361741235548687181052639639279285373"
+	"139084165798451899763979500837428077782309910703522399860010"
+	"310321116623028924118238023770381424894162717815296210097245"
+	"221769714495449744327945091943394325259297771090128969600269"
+	"822520904193880119094781214175887316220311309028456568749910"
+	"010962366586834018403242866721783519806933018588077977626913"
+	"774236680220258524711348037750591646286531625306510583751929"
+	"280541119187219596706615736304036444366663256426643903386694"
+	"536649648686380122198677895751002327229059364018755164517060"
+	"321515091173358005987498359799467138817648881479418623694683"
+	"454881683746841149715181334498096967702613110590140231345676"
+	"956141227850879905018558219984441819798054463206764413100251"
+	"255775535830770535620946159535406497134759043192647996190512"
+	"978586496199656070707105117773853504277795024754647024165589"
+	"129442822627147868917463795166386552921913398878270019905147"
+	"510849518894114102536073369047160130990411626048426437835295"
+	"683097278297774735181045158616674564080237813146623269215019"
+	"613231938626758927531490945029356207933289363847181438902539"
+	"297057969524961348607844569521442237914899100699610921669921"
+	"572167164875488132527187949318543809703388178931170799769792"
+	"886086681284964861608656928109305369539955846964197786677053"
+	"847603962194721523867993048528558551380823699291873352033111"
+	"096244814245789620930756114228971363838828108534030152031715"
+	"929722499546436547773404017947035596936338462103946797525667"
+	"033935433489292620531649199724400832489751788129365426568881"
+	"328357966337292439204382537174357675404105580244018783685041"
+	"224798457022189315692175787257287203633134300759209060570319"
+	"508886475377719911176071302732819878165468592717406388218727"
+	"585026352127436844762994722826390779737322113768842482160812"
+	"973100323673863050234437722898796145596181862320550301285861"
+	"980052194863780743808106946940079349630782676930197134206259"
+	"739125377941060751175427888774493677478593805682322173891730"
+	"311959284895178856039354015035864931073602059531001572891528"
+	"828982167810245343327388887928886208615327002834690068636094"
+	"325052251429781641267821367266715283643659749152264457938319"
+	"185148303604827363623405060374573505789923003843438436174489"
+	"383805098509083722050766328250349793203837202162624690093533"
+	"478114438810603140565070517669964629947543608404988178019652"
+	"088162307525611931821066493746994641048066011859814337589829"
+	"896549720562117090677291541318153057715167624128318297771376"
+	"531788973088699647168159229805877415594828532539839967464064"
+	"556647594705830374653113373530876658380240145380423210673778"
+	"776803592627231257495817394581607796277282644312510714532297"
+	"108722017217547317744900647318022108570947064304280100418971"
+	"450552007356891519523293614416944016354756866350050833501416"
+	"942505071203810116719053430543531027953437436446745566839242"
+	"129860410443198862219469972163224971258348314341755015213118"
+	"628882713134766297624091644805801186976152536913514712919240"
+	"503721680740586016832099946807466311777189050656676962849581"
+	"383790904722087478646766320517056183581970236248227413322748"
+	"304134245717987665377396011236706627320817654565682680006957"
+	"454759981618023476448544673508068369492066566895437050571584"
+	"345511070959483898938738225050292533674383091612495407126805"
+	"381796487365892131916426837522671623266627483065655765705534"
+	"239355214893395905702329340402794052884259146049064629582075"
+	"576563307670749189662176976725361937046200576007893814439695"
+	"301892528761187544161389682003509216791271836545495416676148"
+	"151145195082668323677621182991451835324281863619641773620601"
+	"014510950996746726615703771971266687151564427772359427340566"
+	"909351858654807999781808513034680104078196607462166928018863"
+	"385629928965649243954503391493597963417955268639606791452833"
+	"692467872935741940362479842688642227725662504694679557678170"
+	"929873774151037857807219938356152056997839625453727441947651"
+	"198316190826615266016347740875615970031428012228328190610356"
+	"706715662722241878767131224669837573607121539572299329404101"
+	"274463156060298348931678277361174057097484704587036227686110"
+	"677413094941011961262438027467952964727129462752693949019764"
+	"164538344775554466171428121848999818969114034332797672927989"
+	"107710137279281184295118233855942385256333164153378143279674"
+	"287318136458207166174996112638689535976047617221520910027427"
+	"485161965702038805161865494457444594178063766957037428053543"
+	"239915792369877811053417485684498667123216132006378630814477"
+	"106813088898563644909178779463295955587688067277368683836470"
+	"612208483299572260344016516194247232298740800342116589984844"
+	"356688576984553507410293250093945014209879983314562948451929"
+	"862241009275783684229669718641013736581856815277185073259140"
+	"534024850924787544871716174654424640728091372513505922826813"
+	"145390369149590652886241000625495880523771672395227312971578"
+	"042522330551788256261683080675549820375567692574152956993944"
+	"504349004617185470945673049153218968830613586193253490318451"
+	"871770642617802890083608004460414305421033261048294750210470"
+	"303202846332054952531617433058538758154347087854561609738141"
+	"615145103748777579733574989673510104836750248325511777237502"
+	"526995647687215364262385606217553691332159421351598905950537"
+	"513518351520709657614578131639854432532002236696200855408766"
+	"520105076378983345708235918180749273124590433024519869147132"
+	"931932462703067876214268579940066030521414045386366551780718"
+	"510535469417760242493782392451178913322503092692423649855756"
+	"521279456558275339921490892868856862895022564047205838132429"
+	"286600764536839036698193759634186899291274131934296059833048"
+	"690594627623595320676097721540716472990950611858372856271872"
+	"423573251506230042608074167903809812264198034505185435990821"
+	"356377966484742250577592243727298923187891299404854048446822"
+	"719928239317254073429532989089675503790372464487057264894107"
+	"613242300912487070053676379388189496900004239731820229886894"
+	"053019610823763957809819187948639826973433528683168917360632"
+	"750040517847686479093538683816924213175672979768822065627696"
+	"943474914020483056384006872835738311110986586149510661361915"
+	"342172527409078742250880056867149831149121019729847242037335"
+	"904440063130981999650700416787683293610119590221942974317455"
+	"716336227454789239793488032299063316588917505912406020220045"
+	"264868457718282165158892171630470709599503997282778168097827"
+	"497383884195820921583645621293941200045604062174334998171535"
+	"030513366277293714389988219756129580868518167923841173364269"
+	"774889246694435264051484911461988227011238661037602452710188"
+	"911900438270362280391121270021679247152879324195035694278071"
+	"477495720447513017171148877312193736366348711630105507365864"
+	"598069586257026976295714123943691621672377694552248018987680"
+	"338612382795605985191106112971398796002636340393693119651973"
+	"344711646854574482999700397952536878348512983782198330513744"
+	"803168936076427075943787200489575435147989033386529956551570"
+	"669047103070223076797892329848058499725632813524581372640746"
+	"415923016932853954152472487866287318545051065376430120748079"
+	"948860283261855738836955246188128622509828635867225708782966"
+	"017423170535046509131388753895013061151387840089512861842615"
+	"441729962315731301087767989000918136617870582141517330935619"
+	"268642915983553727587587676791953536960714236687847602589538"
+	"927962585440961131240218794236944630211930970546118745080346"
+	"860636620310193382167597465544174488399379683716417891139157"
+	"575146359165023126594124268610800205258776019000550873739401"
+	"445303129974560221438061891795442780328126230093178952504570"
+	"380957199592993338719686487798275474853570100033092481743129"
+	"836527369756194343789131822069107283156271772679863538216891"
+	"518713732520976834628418347371261368933454629405371869789752"
+	"684339805368137450825001203521193642598238954329102258317328"
+	"098581116978343883611320940814793654745807336162557057195523"
+	"274610323601685712314930799144191673243832283659669368716126"
+	"815118360353441303009936083544193524336572930768154506567477"
+	"565558211143508568396203781879592033787429012753106951129653"
+	"074630840496376302289668286168325299592504054003803917262600"
+	"195834001336180158836765599057537979745423711070158871650976"
+	"475924365707758401328959478791343481250979029363644046972556"
+	"422294698558561670817595994409985323205913035009923360820734"
+	"795546082012200697671744573982535291905800552837118327702125"
+	"018691644774560916230166739307705017656065679867259837178918"
+	"123254219579594535869171376148397610005870749992910355727569"
+	"593729567789260479930835305112462727870603529547312621720559"
+	"953074675620549217314861961905983960910846471569192459257648"
+	"138212674016814845327496495507412976753381357634960529826817"
+	"906824433858135485518651632270319927880227571858035210375443"
+	"324098235463619647723862420557582355632137583370066602155641"
+	"218235815280874570372436217877316899649287051943247206509113"
+	"311767578126e-4966",
+	false,
+	-0x8p-152f,
+	-0x0p+0f,
+	-0x0p+0f,
+	-0x0p+0f,
+	false,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x8p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-1076L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
+	false,
+	-0x4p-16496L,
+	-0x4p-16496L,
+	-0x0p+0L,
+	-0x0p+0L),
 };
 
 static int