]> Cypherpunks repositories - gostls13.git/commitdiff
internal/strconv: add testbase tests
authorRuss Cox <rsc@golang.org>
Tue, 11 Nov 2025 13:47:14 +0000 (05:47 -0800)
committerGopher Robot <gobot@golang.org>
Tue, 25 Nov 2025 21:44:38 +0000 (13:44 -0800)
Add ability to test against inputs chosen by from the stress
tests computed by Vern Paxson's testbase program.

Checked that 'go test -testbase' passes.

Change-Id: I81057e55df6cd369b40ce623a59884e6ead0ed76
Reviewed-on: https://go-review.googlesource.com/c/go/+/719620
Reviewed-by: Alan Donovan <adonovan@google.com>
Auto-Submit: Russ Cox <rsc@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/internal/strconv/fp_test.go
src/internal/strconv/ftoa_test.go
src/internal/strconv/testdata/README [new file with mode: 0644]
src/internal/strconv/testdata/atof1k.txt [new file with mode: 0644]
src/internal/strconv/testdata/ftoa1k.txt [new file with mode: 0644]
src/internal/strconv/testdata/testfp.txt

index ba739941cc8a920f64d822e6d65e2adfcf8f3cea..92a663c6e331b47f2990e9bb17a58758d9c1d383 100644 (file)
@@ -5,10 +5,13 @@
 package strconv_test
 
 import (
-       "bufio"
        _ "embed"
+       "flag"
        "fmt"
-       "internal/strconv"
+       . "internal/strconv"
+       "io"
+       "net/http"
+       "os"
        "strings"
        "testing"
 )
@@ -25,15 +28,15 @@ func pow2(i int) float64 {
        return pow2(i/2) * pow2(i-i/2)
 }
 
-// Wrapper around strconv.ParseFloat(x, 64).  Handles dddddp+ddd (binary exponent)
-// itself, passes the rest on to strconv.ParseFloat.
+// Wrapper around ParseFloat(x, 64).  Handles dddddp+ddd (binary exponent)
+// itself, passes the rest on to ParseFloat.
 func myatof64(s string) (f float64, ok bool) {
        if mant, exp, ok := strings.Cut(s, "p"); ok {
-               n, err := strconv.ParseInt(mant, 10, 64)
+               n, err := ParseInt(mant, 10, 64)
                if err != nil {
                        return 0, false
                }
-               e, err1 := strconv.Atoi(exp)
+               e, err1 := Atoi(exp)
                if err1 != nil {
                        println("bad e", exp)
                        return 0, false
@@ -61,7 +64,7 @@ func myatof64(s string) (f float64, ok bool) {
                }
                return v * pow2(e), true
        }
-       f1, err := strconv.ParseFloat(s, 64)
+       f1, err := ParseFloat(s, 64)
        if err != nil {
                return 0, false
        }
@@ -72,19 +75,19 @@ func myatof64(s string) (f float64, ok bool) {
 // itself, passes the rest on to strconv.ParseFloat.
 func myatof32(s string) (f float32, ok bool) {
        if mant, exp, ok := strings.Cut(s, "p"); ok {
-               n, err := strconv.Atoi(mant)
+               n, err := Atoi(mant)
                if err != nil {
                        println("bad n", mant)
                        return 0, false
                }
-               e, err1 := strconv.Atoi(exp)
+               e, err1 := Atoi(exp)
                if err1 != nil {
                        println("bad p", exp)
                        return 0, false
                }
                return float32(float64(n) * pow2(e)), true
        }
-       f64, err1 := strconv.ParseFloat(s, 32)
+       f64, err1 := ParseFloat(s, 32)
        f1 := float32(f64)
        if err1 != nil {
                return 0, false
@@ -96,9 +99,9 @@ func myatof32(s string) (f float32, ok bool) {
 var testfp string
 
 func TestFp(t *testing.T) {
-       s := bufio.NewScanner(strings.NewReader(testfp))
-       for lineno := 1; s.Scan(); lineno++ {
-               line := s.Text()
+       lineno := 0
+       for line := range strings.Lines(testfp) {
+               lineno++
                line, _, _ = strings.Cut(line, "#")
                line = strings.TrimSpace(line)
                if line == "" {
@@ -133,7 +136,128 @@ func TestFp(t *testing.T) {
                        t.Errorf("testdata/testfp.txt:%d: %s %s %s %s: have %s want %s", lineno, a[0], a[1], a[2], a[3], s, a[3])
                }
        }
-       if s.Err() != nil {
-               t.Fatal("testfp: read testdata/testfp.txt: ", s.Err())
+}
+
+// The -testbase flag runs the full testbase input set instead of the
+// random sample in testdata/*1k.txt. See testdata/README for details.
+var testbase = flag.Bool("testbase", false, "download and test full testbase testdata")
+
+// testbaseURL is the URL for downloading the full testbase testdata.
+// There is also a copy on "https://swtch.com/testbase/".
+var testbaseURL = "https://gist.githubusercontent.com/rsc/606b378b0bf95c24a6fd6cef99e262e1/raw/128a03890e536bdf403e6cc768b0737405c6734d/"
+
+//go:embed testdata/atof1k.txt
+var atof1ktxt string
+
+//go:embed testdata/ftoa1k.txt
+var ftoa1ktxt string
+
+// openTestbase opens the named testbase data file.
+// By default it opens testdata/name1k.txt,
+// but if the -testbase flag has been set,
+// then it opens the full testdata/name.txt,
+// downloading that file if necessary.
+func openTestbase(t *testing.T, name string) (file, data string) {
+       if !*testbase {
+               switch name {
+               case "atof":
+                       return "testdata/atof1k.txt", atof1ktxt
+               case "ftoa":
+                       return "testdata/ftoa1k.txt", ftoa1ktxt
+               }
+               t.Fatalf("unknown file %s", name)
+       }
+
+       // Use cached copy if present.
+       file = "testdata/" + name + ".txt"
+       if data, err := os.ReadFile(file); err == nil {
+               return file, string(data)
+       }
+
+       // Download copy.
+       url := testbaseURL + name + ".txt"
+       resp, err := http.Get(url)
+       if err != nil {
+               t.Fatalf("%s: %s", url, err)
+       }
+       if resp.StatusCode != 200 {
+               t.Fatalf("%s: %s", url, resp.Status)
+       }
+       bytes, err := io.ReadAll(resp.Body)
+       resp.Body.Close()
+       if err != nil {
+               t.Fatalf("%s: %s", url, err)
+       }
+       if err := os.WriteFile(file, bytes, 0666); err != nil {
+               t.Fatal(err)
+       }
+       return file, string(bytes)
+}
+
+func TestParseFloatTestdata(t *testing.T) {
+       // Test testbase inputs, optimized against not.
+       name, data := openTestbase(t, "atof")
+       fail := 0
+       lineno := 0
+       for line := range strings.Lines(data) {
+               lineno++
+               s := strings.TrimSpace(line)
+               if strings.HasPrefix(s, "#") || s == "" {
+                       continue
+               }
+               SetOptimize(false)
+               want, err1 := ParseFloat(s, 64)
+               SetOptimize(true)
+               have, err2 := ParseFloat(s, 64)
+               if err1 != nil {
+                       // Error in test data; should not happen.
+                       t.Errorf("%s:%d: ParseFloat(%#q): %v", name, lineno, s, err1)
+                       continue
+               }
+               if err2 != nil {
+                       t.Errorf("ParseFloat(%#q): %v", s, err2)
+                       if fail++; fail > 100 {
+                               t.Fatalf("too many failures")
+                       }
+                       continue
+               }
+               if have != want {
+                       t.Errorf("ParseFloat(%#q) = %#x, want %#x", s, have, want)
+                       if fail++; fail > 100 {
+                               t.Fatalf("too many failures")
+                       }
+               }
+       }
+}
+
+func TestFormatFloatTestdata(t *testing.T) {
+       // Test testbase inputs, optimized against not.
+       name, data := openTestbase(t, "ftoa")
+       fail := 0
+       lineno := 0
+       for line := range strings.Lines(data) {
+               lineno++
+               s := strings.TrimSpace(line)
+               if strings.HasPrefix(s, "#") || s == "" {
+                       continue
+               }
+               f, err := ParseFloat(s, 64)
+               if err != nil {
+                       // Error in test data; should not happen.
+                       t.Errorf("%s:%d: ParseFloat(%#q): %v", name, lineno, s, err)
+                       continue
+               }
+               for i := range 19 {
+                       SetOptimize(false)
+                       want := FormatFloat(f, 'e', i, 64)
+                       SetOptimize(true)
+                       have := FormatFloat(f, 'e', i, 64)
+                       if have != want {
+                               t.Errorf("FormatFloat(%#x, 'e', %d) = %s, want %s", f, i, have, want)
+                               if fail++; fail > 100 {
+                                       t.Fatalf("too many failures")
+                               }
+                       }
+               }
        }
 }
index b3c7904eb225ad23dcd8d897024635cb58be94a1..d5179a1bbd83d4cddc10a545968fa52493393444 100644 (file)
@@ -206,10 +206,17 @@ var ftoatests = []ftoaTest{
        {8393378656576888. * (1 << 1), 'e', 15, "1.678675731315378e+16"},
        {8738676561280626. * (1 << 4), 'e', 16, "1.3981882498049002e+17"},
        {8291032395191335. / (1 << 30), 'e', 5, "7.72163e+06"},
+       {8880392441509914. / (1 << 80), 'e', 16, "7.3456884594794477e-09"},
 
        // Exercise divisiblePow5 case in fixedFtoa
        {2384185791015625. * (1 << 12), 'e', 5, "9.76562e+18"},
        {2384185791015625. * (1 << 13), 'e', 5, "1.95312e+19"},
+
+       // Exercise potential mistakes in fixedFtoa.
+       // Found by introducing mistakes and running 'go test -testbase'.
+       {0x1.000000000005p+71, 'e', 16, "2.3611832414348645e+21"},
+       {0x1.0000p-27, 'e', 17, "7.45058059692382812e-09"},
+       {0x1.0000p-41, 'e', 17, "4.54747350886464119e-13"},
 }
 
 func TestFtoa(t *testing.T) {
diff --git a/src/internal/strconv/testdata/README b/src/internal/strconv/testdata/README
new file mode 100644 (file)
index 0000000..4219189
--- /dev/null
@@ -0,0 +1,27 @@
+testfp.txt contains conversion tests from Vern Paxson's paper
+“A Program for Testing IEEE Decimal-Binary Conversion”
+https://www.icir.org/vern/papers/testbase-report.pdf
+
+That paper from 1991 describes a tester called 'testbase',
+written in non-64-bit-safe pre-ANSI C.
+As of 2025, it is still available at ftp://ftp.ee.lbl.gov/testbase.tar.Z.
+
+The files
+
+       https://swtch.com/testbase/atof.txt
+       https://swtch.com/testbase/ftoa.txt
+
+are the test inputs that testbase generates and checks,
+logged during an actual run, totaling about 10 MB.
+
+The files atof1k.txt and ftoa1k.txt in this directory each contain
+1000 random samples of the full trace. They are used during
+'go test internal/strconv'.
+
+Running 'go test internal/strconv -testbase' downloads the
+complete files into this directory as atof.txt and ftoa.txt and
+then uses those instead of the sampled versions.
+The complete tests take about 10 seconds on a Macbook Pro.
+
+Backup copies of the files are also posted at
+https://gist.github.com/rsc/606b378b0bf95c24a6fd6cef99e262e1.
diff --git a/src/internal/strconv/testdata/atof1k.txt b/src/internal/strconv/testdata/atof1k.txt
new file mode 100644 (file)
index 0000000..d684767
--- /dev/null
@@ -0,0 +1,1000 @@
+-0.00000819394172599
+-1.0000000000000000e-118
+-1.0000000000000000e13
+-1.0000000000000001e-306
+-1.0000000000000002e-169
+-1.0000000000000003e-224
+-1.0000000000000005e-119
+-1.0000000000000007e269
+-1.0000000000000015e-162
+-1.0000000000000053e94
+-1.0000000000000070e-209
+-1.0000000000000074e-272
+-1.0000000000000151e258
+-1.0000000000000157e-87
+-1.0000000000000244e305
+-1.0000000000000247e109
+-1.0000000000000259e22
+-1.0000000000000374e-45
+-1.0000000000001310e265
+-1.0000000000012207e-264
+-1.0000000000018181e-99
+-1.0000000000020219e55
+-1.0000000000043295e-197
+-1.0000000000060985e127
+-1.0000000000063610e-282
+-1.0000000000138745e-132
+-1.0000000000178366e110
+-1.0000000000199157e222
+-1.0000000000524390e231
+-1.0000000001128339e55
+-1.0000000001257625e-78
+-1.0000000001841019e-24
+-1.0000000002042513e156
+-1.0000000002178947e296
+-1.0000000005252450e183
+-1.0000000007341792e-222
+-1.0000000007557179e30
+-1.0000000009130913e27
+-1.0000000009286410e-181
+-1.0000000012612041e-9
+-1.0000000017686445e307
+-1.0000000024539642e-87
+-1.0000000036313613e213
+-1.0000000051875403e-192
+-1.0000000068280381e-167
+-1.0000000137737877e-296
+-1.0000000203827849e212
+-1.0000000656113395e-288
+-1.0000001250270252e137
+-1.0000006092667001e125
+-1.0000012347036108e144
+-1.0000012879627292e137
+-1.0000031438588004e48
+-1.0000048347147956e-164
+-1.0000055132235515e119
+-1.0000062265721875e269
+-1.0000076400516098e-177
+-1.0000102462401065e-3
+-1.0000304177511984e-249
+-1.0000377132796035e-229
+-1.0000676698921361e256
+-1.0001178249557717e295
+-1.0001503824641194e-157
+-1.0001564810441064e-26
+-1.0002740230158000e-172
+-1.0003060625489550e-271
+-1.0005855984239872e-206
+-1.0007762872442528e-243
+-1.0014681940548644e101
+-1.0017296015751174e201
+-1.0027291406758574e85
+-1.0073573099051029e161
+-1.0107936573001087e-174
+-1.0110889712100324e-28
+-1.0184517875750861e-217
+-1.0194655318257447e177
+-1.0218711930174675e295
+-1.0247852029469519e51
+-1.0250665447340628e-143
+-1.0253678480248741e-159
+-1.0261342003245940e-289
+-1.0363864972853306e218
+-1.0451361413042084e-199
+-1.0520271803103380e211
+-1.0531040860997630e282
+-1.0553380643526282e-227
+-1.0565890622720884e270
+-1.0604518446766494e+37
+-1.0645421971700518e259
+-1.0668823097098311e242
+-1.0680005900413916e96
+-1.0700955781678005e118
+-1.0773684869589011e+219
+-1.0795878591039497e+281
+-1.0806454419566787e-224
+-1.0877724690253475e186
+-1.0894591358125493e40
+-1.0900170253925623e196
+-1.0900377190427586e-106
+-1.0984615428606908e-11
+-1.1102230246252072e-16
+-1.1115396975891537e+123
+-1.1166118190794353e-119
+-1.1307821286128172e74
+-1.1331388749452486e-218
+-1.1345252186628974e279
+-1.1392378155556928e-305
+-1.1411581581217047e279
+-1.1491393400802991e-187
+-1.1559948446936695e-82
+-1.1629419594362053e136
+-1.1704191077875603e-97
+-1.1844224803261949e-183
+-1.1971601492124910e257
+-1.1985000301749824e-196
+-1.2114457794496854e-268
+-1.2187105741089266e288
+-1.2194331667323035e142
+-1.2216508887579013e-4
+-1.2285516299477129e-237
+-1.2325954958382788e-32
+-1.2392294127518073e-119
+-1.2407816828843072e-119
+-1.2446030893156224e-60
+-1.2498378540275245e145
+-1.2608641982846246e117
+-1.2702926122620307e-262
+-1.2994262207056140e-113
+-1.3107200000003686e5
+-1.3221359453684107e123
+-1.3336739821276408e241
+-1.3393857589828343e300
+-1.3407807959789255e154
+-1.3449767578629110e-284
+-1.3772540105163118e-281
+-1.3862823061691740e66
+-1.4053426107917795e+112
+-1.4061424920421403e+60
+-1.4114154106508960e-132
+-1.4257626930069368e191
+-1.4257627542520628e191
+-1.4302223338085472e-247
+-1.4338241998255733e-265
+-1.4426529102360446e-129
+-1.4521649497546632e281
+-1.4630503047069520e-98
+-1.4850810903809023e-142
+-1.4961399611738038e-262
+-1.4969245099707719e-154
+-1.5061999509545513e-182
+-1.5080088329780567e104
+-1.5161842617979498e228
+-1.5309010345804195e+200
+-1.5371825583508312e-238
+-1.5596686845759136e+254
+-1.5749223551297590e-221
+-1.5829145694285486e175
+-1.6035500713562762e-176
+-1.6155876674652461e-27
+-1.6199525161564176e216
+-1.6437139998502656e-90
+-1.6543447510093434e-107
+-1.6905424996345524e271
+-1.7236413322193712e215
+-1.7329185643784573e128
+-1.7380954013562253e-201
+-1.7404329748619822e+187
+-1.7500663835588639e+259
+-1.7628851326804975e-279
+-1.7650087249736553e218
+-1.8189945292645253e-12
+-1.8371266456347602e-03
+-1.8485190408855856e-273
+-1.8588035574996465e283
+-1.8665339810511912e-301
+-1.8738346896762349e-287
+-1.8782726813068610e-155
+-1.8783480629202137e+134
+-1.8832962494497295e+203
+-1.8870787131460155e168
+-1.9167254572097985e+156
+-1.9176348546142558e-93
+-1.9254938881734810e199
+-1.9259309530639721e-34
+-1.9362959574246592e-121
+-1.9392092330729084e+32
+-1.9670265800610649e+232
+-1.9670401943221783e-236
+-1.9680505079406295e261
+-1.9721522673565606e-31
+-1.9723571388903490e-31
+-1.9797340704075851e246
+-1.9982456802088651e151
+-1000723016793534037834995379097202132341693333075540458367973324541104253082625595095039027033274909301001197110542003644198024616631930719556830883128473939523485225049995061312790159809447959751263166669043968721944984869923565734628771642242074203530365792315179431624703.99999999999999998
+-10689966.03058851324021815
+-1100139488982922738834289740730418934296138626575391260672.00000000000000000
+-11846475518374777493154032103506632631202296283574585908967721825819890197073805003681517155675602669975477895947990646090662423982350785053194421615262128894112568019869117573168211123310902151863554107506688.00000000000000002
+-12472531819875696640.00000000000000002
+-127205938999984661418248590729202649063483946840892894661174977372504374375401503529250247457077452802057952432635425189681594718126566119833599.99999999999999998
+-1506182320534417286856590521159502169552665588932047572031032814818711444697621745052224892530833528388620091723950795733033751075407842220483765425843480214594713100658397226645524839930053787647.99999999999999999
+-154242113935917954537595572992312328107713327935533153522607629848787282733282521638565892531640726676005938023692209423053124061604719444748459059930631295347724490342425212246406179387095658946517844504309723143521877282505423633962935368444362506299272925119209682961522214337004000860176383.99999999999999998
+-1771333706527622204801219358859145186933358304799227904.00000000000000001
+-18288500159366410423662280704.00000000000000002
+-1835416865419945821827909474316425227203489366807216407288090925884590342243006481057945448176877157769960385194004092711352645394008847531268106578411464492070699609366493299706338303979750736794570030222350249007587423652532193316948488153103416642836141530407392121845579919402863454846976.00000000000000000
+-1913353075029172287762512079706658192686245139971850034512663321657091065978481154591244298244715652022590231628469165025936324275055318217865000428515800882808237013912926441600621216013377020680729501106175.99999999999999998
+-199064274911907744.00000000000000000
+-2.0173827180628887e118
+-2.0218430483364897e-174
+-2.0261306488679542e177
+-2.0349165186358120e236
+-2.0391576462595674e-56
+-2.0547405865423350e208
+-2.0822879481779269e-144
+-2.0873858787704865e+196
+-2.0925231841407906e-176
+-2.1062566095145223e65
+-2.1488523056330681e+187
+-2.1568814515592454e+269
+-2.1638944010275404e273
+-2.1661481985318907e127
+-2.1974110227820779e+50
+-2.1984666253918596e304
+-2.2013136429275873e-134
+-2.2195242053863557e276
+-2.2444127733852618e-190
+-2.2633062701940334e+23
+-2.2662777505598332e-218
+-2.2761049594727194e-159
+-2.2958884535716606e-41
+-2.3272039434737061e+162
+-2.3283064368392154e-10
+-2.3509887153452340e-38
+-2.3540454113733815e+151
+-2.3738919364399510e-66
+-2.4014828559570531e-240
+-2.4250123656006512e-92
+-2.4258098409972255e229
+-2.4432452418567516e+25
+-2.4439592799881548e-150
+-2.4464945801831953e-296
+-2.4733061489451302e173
+-2.4733103065296330e173
+-2.4866161820490014e86
+-2.4888729169312240e257
+-2.5052122375152283e-293
+-2.5108406942289848e58
+-2.5134560567177559e-88
+-2.5191046295150400e263
+-2.5315339359873020e-16
+-2.5379418394182237e-116
+-2.5653355008114854e-290
+-2.5876317516494062e-172
+-2.5934472305510476e179
+-2.5934478284611590e179
+-2.5965112085943846e+230
+-2.5988577850285964e-113
+-2.6074060506745971e92
+-2.6129273918414988e-200
+-2.6382945360271677e-228
+-2.6854635827575890e+277
+-2.7222589353675207e39
+-2.7664523314090336e-222
+-2.7755863546485759e303
+-2.7875931498321466e42
+-2.8118211215895018e160
+-2.8199004184636637e+179
+-2.8298997121334359e-73
+-2.8362596673541728e278
+-2.8451314701236690e-160
+-2.8851703848476622e142
+-2.8883110013837277e-275
+-2.9433943453038452e-162
+-2.9625201359906805e-221
+-2.9642774844760387e79
+-2.9842443787005975e-278
+-2.9881687549691105e-300
+-2.9993936277912729e-241
+-2.9997322051968669e-241
+-2011089691479306774035386587566463314913075849896920272594189035769527336663228626034094956590822216384275223825438736384.00000000000000001
+-21661064190104792139036249094355967405715297178368033011582618854128246528337381558844135464018754518548539439540998564584100014238068159330978394668298330886605103268387031905727118791671808.00000000000000001
+-21756777117802916291377544477335301099243908152024474620697474304810976090862267970285038625936568623209396150995230717378559.99999999999999998
+-224251152838407924079491459686319348502925615552014678821129881535407705961601756544618009296105114898411083004044846122512056591478164696007295993507804115917285426785741486691678114442127469286984672870400.00000000000000000
+-236980758563984794879174397959962834990829517353158093035516720079599292384550709467025506303.99999999999999998
+-3.0027780729547298e91
+-3.0030068099491618e256
+-3.0073102263475842e-95
+-3.0111386918904280e-154
+-3.0454106285630275e287
+-3.0517578169067997e-5
+-3.0549370567339579e-151
+-3.0649910817317780e54
+-3.0681834944310330e-92
+-3.0727275046881117e-92
+-3.0916300184138077e172
+-3.1163812501609675e-207
+-3.1250000000000004e-2
+-3.1295427272938514e+151
+-3.1404513161707658e-148
+-3.1540701437499392e-55
+-3.1733451975416556e-89
+-3.2733906078961495e150
+-3.3232565422208806e122
+-3.3444356521734996e-198
+-3.3846065602176859e125
+-3.4175792574734641e97
+-3.4580654142612909e-223
+-3.5158917038924799e+221
+-3.5221018286847411e-133
+-3.5263063197031244e+05
+-3.5373746921405982e-74
+-3.5618238155840791e-307
+-3.5801584930829642e+260
+-3.6222718257120196e-71
+-3.6341936214780397e134
+-3.6341937444352399e134
+-3.7092061506874218e-68
+-3.7166143387846012e+165
+-3.7330550035424388e-301
+-3.7654997975871829e-183
+-3.7655943600996420e-183
+-3.7709583301097453e-301
+-3.7857618983696588e-124
+-3.7903273737810323e227
+-3.7942756039314077e81
+-3.8226477813891846e-298
+-3.8323994192404670e-71
+-3.8380092462712086e-233
+-3.8558737215564027e-180
+-3.8645375230279670e171
+-3.8725919148493187e-121
+-3.8725936821277545e-121
+-3.8766254036313033e-267
+-3.9237102026692406e-58
+-3.9313652158187841e-236
+-3.9656734172441988e-118
+-3.9917457456324272e+131
+-3221714150872568231717312512739869355813147067038302643059305896461643336148095730611220724624546021728530529514741016755299504070717722431780734540383583205400568927593057475055823761112419831777524640120831.99999999999999999
+-3242968614098390614392827624049446943180287456919258888410193728179150651840561401389553906098435231143142603433335752505540410090136365013601579445367016041177696079284266374529010431241249307437103046676000581993658023425085879768147067795047765656021126333928905577840271055650194127646912109608960.00000000000000001
+-335400797299085278224550814498799182930461589504.00000000000000002
+-35286118482790496048024152237383389957358364310327020545932848993310392152082176055369518354779052392807070711289942214341381351371205730946066870369676688268390735548092294258697418485319980024059741251373910194336886290894093802889063432192.00000000000000000
+-372230331926687316958802730505255142107260357976037822801816527675652867768795625020540548801943011120646534413413009228099237580589453836656857542059791890167031045099140475668066887149522899847929571914283350921276321331797922702677844732548446598704063220181714214274377711615.99999999999999999
+-37674900992465998685923099894039678864574100322374156871559343441667821489922437654925800692832373505686310450093422392634289062666697650474012710244336451411408459479213748611627408330869724523272266914268489905757653151539950664832467723205183502153732003714841667127556425353468575744.00000000000000002
+-4.0305674067374219e264
+-4.0347656653639492e118
+-4.0473857707314917e-320
+-4.0598513237949676e54
+-4.0783153922211762e-56
+-4.1071021240708678e207
+-4.1094811942226636e208
+-4.1180460715756251e-84
+-4.1214571998568817e+187
+-4.1686028807165680e-207
+-4.1761948595190608e-53
+-4.1855804968302923e298
+-4.2330845495000107e-32
+-4.2860363289117792e301
+-4.3135914667443854e68
+-4.3368086899420182e-19
+-4.3556142965887285e40
+-4.4501477170144030e-308
+-4.4989208546517718e161
+-4.5019668289993685e-99
+-4.5278395394133567e-72
+-4.5325554997820119e-218
+-4.5477343028127467e-13
+-4.5588941028350998e+139
+-4.5767114681884880e-246
+-4.6865905838642075e-243
+-4.7068747365302991e-184
+-4.7174530310269272e167
+-4.7322087446671004e-271
+-4.7428439751604719e80
+-4.7629966423126188e+305
+-4.7940365910968541e-94
+-4.7963220106395224e-234
+-4.8702989943235266e+202
+-4.8777321179563408e142
+-4.9039857307715015e55
+-4.9040119724151232e55
+-4.9252507745493192e114
+-4.9784122248897233e-60
+-47027937241.921019
+-489386180361331583.99999999999999998
+-5.0321474762477632e-234
+-5.0321474773580906e-234
+-5.1036713304975857e+225
+-5.1118485587594315e294
+-5.1626267643551890e61
+-5.1910704244216346e+36
+-5.2538071061427221e-287
+-5.2656145834278599e64
+-5.2765920629406940e-228
+-5.2971463532868544e+145
+-5.3224498000102008e-110
+-5.3799155802472393e-284
+-5.4097359990968575e272
+-5.4238339233078879e-273
+-5.4388530464491459e185
+-5.4882250169064633e+262
+-5.5395696628011741e275
+-5.5552900977344411e+250
+-5.5751862996330315e42
+-5.6195581564443140e+57
+-5.6196106292069341e-178
+-5.6412489526677889e-278
+-5.7149369567141850e-101
+-5.7337465426386587e104
+-5.7706996064226712e+100
+-5.7766220027728861e-275
+-5.7899102883249526e76
+-5.7972823131292720e+125
+-5.8346095642605634e291
+-5.8520954520121543e-98
+-5.8652488376576363e253
+-5.8904385464229671e+177
+-5.9052281868458261e+18
+-5.9223865215333377e225
+-5.9666534264410662e284
+-5.9863107065091655e51
+-5.9885206393200962e-8
+-5.9925457340060139e-95
+-50631767574206273111398199815925280245212067713240118921652941302797319903805425150130155404838664269029730983553626879567902972619252854783258008448701698129049666253920874955860562095292665767444157011267856216687539390159168500325373148395661360779527864941804551546686992578311005968247635836927.99999999999999998
+-6.0065774398044362e256
+-6.0196833915438315e+239
+-6.0446290980740807e23
+-6.0572271931738865e-269
+-6.0572370067179759e-269
+-6.1299821638559221e54
+-6.1693949837636328e-179
+-6.1832604031778164e172
+-6.2075916273746976e-300
+-6.2746875923976968e203
+-6.2836396355810906e-89
+-6.2977615970544888e262
+-6.3382530011425959e29
+-6.3448545956260820e-117
+-6.3640996661242644e-192
+-6.5038981755303326e-260
+-6.6036902721819479e268
+-6.6517609002559370e265
+-6.6600462088715267e-257
+-6.7329739539821401e212
+-6.8127357440189582e-108
+-6.8351585238343743e97
+-6.8435218434149841e+180
+-6.8510918716099656e-195
+-6.9529416513224266e-164
+-6.9617318994480557e187
+-6.9919215437301718e246
+-6.9992023444261474e100
+-601288067969656142524634186651015087849705532496165825309714355361255082726709246866729438232288051281275607040044836238927171595283958319132599729269121421339447520281093172806369279272571641956659388559039129333609955593563700917914217287254015.99999999999999998
+-6178374573583523343804204251071617897834844530665772902321753065660667462631520554766423268636642251126407186813012073502992913187685768569519985937774363636790389567325506268174375898082575569125375.99999999999999999
+-61896048272358644187123845600367843178118230083009576369443650683647654953216575207485682270077492156316424380042788152913873162123345919.99999999999999998
+-6498192273090010308060956053247255201071459272859855423562297173589759554245926013741930622498017064677117820358333495114441623800011595763746778672627979297338404138463588282411349227507171380878316141765075970245611066190987263.99999999999999998
+-7.0547949227833642e+114
+-7.1362545977443677e44
+-7.2132645451693465e-130
+-7.2833951700007054e+190
+-7.3710203621007968e165
+-7.5589418491745561e-202
+-7.5806594632656575e227
+-7.6041005265888359e-275
+-7.6805995824117848e+294
+-7.6876972326960129e+258
+-7.6957043352333215e112
+-7.7706755689029163e84
+-7.8043886230886035e143
+-7.8463815926304028e56
+-7.8886559990623734e-31
+-7.8915761509955232e-36
+-7.9145728609616277e174
+-7.9166862688373622e174
+-7.9488926325805149e233
+-7.9571717825565863e87
+-767277995718003774770839016447586679154511011184785171625332719324265738634288430069660077124485120.00000000000000001
+-8.0166734400358911e-292
+-8.0514359626336370e-233
+-8.0553920873495449e-233
+-8.0695314944604797e118
+-8.1071198426586951e+34
+-8.1214409832916855e-115
+-8.1366158110078354e-146
+-8.2189623461802862e208
+-8.2189634878607472e208
+-8.2275227866062266e62
+-8.2912479881481722e-53
+-8.3249912587959475e-258
+-8.3798799563618010e152
+-8.4615164072784126e124
+-8.4791517238087317e-168
+-8.5247895887248960e-255
+-8.5533941091368719e+146
+-8.6000360776847096e-137
+-8.6222747319973097e214
+-8.6451747326703224e-224
+-8.6645927941275474e127
+-8.7293852695009602e-252
+-8.7734970849817881e194
+-8.7844080698834549e-65
+-8.8633114605015138e276
+-845067907891123480287255592746572528204342976094481678389689414331809021145188968802401139999564925666443726178256016076546420094154265591807.99999999999999999
+-858099029106788816317436469101754624892960966275479187273376854254394945900569787545911218973675582031554731100610059195458998402108235256368123275547043731881540222857302211351774620600156370273371714713704414024180961421011284015579044457250066257363865653522523488255.99999999999999999
+-9.0007138248002011e-44
+-9.0556790788269426e-72
+-9.0882063039984683e+226
+-9.1194693702437450e-246
+-9.2329786177857358e-128
+-9.3844835694634575e254
+-9.4447329657392905e21
+-9.4447329657393481e21
+-9.5864108690786900e+108
+-9.5980596135006976e-240
+-9.8094518980521739e189
+-9.9729108093786329e+175
+-914278489467605196711776190699156809707611307018061536644806881168528095090661010721125292932331722749008583575203629530383848546021089414409853861257385864198036127744.00000000000000002
+-93480204946649186516058277333707595717563406600054621547323710048419001110226634096836532299927950196736.00000000000000002
+-9585261338315720501128964588933724618007327729250939661086508321604130114966832686019967617287520361216493032630268287630965295079998398422210489836223539970048.00000000000000002
++1.0000000000000000e-95
++1.0000000000000000e252
++1.0000000000000000e51
++1.0000000000000001e-181
++1.0000000000000003e-61
++1.0000000000000005e-282
++1.0000000000000005e-303
++1.0000000000000008e-236
++1.0000000000000026e213
++1.0000000000000029e74
++1.0000000000000031e-200
++1.0000000000000056e-295
++1.0000000000000061e31
++1.0000000000000080e171
++1.0000000000000095e171
++1.0000000000000099e-250
++1.0000000000000112e-282
++1.0000000000000231e275
++1.0000000000000281e66
++1.0000000000000293e112
++1.0000000000000911e-66
++1.0000000000001024e79
++1.0000000000002559e-284
++1.0000000000003332e-28
++1.0000000000004434e66
++1.0000000000005224e95
++1.0000000000006424e93
++1.0000000000009796e277
++1.0000000000010140e-278
++1.0000000000015826e-304
++1.0000000000019713e-53
++1.0000000000022391e27
++1.0000000000031380e-25
++1.0000000000059974e-176
++1.0000000000129393e285
++1.0000000000147856e-268
++1.0000000000227482e-224
++1.0000000000315817e-186
++1.0000000000483808e195
++1.0000000000639971e166
++1.0000000000753653e154
++1.0000000000817533e276
++1.0000000001222522e-189
++1.0000000001845575e-218
++1.0000000005476850e-148
++1.0000000008165293e123
++1.0000000010760010e-136
++1.0000000013495755e-103
++1.0000000015647055e29
++1.0000000020637930e127
++1.0000000042310215e120
++1.0000000043987967e212
++1.0000000051201376e-125
++1.0000000061871488e-208
++1.0000000074788608e199
++1.0000000085334538e122
++1.0000000092101579e57
++1.0000000476434802e-173
++1.0000000653031208e247
++1.0000001336427698e-207
++1.0000002736322727e266
++1.0000004314716792e172
++1.0000007570578105e-171
++1.0000009560455604e202
++1.0000013754421860e-29
++1.0000036238207377e234
++1.0000038463677754e-23
++1.0000051409189847e209
++1.0000055762566199e-304
++1.0000064199591711e-29
++1.0000146021406361e-294
++1.0000224096800424e-74
++1.0000588345977816e242
++1.0000618620276404e91
++1.0000998392170324e-160
++1.0001266485208702e-248
++1.0001363915135134e46
++1.0001368484285566e-26
++1.0001546528147956e66
++1.0002646845526817e-82
++1.0003042753339845e284
++1.0003210025395783e-190
++1.0003263830402253e-18
++1.0005498837447954e-252
++1.0007215690337904e166
++1.0007754422911610e195
++1.0008001133527162e133
++1.0009534132086890e-301
++1.0010655211104345e-250
++1.0011911957725601e-9
++1.0014633900758613e165
++1.0032850898733881e92
++1.0037499191261908e-192
++1.0042121900253769e234
++1.0064295114468123e-233
++1.0078715878786927e-265
++1.0097419586831423e-28
++1.0097606772983604e-83
++1.0105363609691768e44
++1.0147694646435554e177
++1.0150220028683183e-214
++1.0204527472007986e-63
++1.0229345649675474e149
++1.0247852029469519e51
++1.0261342003245960e-289
++1.0312304049206829e-230
++1.0350770594745183e-171
++1.0395409770554606e-112
++1.0406237147937721e-258
++1.0418772551479255e239
++1.0470716105482203e50
++1.0531351631642681e65
++1.0542197988190816e-81
++1.0618071394880016e-193
++1.0633824000755699e37
++1.0640223847730622e103
++1.0702194087067375e-196
++1.0772758326491387e214
++1.0853314262796310e-165
++1.0956018383227638e-47
++1.1222081400435116e-190
++1.1296056096846734e220
++1.1307821306602373e74
++1.1411581581217047e279
++1.1665795231296954e-302
++1.1730495335130330e254
++1.1754947707999090e-38
++1.1793632577567321e167
++1.1793632578348988e167
++1.2129535712513911e229
++1.2194330274671849e142
++1.2194979832131120e142
++1.2232472900561464e-296
++1.2258328904101529e44
++1.2338789709984741e-178
++1.2433080910244753e86
++1.2701223359640334e232
++1.2800000245649899e2
++1.2807726613969039e-203
++1.2920455464503130e266
++1.3050694214883736e-54
++1.3164635336008803e64
++1.3319983470043321e-256
++1.3363823550461226e-51
++1.3524339997073032e272
++1.3557610843276973e-20
++1.3767601546827528e-135
++1.3789130657757557e216
++1.4103081061444039e-278
++1.4239101729162254e-301
++1.4257646351743884e191
++1.4302228744203735e-247
++1.4678391145196259e107
++1.4678395589138857e107
++1.4742040721959164e166
++1.4901161211297023e-8
++1.4981364413368197e-95
++1.5112704990792096e-101
++1.5357434032918358e54
++1.5410633289293022e284
++1.5423487136659782e-179
++1.5506501614533308e-266
++1.5608743694588296e144
++1.5767613836366577e262
++1.6033346880072909e-291
++1.6526399229583385e122
++1.6668259809225355e-26
++1.6687398718133657e94
++1.6891231689549086e-64
++1.6940658945086020e-21
++1.7014118386723535e38
++1.7070116948275973e243
++1.7236413390002172e215
++1.7347234856909256e-18
++1.7441147214853887e-105
++1.7456728259286473e81
++1.7661648525132621e218
++1.7705294921078185e-220
++1.7800590868549821e-307
++1.7859178583402432e-102
++1.7995655180626376e162
++1.8526734277970762e78
++1.8746210737206809e-242
++1.8807909615274075e-37
++1.8939394049649387e-52
++1.9176146374899787e-93
++1.9322687615106013e171
++1.9958403095371765e292
++1.9958403401586918e292
++2.0041683600089779e-292
++2.0391576462499960e-56
++2.0391576969909373e-56
++2.0421865861119024e264
++2.0445833531125311e161
++2.0586959991737170e208
++2.0859248873723273e93
++2.1040543607655519e211
++2.1106356288394976e-227
++2.1191277041264928e270
++2.1464632134096588e155
++2.1706628412940213e-165
++2.1858341748145889e-106
++2.1895288505076154e-47
++2.1895290388530934e-47
++2.1918093490085342e-193
++2.2085601698204788e71
++2.2713710233303248e133
++2.2761049594727195e-159
++2.2936055140795820e105
++2.3345636868687071e-302
++2.3384026197598100e49
++2.3485425827818716e108
++2.4494416553286714e201
++2.4519928655558805e55
++2.4600816186435033e260
++2.4652865612520607e-32
++2.4784588255450890e-119
++2.4948003869184017e291
++2.5026038689798889e-147
++2.5516044565250176e-203
++2.5600000464311060e2
++2.5795631403703940e266
++2.6074065231019483e92
++2.6442379894545973e123
++2.6612480890804496e-110
++2.6640038673046172e-256
++2.6656170409966712e208
++2.6672057731519959e241
++2.6988217130912281e-79
++2.7193612706977928e-20
++2.7194265232219034e185
++2.7726855021908189e129
++2.7854302894801094e188
++2.8055159894590418e-191
++2.8176814633355238e-132
++2.8451311993408995e-160
++2.8948022310583820e76
++2.9251882874774308e-157
++2.9484081450765495e166
++2.9485589496602850e166
++3.0123998313986634e-182
++3.0417465061138528e-210
++3.0417471025944579e-210
++3.0613582416023958e-64
++3.1050361846014183e231
++3.1315130625140968e-294
++3.1828687335166120e88
++3.2661592398018735e-201
++3.2768000000001226e4
++3.2944368572598227e-83
++3.3374889538120615e94
++3.3409558876152464e-52
++3.3409565410392690e-52
++3.3444356521822617e-198
++3.3624679003587458e-285
++3.3956115772419846e-52
++3.4557053711611569e185
++3.5111194043054040e305
++3.5711205381752165e302
++3.6185027886661757e75
++3.7214156380931639e137
++3.7654997910023202e-183
++3.8312388949373807e53
++3.8352292697719292e-93
++3.8812952309429944e230
++3.8934355277724895e-208
++3.9550917848180109e-192
++3.9980762393424024e-177
++4.0257179931442307e-233
++4.0347654345109304e118
++4.1675090208215600e239
++4.2719740850850789e96
++4.2719743618461970e96
++4.2896183549156612e183
++4.3100001245266217e-293
++4.3322969081320086e127
++4.3503081085035284e-115
++4.3646921823884176e-252
++4.5281643172928210e-72
++4.5767114681874301e-246
++4.5917765982691170e-41
++4.6105116604743898e-238
++4.6335424175591848e-13
++4.7174530310275578e167
++4.7594120840250900e-184
++4.7841588491365112e198
++4.8200306928283084e-181
++4.8566722305643227e83
++4.9039857379401000e55
++4.9201262289254488e260
++4.9518677864664215e173
++5.0000000000565753e-1
++5.0000145494004683e-1
++5.0099516978137073e-299
++5.0262775240026799e58
++5.0270349448746516e-88
++5.0774352249514846e108
++5.0811704505187165e-262
++5.0908252481330895e-268
++5.1529198765195367e-231
++5.1708897464751894e-26
++5.1754109574026984e-172
++5.2656152967654665e64
++5.2662493431053110e238
++5.2884561580381798e123
++5.3344115464700034e241
++5.4153704974913380e126
++5.4213782492152147e-20
++5.4558652260153289e-253
++5.5693855195724954e188
++5.5868064075627747e-250
++5.6051938572992683e-45
++5.6177910468886464e306
++5.6236422432581599e160
++5.7168694795271452e-144
++5.7956346126048718e-70
++5.9091063153829306e-126
++5.9728871584218097e-300
++6.0247997751524974e-182
++6.0645237983547362e228
++6.1236060177455385e200
++6.1427581497165269e-238
++6.2301477843273642e108
++6.2705706460651517e203
++6.3043634448322763e116
++6.3339080196865445e175
++6.4971311047163139e-114
++6.5402389921326789e304
++6.5888764267223543e-83
++6.7762643523797387e-21
++6.8310505470487594e-142
++6.8945653288774842e215
++6.9089348508947782e-77
++6.9244620785013969e274
++6.9762414026393656e-105
++6.9762473715799576e-105
++6.9992023193056405e100
++7.0137899168268983e-192
++7.0295528039737451e159
++7.0831793822381585e-220
++7.1054273576017142e-15
++7.1054273576408701e-15
++7.2370055773322807e75
++7.4350845423889343e283
++7.4828356904844554e275
++7.5287198514781086e-245
++7.5636560836900755e-124
++7.5806547475620562e227
++7.5806548251594312e227
++7.6135265985861196e286
++7.6357316740789920e-21
++7.7039117304191108e258
++7.7787690983400931e-62
++7.8545495444764244e-90
++7.8722019674185116e261
++7.9228162527225970e28
++7.9434349552687785e-31
++7.9833612381425070e292
++7.9949173441800953e292
++8.0263304437302779e205
++8.4249833342707936e65
++8.4703294799134235e-22
++8.4982217658101593e183
++8.5410407743642932e-255
++8.5439481448674779e96
++8.6645927941278129e127
++8.6706749128919882e127
++8.7777985100705636e304
++8.9295889953429698e-103
++8.9589789687112258e102
++9.0031904437507887e276
++9.0556790788267375e-72
++9.0651109995687198e-218
++9.0760312805916595e279
++9.2137756189910449e164
++9.3283939020068056e256
++9.3326361850321919e-302
++9.4758187442769945e226
++9.6915635090879851e-268
++9.7335888414041366e-209
++9.8607613152626486e-32
++9.8727298203834584e248
++9.8785803746157368e-286
++9.9568245704914409e-60
+1.0261136167743508e+140
+1.0439392987829447e+162
+1.0497013251542606e-271
+1.0604037773210862e+36
+1.0972248137587375e+304
+1.1179613656582808e-280
+1.1367165345180558e+77
+1.1448751382669565e+164
+1.1840975184056067e+289
+1.1887684488954232e+204
+1.1910137026909764e-290
+1.1952604110507963e-77
+1.1998859021234444e+112
+1.2072179984698462e+16
+1.4745121109795924e+156
+1.4830989419339932e+273
+1.5169197057064787e+244
+1.5506501614525150e-266
+1.6092283012626404e+140
+1.7454136538900147e+25
+1.9019309499047582e-293
+1.9279676168685551e+30
+1.9754149823857450e-133
+10213766063407725571752033390583176687380687954525579237549295365104860985759819435285567405222230528681073499777070598286531607665601241822105222417530885342901513767310380653735357943406409228524931240538548260044799.99999999999999999
+105534842523244438079649178609675555808051232572949713171097576446100947077389608011097385205683332048098925617924193713114564496950848793414050068226650723872158829305497466805372128130126952859180573731050067522838386813336914480599985139815805193387984928331199749916983295.99999999999999998
+123639368250133036125922952199849115648.00000000000000001
+124188289800854441929581961065582789398868803328951583894470458523117142671494640519034874681331879510015.99999999999999998
+1299252705018370079342844374357038476558335.99999999999999999
+13302994476475950442690477863842262726401309045753860112942680025053219541900464677945278970544465127233851957968896.00000000000000002
+148350832853227464606913824045933107429003394316546002974951358649258462989554147036424926532954063671809443745938886357928915223039825836261868166446297220425055622224455540868579342297590307323061862664913052878737601288942286536704.00000000000000000
+172823554087934511366020126300801179456451935689904635258770662858763694648164408563139915086484410464533952835230240435369779330709152503273227103595056143041954106518725929949114763676787760305228583385700077836985506233870752025067605616049875173842710801239565974370626094235647.99999999999999999
+179128386117908430119946671882239.99999999999999999
+185926000046640224.00000000000000000
+2.0407004453111789e+28
+2.1031821506816879e+117
+2.1070756576452100e+153
+2.1584920050392826e-289
+2.1699257161277757e+163
+2.2635856110481347e+155
+2.2911123134779967e+251
+2.3444329718259433e+191
+2.3647165618487725e+306
+2.3774251659109187e-282
+2.3926799346679074e+81
+2.5696152532094427e-202
+2.6571817482462492e-308
+2.6979865748216904e-26
+2.7265219354096404e-279
+2.8635994224706551e+144
+217622608161479275412702365125014831541028042729083457024548952860910904347562855741486364944798057848836619220254992207360003437691440575932410222847815003724124184046258369468128911142907605302840072632989599644717255866893885375855190633315146137599.99999999999999999
+226593684075036047080730941351996937802983388879029316075775801828228127231333536059261669360849979433381676329188059421131382622369151236758281344969921191743586304.00000000000000000
+3.0751948411849839e-127
+3.1062666643241956e-103
+3.2731069888927001e-14
+3.4372698089445951e+299
+3.5766451948363446e+155
+3.8815154565966364e+284
+3.9241505073601831e-127
+3.9801812042108394e+147
+3187827407525684870015066660332609332762398132965641906295128174966358754752976711491036830474908684694384616048539368632730432181948804872515357711608215356332502886198682412729478603226016662658670863064337998366437982095696579546032232412349299464572239871.99999999999999999
+33739483486281250933530666722149830905167150836592802928399192290536598487479816574348105976315424725656986774484037966750375461389600146504067557483629283993143125546999829705444594735748860870370787327.99999999999999998
+4.0083367200179458e-292
+4.1414919333114381e-81
+4.4737375852818270e-85
+4.7378174478431181e+51
+4.8988833106573423e+201
+4002618797620379734502057418156560897427026461620199486818141120733077142636437417066776600680265135606783323841927594561029717656552610811869135455917459543613610920564948122150429397140858548824843440571477363409603300596679594194181998682154930749041758802471357088941090782120782505967615.99999999999999999
+4864743212149930896031209030830303574284436121540786691075737073013131567606749484309792423936.00000000000000002
+5.1178454216981880e+211
+5.2138725084752660e+204
+5.2465206172022391e+216
+5.4142655787843691e-200
+5.5180289145934289e+87
+5.7519885786121598e-246
+5.9993228832115195e+98
+5006115866956079891478792762938162804727223115786455728783360.00000000000000002
+52456851617184041979541223476012108893587482613535352548620319577312890305189268155801889342120737042965282700955955478368112800309228840222350144072740282562173052464301867008.00000000000000002
+540504143483242003509747643061025920407884552380350463.99999999999999998
+6.1242942360915167e-24
+6.3908198463548303e+156
+6.4219744343019288e+39
+6.4489078507771639e+265
+6.5425884281537316e+300
+6.5431852428897110e+230
+60128253873317772235143578969264894208655557483242356702048436100302077361650823565427291803615232.00000000000000002
+61749505473.326011
+7.3887615364673810e+279
+7.5345745074834568e-39
+7.7312007910647605e+27
+7.9941591034792767e+36
+79089337911263052236378411596654444314375160760649141987460475213298172952882775494149014776925538584521615889885734904392910496007134299597472187079221874493026958279632249421824.00000000000000000
+8.1356903335827978e-92
+8.3043331626469751e-266
+8014569067942507269301568963002828917142830908643526476971717698082000811757378519039226902128623616.00000000000000000
+84562003828621292197228592165236240761339593778105192169769066798610808510147307881420877062422401177485901605969395602914132354688302076513765582031168045736180839282012391219178504192.00000000000000002
+9.8130491442123809e+276
+9.9792933087426791e-161
+964328380.26764047145843507
+9645837197126426467751195142699890080136330210558522354063005553675120790208512.00000000000000001
diff --git a/src/internal/strconv/testdata/ftoa1k.txt b/src/internal/strconv/testdata/ftoa1k.txt
new file mode 100644 (file)
index 0000000..79c3712
--- /dev/null
@@ -0,0 +1,1000 @@
+-0x1.0000000000001p-229
+-0x1.0000000000001p-631
+-0x1.0000000000001p-841
+-0x1.0000000000001p+367
+-0x1.0000000000001p+537
+-0x1.0000000000001p+948
+-0x1.0000000000001p+996
+-0x1.0000000000002p-1015
+-0x1.0000000000002p-194
+-0x1.0000000000002p-261
+-0x1.0000000000002p-489
+-0x1.0000000000002p-955
+-0x1.0000000000002p+478
+-0x1.0000000000002p+52
+-0x1.0000000000003p-24
+-0x1.0000000000003p-313
+-0x1.0000000000003p+13
+-0x1.0000000000003p+181
+-0x1.0000000000003p+545
+-0x1.0000000000005p+394
+-0x1.0000000000005p+606
+-0x1.0000000000006p+219
+-0x1.0000000000006p+722
+-0x1.0000000000007p-36
+-0x1.0000000000008p-898
+-0x1.0000000000008p+266
+-0x1.0000000000009p+400
+-0x1.000000000000ap+828
+-0x1.000000000000cp-328
+-0x1.0000000000015p+459
+-0x1.0000000000016p+582
+-0x1.000000000001bp+332
+-0x1.000000000001dp-531
+-0x1.000000000001dp-706
+-0x1.0000000000021p+925
+-0x1.0000000000022p+965
+-0x1.0000000000023p+174
+-0x1.000000000002fp-677
+-0x1.000000000002p-603
+-0x1.000000000003bp+513
+-0x1.000000000003cp+851
+-0x1.0000000000046p-288
+-0x1.000000000004cp-919
+-0x1.000000000005ep-82
+-0x1.0000000000061p-437
+-0x1.000000000006ap-478
+-0x1.000000000007bp+858
+-0x1.000000000007p+924
+-0x1.0000000000083p-378
+-0x1.0000000000083p-527
+-0x1.000000000008dp-264
+-0x1.000000000008dp+289
+-0x1.000000000008dp+75
+-0x1.00000000000b2p-216
+-0x1.00000000000c6p+123
+-0x1.00000000000cfp-722
+-0x1.00000000000d6p+694
+-0x1.00000000000d8p+255
+-0x1.0000000000128p-786
+-0x1.0000000000157p+74
+-0x1.00000000001afp+20
+-0x1.0000000000203p+348
+-0x1.0000000000222p-377
+-0x1.000000000022bp+341
+-0x1.0000000000232p-482
+-0x1.0000000000254p-889
+-0x1.0000000000287p+956
+-0x1.00000000002b8p+286
+-0x1.000000000038bp-629
+-0x1.00000000003a6p+390
+-0x1.00000000003ep-139
+-0x1.0000000000448p+922
+-0x1.0000000000474p+287
+-0x1.0000000000494p+501
+-0x1.0000000000656p-229
+-0x1.00000000008b3p-719
+-0x1.0000000000927p-86
+-0x1.0000000000958p-287
+-0x1.00000000009eap+943
+-0x1.0000000000a12p+831
+-0x1.0000000000a46p-127
+-0x1.0000000000b07p+76
+-0x1.0000000000bb8p+792
+-0x1.0000000000c1cp+21
+-0x1.0000000001141p-459
+-0x1.00000000011b5p-285
+-0x1.00000000013bcp-507
+-0x1.000000000251bp+195
+-0x1.00000000036fbp+546
+-0x1.000000000387ap-698
+-0x1.000000000485ap+468
+-0x1.0000000004ce9p+508
+-0x1.0000000005b3bp+144
+-0x1.0000000005dcfp-655
+-0x1.0000000007a35p-230
+-0x1.0000000007eeap-107
+-0x1.0000000008995p+793
+-0x1.0000000009af2p-288
+-0x1.000000000d2efp+334
+-0x1.000000000e23cp-74
+-0x1.000000000ec4dp+886
+-0x1.000000001042fp+01
+-0x1.00000000107d8p-832
+-0x1.0000000012493p+714
+-0x1.00000000161ecp-41
+-0x1.0000000017a55p+258
+-0x1.0000000025536p-601
+-0x1.000000002a3ccp+891
+-0x1.000000002b2a9p-901
+-0x1.000000002e917p-46
+-0x1.0000000038508p+764
+-0x1.000000004b589p+376
+-0x1.000000004fa44p-297
+-0x1.0000000055b3ep-866
+-0x1.000000007a954p-409
+-0x1.0000000088d2ep+294
+-0x1.00000000bce2cp-15
+-0x1.00000000e0935p-798
+-0x1.0000000102141p-601
+-0x1.000000011918ep-467
+-0x1.000000012a8e3p-331
+-0x1.000000013a03ep-916
+-0x1.000000016fe45p+113
+-0x1.000000018822cp+341
+-0x1.0000000203a1fp-438
+-0x1.000000020fa86p-04
+-0x1.0000000260016p+325
+-0x1.00000002f00d1p-981
+-0x1.00000003c9138p+527
+-0x1.0000000422a32p-153
+-0x1.00000004f598bp-879
+-0x1.0000000553b9cp+148
+-0x1.000000056cff8p-29
+-0x1.00000005c1e06p-697
+-0x1.00000006e671dp-356
+-0x1.00000007a91dp-346
+-0x1.000000091598cp+571
+-0x1.00000009ea715p+532
+-0x1.0000000a3f851p-439
+-0x1.0000000a58946p-64
+-0x1.0000000ac0f35p-36
+-0x1.0000000b7a2c3p+607
+-0x1.0000000bc0fb4p+893
+-0x1.0000000d05215p+1003
+-0x1.0000000e6f517p-430
+-0x1.0000001425957p-357
+-0x1.0000001460817p-956
+-0x1.0000001487b1dp-1001
+-0x1.0000001776682p-859
+-0x1.00000019a9811p+831
+-0x1.0000001b4963dp+867
+-0x1.0000001bcc043p+11
+-0x1.0000001d11576p+519
+-0x1.000000210630ep-226
+-0x1.00000025616bap+472
+-0x1.0000002da3352p+270
+-0x1.0000003798411p+957
+-0x1.0000003f5b415p+254
+-0x1.0000004141b23p+734
+-0x1.00000041a6267p+912
+-0x1.00000050a8187p+826
+-0x1.00000050bc144p-720
+-0x1.000000615758ap-802
+-0x1.000000831bebep-496
+-0x1.0000008e6427ep-560
+-0x1.00000092e51cbp+440
+-0x1.00000099ce26fp+429
+-0x1.000000a60f57ep-446
+-0x1.000000e138f25p+174
+-0x1.000000e3bab22p+929
+-0x1.000000fdad036p-676
+-0x1.00000119748fdp+952
+-0x1.000001226fe6fp-880
+-0x1.00000127844b4p+971
+-0x1.0000013d753fep+453
+-0x1.0000014a3034fp-455
+-0x1.0000016e4f726p+636
+-0x1.0000017c45a2p+979
+-0x1.00000198d9932p+871
+-0x1.0000019a8a31ep+476
+-0x1.0000020b127cdp-539
+-0x1.0000021a9a098p+406
+-0x1.000002270ca08p-228
+-0x1.00000245e2b9ap+995
+-0x1.0000024ff974cp+542
+-0x1.0000027a34158p+809
+-0x1.000002b28d033p-650
+-0x1.000002f9f3099p-46
+-0x1.0000037d266b7p-39
+-0x1.0000043912a1p-415
+-0x1.0000045a9a055p-505
+-0x1.000005964d2ccp-68
+-0x1.000005aae1e1dp-979
+-0x1.000007a71933bp-249
+-0x1.000007b023de2p-632
+-0x1.000008ac3877cp+748
+-0x1.00000e428b46fp+820
+-0x1.0000114962f51p-1011
+-0x1.000015f083b2bp-862
+-0x1.000016f389a07p+513
+-0x1.000017282de5bp-875
+-0x1.0000173ae4d3bp+760
+-0x1.000025cd7330ep+859
+-0x1.00002bb78b378p+957
+-0x1.00002ef21ba3ep+413
+-0x1.00003ce891eaep-901
+-0x1.000044c6a1702p+990
+-0x1.000050028029ep+179
+-0x1.00005cb8ab70ep+579
+-0x1.0000829afa589p+883
+-0x1.0000958bd528ep-298
+-0x1.0000abafd59eep-573
+-0x1.0000fda5c771p+608
+-0x1.0000p-176
+-0x1.0000p-193
+-0x1.0000p-218
+-0x1.0000p-367
+-0x1.0000p-507
+-0x1.0000p-712
+-0x1.0000p-791
+-0x1.0000p-80
+-0x1.0000p-838
+-0x1.0000p-933
+-0x1.0000p+538
+-0x1.0000p+564
+-0x1.0000p+731
+-0x1.0000p+766
+-0x1.0000p+947
+-0x1.0001139e74a9cp+976
+-0x1.00013e49c5087p-927
+-0x1.000167d927693p+529
+-0x1.00017c35f9ed4p-296
+-0x1.0001c2cdb465ap-579
+-0x1.0001c9aa27f54p-211
+-0x1.0001db2e92a4bp-917
+-0x1.0003388568319p-843
+-0x1.0003630d744eep+473
+-0x1.0003ae825ac01p+839
+-0x1.00042cca489fp+816
+-0x1.000471524bb81p-281
+-0x1.0004cca6ccafep-381
+-0x1.0005392a8da7bp+462
+-0x1.0005616ba47bbp+593
+-0x1.0005991343cfcp+1018
+-0x1.0005b51cacfedp+228
+-0x1.00062b17a22a9p+751
+-0x1.0006c7f88b8f9p-56
+-0x1.0007bf2aaf9c9p-707
+-0x1.0007fcca53d15p-346
+-0x1.0008e807e72c1p+952
+-0x1.000b118bdd059p+974
+-0x1.000b1825a25d6p+772
+-0x1.000d78db1f161p-189
+-0x1.00120c1c8c7d6p-686
+-0x1.00172d9b2c09ap-544
+-0x1.0017d6d2008d9p-345
+-0x1.00187e6f50ea4p+968
+-0x1.00188b53cd182p-315
+-0x1.001cbeb38042fp-878
+-0x1.002007607bc2ep+542
+-0x1.00239c9f7f5e1p-526
+-0x1.00248d3e94083p+447
+-0x1.0026494b9386ap-602
+-0x1.002eea1acfe78p-744
+-0x1.002eef4aaf75cp-157
+-0x1.0034d8c630111p-415
+-0x1.0038b0a1d6ffdp+503
+-0x1.003ec0da08e95p-1016
+-0x1.00403e04e6878p+531
+-0x1.004c276b1ad1cp-893
+-0x1.004e9369ffde1p+271
+-0x1.004eaf8f2722fp+444
+-0x1.005aacc69acbep-449
+-0x1.00654b395a52fp+955
+-0x1.0067a1ad57a27p+847
+-0x1.006a5bea58343p+202
+-0x1.006fad2e348a9p-743
+-0x1.0075e30e0f6p-222
+-0x1.00aa606a565cep+810
+-0x1.00c0e3ce04349p+616
+-0x1.00ca60a6cfc87p+709
+-0x1.00ca98c74c5e9p+893
+-0x1.00d37668b2bfcp+298
+-0x1.00fd480d3edf5p-966
+-0x1.0120cc889581dp-850
+-0x1.013230f5ed50ap+710
+-0x1.0155faae15e76p-422
+-0x1.0160bcb58c4d9p+289
+-0x1.016a1623d1aap-96
+-0x1.0174e2dfb627ep-831
+-0x1.017fad2e374b2p+142
+-0x1.01f77dae8ec9p+299
+-0x1.01fafbf478bffp+185
+-0x1.0238b55495883p-187
+-0x1.023998cd10538p-392
+-0x1.039d66589e23dp-103
+-0x1.040b25351e121p-344
+-0x1.046d590243963p+719
+-0x1.0470a846d0748p+03
+-0x1.04eaab2368e19p-143
+-0x1.050ca8bc66efp+770
+-0x1.0548b68a6bd4fp+671
+-0x1.05b54488676fbp-980
+-0x1.05ef6572b09ap-665
+-0x1.0624dd2fc917fp-10
+-0x1.065de7b9c7b1ep+53
+-0x1.0734e972955fbp-787
+-0x1.079fa0cfe0549p+678
+-0x1.0836da5617bd1p+718
+-0x1.0882c6e291ff1p+844
+-0x1.08c8b6fcd8541p-739
+-0x1.08da3c610efe2p+477
+-0x1.095abda5406d5p-333
+-0x1.09d879523f779p-113
+-0x1.09e5b51dd84b6p-560
+-0x1.0a6650e624f4ep+857
+-0x1.0a75f770bc557p-829
+-0x1.0bfd599094d49p-753
+-0x1.0c6f81df33b49p-20
+-0x1.0f6ca84d572f7p-318
+-0x1.108167929e84dp+532
+-0x1.108269fd210d3p+362
+-0x1.111d7bf5fab99p-767
+-0x1.111f4e79eea48p-804
+-0x1.12adc770f4117p+987
+-0x1.138c3e7fa4c37p+269
+-0x1.15d70879fe158p+805
+-0x1.15d847ad00092p+548
+-0x1.175721752198ap+837
+-0x1.182a852f2767fp+809
+-0x1.18352262653f8p+19
+-0x1.18bbd16f0b9ffp+506
+-0x1.199d05a266577p-980
+-0x1.1b48e353bf9c7p+734
+-0x1.1bc7f52c79563p-525
+-0x1.1bf17a54d9193p-432
+-0x1.1d270d27adeb5p-628
+-0x1.1dbf31704664ap+342
+-0x1.1eaff4a987529p-339
+-0x1.1fa182dec1875p-1020
+-0x1.20d4c363b8bap+920
+-0x1.21b5e02bfb083p-53
+-0x1.22a48c7d821a8p-82
+-0x1.24e8d737cb75p+817
+-0x1.26c11dda58615p+641
+-0x1.26dbe4a7b9ap-253
+-0x1.27748f9301d3p+425
+-0x1.279c8edd62cdcp-535
+-0x1.2a5568ba12e05p+518
+-0x1.2ab5c530b886dp+239
+-0x1.2b877da83077fp-432
+-0x1.2d9484ed0a3bep+82
+-0x1.2f39e794d9fbfp-751
+-0x1.3478410f4ffafp+601
+-0x1.357cdd8da8f8ap-80
+-0x1.37269876661a3p+209
+-0x1.37da088ba069bp-957
+-0x1.39dae6f76fb6fp-183
+-0x1.3ae3591f6146bp-864
+-0x1.3b3750887305ep-379
+-0x1.3ccf269aa3d0bp-324
+-0x1.3d3e23ce4a26dp+395
+-0x1.3d3e24547eb35p+395
+-0x1.3f559e7bee6c6p-967
+-0x1.3fb77206ebffp+522
+-0x1.400000096cd8fp+03
+-0x1.410d9f9ec7a56p-678
+-0x1.420eb449c8846p+777
+-0x1.431e0fbd582c3p+96
+-0x1.4374374f3f338p+581
+-0x1.437437bf6fbd8p+581
+-0x1.45e931c5daef7p+267
+-0x1.47014bc7b76f2p-977
+-0x1.4bf61430b1d3fp-595
+-0x1.4e37983fbf48fp+01
+-0x1.503e602979ed3p+953
+-0x1.532a83810dc46p+561
+-0x1.5374105e1bf54p-891
+-0x1.5568e1e808477p-801
+-0x1.55e190923d6cfp-525
+-0x1.5620fa946f1fp+757
+-0x1.56e1fc2f8fap-997
+-0x1.5798ee239554fp-27
+-0x1.57a340eb5d4f1p-760
+-0x1.59165a6dddaadp-223
+-0x1.5d1a4f2fccd7dp-133
+-0x1.5e858b79e1c5p+159
+-0x1.621b1c28ac20dp+737
+-0x1.621b1c28dae3ap+737
+-0x1.652efdc60477ap+345
+-0x1.67e9c127b6e72p-532
+-0x1.681db7f4e3023p+588
+-0x1.682d1cb670ef3p-40
+-0x1.69ad824da1acfp-429
+-0x1.6a9e8e72cdb6fp-724
+-0x1.6df02d2fd33dbp+22
+-0x1.6e230d05b76cfp+820
+-0x1.6ef5b4fb1c2cap-346
+-0x1.6f61cef504e8bp-188
+-0x1.6f620e962d177p+139
+-0x1.6ff406c702454p+760
+-0x1.71d95ca2910b6p-831
+-0x1.7288e920e6acbp-253
+-0x1.73ded10d1b645p-945
+-0x1.755a4c37bc32dp+169
+-0x1.758ef6ceb83d5p+854
+-0x1.7639c33f61d26p+242
+-0x1.77bc3d4ca153p+253
+-0x1.78287f49c4a1fp+129
+-0x1.788ccb6b302e8p+614
+-0x1.78ef88e46d161p+154
+-0x1.796655ae4429p-552
+-0x1.79ca10ca89172p-67
+-0x1.7d12a4670c137p-459
+-0x1.808209ad4a1e8p-851
+-0x1.83a9a2ab25486p+893
+-0x1.8557f31326be7p+697
+-0x1.8557f3139e5cap+697
+-0x1.8637f620c96bep-469
+-0x1.86381a3234f8p-469
+-0x1.869f5cfc4d8ep-344
+-0x1.88ba3bf285c52p+305
+-0x1.8922f31411546p+790
+-0x1.8bba93699a46fp-572
+-0x1.8c8dac6a0343p+398
+-0x1.8e45e1df3b016p+202
+-0x1.91510d89dc5c5p-675
+-0x1.91bc0c516495ap-190
+-0x1.91c0237db8127p-190
+-0x1.922726dbaae39p+295
+-0x1.9866b5baf7e32p+29
+-0x1.999999a460e3ep-04
+-0x1.9a74381ea2ce9p+966
+-0x1.9bbd95ea117ep-356
+-0x1.9bce5656cc6a1p+285
+-0x1.9be0731ea8ce3p+08
+-0x1.9d58c5133dd2p+175
+-0x1.9d971e4fec00cp+89
+-0x1.9fc552aeef9c9p-519
+-0x1.a53fc9631e176p-210
+-0x1.a6208b5068552p+760
+-0x1.a951a7747745p-602
+-0x1.ab0ccd28f797dp+171
+-0x1.ac1e69cb437e5p+768
+-0x1.ac9a7b3b7302fp-994
+-0x1.ad0cc339bdafdp-509
+-0x1.ad7f29abcb6b5p-24
+-0x1.ae3ebff7b74e1p-31
+-0x1.b0c764ac6d3afp-901
+-0x1.b0ec762a5b464p-748
+-0x1.b38fbc35959ep-127
+-0x1.b609bfc2cdaa6p-183
+-0x1.bba8a882edf21p-590
+-0x1.bd0bb289fd8d3p-228
+-0x1.bd8d1f624aa8dp-622
+-0x1.be7abd3781f05p+348
+-0x1.c1b64a8eb037fp+637
+-0x1.c34c7114b2b37p+926
+-0x1.c5416bd40c484p+730
+-0x1.c73a8edc80b9p+534
+-0x1.c9a15fdfd643dp+441
+-0x1.cd2b2d2a5578bp-54
+-0x1.cd3208b9562p-54
+-0x1.d0223911582a9p+720
+-0x1.d12d41afca3c8p-446
+-0x1.d2a1be4048f95p+1009
+-0x1.d6329f1c35cd1p+132
+-0x1.d9388b3aa3171p+906
+-0x1.db45dc38e0e1fp+710
+-0x1.dd739189b75b8p-974
+-0x1.ddb2222d140f3p-642
+-0x1.e311336378814p-559
+-0x1.e91d1750185e8p-353
+-0x1.eb1ab0aa350dap-898
+-0x1.ed09bead89199p+112
+-0x1.ed09beadad74ap+112
+-0x1.ed516635bf96p+155
+-0x1.eff2cd5b5700ep-740
+-0x1.f152bf9f1132fp-280
+-0x1.f6e460ad2ac6p+229
+-0x1.f965966bce059p+587
+-0x1.f9b513bb09b7p-628
+-0x1.fdca16e04b885p+195
+-0x1.ff7d95ff442a4p-610
+-0x1.ffffffffffffep-639
+-0x1.ffffffffffffep-736
+-0x1.ffffffffffffep-86
+-0x1.ffffffffffffep+426
+-0x1.ffffffffffffep+918
+-0x1.fffffffffffffp-45
+-0x1.fffffffffffffp-468
+-0x1.fffffffffffffp-601
+-0x1.fffffffffffffp-804
+-0x1.fffffffffffffp-924
+-0x1.fffffffffffffp-941
+-0x1.fffffffffffffp-96
+-0x1.fffffffffffffp+266
+-0x1.fffffffffffffp+571
+-0x1.fffffffffffffp+60
+0x1.0000000000001p-43
+0x1.0000000000001p+882
+0x1.0000000000002p-427
+0x1.0000000000002p-52
+0x1.0000000000002p-624
+0x1.0000000000002p-684
+0x1.0000000000002p-977
+0x1.0000000000002p+258
+0x1.0000000000002p+697
+0x1.0000000000002p+720
+0x1.0000000000002p+75
+0x1.0000000000002p+836
+0x1.0000000000002p+854
+0x1.0000000000002p+858
+0x1.0000000000003p-226
+0x1.0000000000003p+561
+0x1.0000000000004p+123
+0x1.0000000000005p-333
+0x1.0000000000006p-643
+0x1.0000000000006p-759
+0x1.0000000000007p-906
+0x1.0000000000008p-1010
+0x1.0000000000008p-581
+0x1.0000000000008p+566
+0x1.0000000000009p-270
+0x1.0000000000009p-37
+0x1.0000000000009p-889
+0x1.0000000000009p+573
+0x1.000000000000cp-191
+0x1.000000000000cp+321
+0x1.000000000000cp+421
+0x1.000000000000dp+293
+0x1.0000000000012p+563
+0x1.0000000000014p-760
+0x1.0000000000014p+785
+0x1.0000000000018p-234
+0x1.0000000000018p-607
+0x1.0000000000019p-765
+0x1.000000000001bp+862
+0x1.0000000000021p-790
+0x1.0000000000028p+648
+0x1.000000000002bp-487
+0x1.000000000002p+732
+0x1.0000000000036p-835
+0x1.000000000003bp-17
+0x1.000000000003p+818
+0x1.0000000000044p+304
+0x1.0000000000044p+461
+0x1.0000000000054p+894
+0x1.0000000000072p+382
+0x1.000000000007ep-481
+0x1.00000000000adp-438
+0x1.00000000000b6p+852
+0x1.00000000000c9p-623
+0x1.00000000000cp+546
+0x1.00000000000d1p-820
+0x1.00000000000d6p-386
+0x1.00000000000dap+174
+0x1.0000000000131p+390
+0x1.0000000000162p+878
+0x1.000000000016ep+14
+0x1.0000000000192p-545
+0x1.00000000001b3p-392
+0x1.00000000001ccp+94
+0x1.000000000020ap+232
+0x1.000000000022ap+850
+0x1.00000000002e6p-67
+0x1.00000000002ffp+93
+0x1.0000000000364p-685
+0x1.0000000000408p+00
+0x1.00000000004bbp+80
+0x1.0000000000559p+787
+0x1.00000000006b6p+566
+0x1.000000000079p-41
+0x1.00000000007dbp+161
+0x1.000000000083bp-326
+0x1.000000000085cp+616
+0x1.00000000008ddp-158
+0x1.00000000009d4p-306
+0x1.0000000000a65p-636
+0x1.0000000000acap+420
+0x1.0000000000bbdp+465
+0x1.0000000000ccp+178
+0x1.0000000000cdfp+346
+0x1.0000000000d79p+308
+0x1.0000000000f99p+318
+0x1.00000000010d3p-140
+0x1.00000000010d3p+784
+0x1.000000000125fp-96
+0x1.0000000001606p+110
+0x1.00000000016a5p-18
+0x1.0000000001852p+419
+0x1.0000000001a0bp+206
+0x1.0000000001d24p+512
+0x1.0000000002c1cp-649
+0x1.0000000002d75p+722
+0x1.0000000002e76p-957
+0x1.000000000361fp+334
+0x1.0000000003a3ap+325
+0x1.0000000005edfp+338
+0x1.0000000007769p+942
+0x1.0000000008f1ap+340
+0x1.000000000934dp-473
+0x1.000000000c7cdp+245
+0x1.000000000d642p-90
+0x1.0000000010007p-341
+0x1.000000001b51p+857
+0x1.000000001bf0fp-110
+0x1.000000001cbd9p-150
+0x1.0000000020bb8p-621
+0x1.0000000023107p-950
+0x1.00000000276aep+515
+0x1.000000002b2cbp-445
+0x1.000000002d61ep-822
+0x1.000000003258fp+598
+0x1.0000000032dbdp-523
+0x1.0000000034edep+897
+0x1.0000000035d35p-620
+0x1.0000000039a67p-16
+0x1.0000000059345p+329
+0x1.000000005a61cp-164
+0x1.00000000604d9p-647
+0x1.000000006769bp-1000
+0x1.0000000075735p+892
+0x1.0000000076af2p-1006
+0x1.0000000084aeep+907
+0x1.000000008d45ep+1008
+0x1.000000009ab34p-09
+0x1.00000000a89f7p+597
+0x1.00000000bc994p+930
+0x1.00000000e6e28p+385
+0x1.0000000101aap+377
+0x1.0000000107d47p-49
+0x1.000000013a03ep-917
+0x1.0000000154052p+580
+0x1.00000001718fep+769
+0x1.000000018262fp-613
+0x1.000000018502dp+709
+0x1.00000001afc57p+222
+0x1.00000001c00dfp+206
+0x1.00000001d987p+722
+0x1.00000001ea21dp-01
+0x1.00000001ef027p+367
+0x1.00000002521f6p-19
+0x1.00000002601dcp-974
+0x1.0000000268df5p+442
+0x1.0000000269fdp+952
+0x1.0000000428a5cp-924
+0x1.000000049811fp-456
+0x1.0000000503eb1p+15
+0x1.00000005ad13fp+840
+0x1.00000006a0902p+580
+0x1.000000072ba2dp-228
+0x1.000000081f947p-919
+0x1.0000000995406p+408
+0x1.00000009dd7b3p-100
+0x1.0000000af7a85p-974
+0x1.0000000b1818cp+914
+0x1.0000000b590d3p+664
+0x1.0000000e01289p+257
+0x1.0000000e31223p+609
+0x1.00000010822acp-720
+0x1.00000011ccbf3p+525
+0x1.00000015bf7b6p+583
+0x1.00000015ef3f8p+461
+0x1.0000001a87216p-389
+0x1.0000001c8ea6dp-452
+0x1.0000001f69e57p-46
+0x1.00000021915afp+530
+0x1.00000027bd096p+861
+0x1.0000003214f09p-627
+0x1.0000003599105p-191
+0x1.000000368f1afp-710
+0x1.000000397edbcp+422
+0x1.00000053bb4e2p-625
+0x1.0000005a193d6p+739
+0x1.00000077138dp+658
+0x1.000000860ad47p-882
+0x1.00000086dcc2fp+259
+0x1.0000008ce5052p+185
+0x1.000000a69591bp+152
+0x1.000000b3feb4ep+564
+0x1.000000c83db44p-772
+0x1.000000f6a410ep-285
+0x1.0000010498ce1p+898
+0x1.000001c8060ffp+823
+0x1.000001ca741f6p-77
+0x1.0000023922be7p-240
+0x1.000002421fc05p+741
+0x1.000002b2ebb8p+377
+0x1.000002e916128p+395
+0x1.000003e1fe29ap+693
+0x1.000004012e199p-822
+0x1.000004caa2902p+380
+0x1.000004da8bddep-05
+0x1.00000577febfap+622
+0x1.00000608eadaap-17
+0x1.000006670a449p-399
+0x1.000006fdf88d4p+506
+0x1.000007621285bp+675
+0x1.000007ca8fb6ep+754
+0x1.000007db18341p-723
+0x1.00000911d4a87p+862
+0x1.000009291ff3fp+703
+0x1.0000096dc6db6p+749
+0x1.0000098fef6bfp-639
+0x1.00000a8e46c64p+574
+0x1.00000ae8e71e5p+670
+0x1.00000b486b0fbp-963
+0x1.00000bcb6b065p+211
+0x1.00000cb515f4bp+116
+0x1.00000d18e0c4cp+513
+0x1.00000d854fb69p+399
+0x1.00000f6eabd0bp-333
+0x1.0000109138ae9p+497
+0x1.0000131329a0bp+288
+0x1.0000134b8b7dcp-557
+0x1.000013dd4995p-397
+0x1.00001455c0223p+339
+0x1.0000197e15e38p+798
+0x1.0000205c28a33p+820
+0x1.0000211b6e016p+384
+0x1.000023545317ep+311
+0x1.0000253036d7fp-217
+0x1.000026f9a09e3p-480
+0x1.00002aece648ap+406
+0x1.00002f7c6cc22p+251
+0x1.000034adb8091p-891
+0x1.00003fafd7c17p-381
+0x1.00004090c997cp-858
+0x1.000045bb4b96ap+780
+0x1.000056a0ade86p+878
+0x1.00005e4837f9bp-859
+0x1.0000740fa717dp+275
+0x1.00008280d5ae2p+920
+0x1.0000c80341debp+382
+0x1.0000dd797e96dp+170
+0x1.0000ef3c72696p+357
+0x1.0000p-1008
+0x1.0000p-220
+0x1.0000p-337
+0x1.0000p-541
+0x1.0000p-566
+0x1.0000p-617
+0x1.0000p-640
+0x1.0000p-956
+0x1.0000p+152
+0x1.0000p+293
+0x1.0000p+373
+0x1.0000p+39
+0x1.0000p+495
+0x1.0000p+545
+0x1.0000p+63
+0x1.0000p+800
+0x1.0000p+916
+0x1.000103dd09032p+511
+0x1.000110b973452p+150
+0x1.00013cd72b6cap-115
+0x1.00021e8e7dbb3p-855
+0x1.000232ecc7b47p-157
+0x1.0002993f49252p+163
+0x1.000333e5e725fp-871
+0x1.000366b64d90fp-891
+0x1.00047e1d07d17p-816
+0x1.0004c5efdf98cp-219
+0x1.0005002553954p+141
+0x1.0005180941d97p+410
+0x1.000725ad93e99p-710
+0x1.000766def7e25p+185
+0x1.00096b1665e85p-1005
+0x1.000b1edfaa1afp+708
+0x1.000b8b0ae6769p+476
+0x1.000bff9c604f4p+961
+0x1.0010aaffb40b6p-811
+0x1.00144f91c5bcep-998
+0x1.0014cd7669416p-663
+0x1.00199123a42e9p+381
+0x1.001c0e3f4bb3cp+632
+0x1.001d17c9a9f18p-889
+0x1.00224b6305c6dp+822
+0x1.0028850a553ecp+938
+0x1.002a7fa6f9364p-105
+0x1.00338eafdf527p-1019
+0x1.003d4017ccb78p+404
+0x1.0040859344642p+383
+0x1.004c5d9ab71a1p+739
+0x1.00523e609bc55p+381
+0x1.005b4bfeb2d01p-44
+0x1.005f6ab6268ebp+924
+0x1.0061e9df1df95p+987
+0x1.006c751a24d4ap+624
+0x1.006d78603cf5fp-859
+0x1.007eeacf0265fp+695
+0x1.009175f54e90ap-928
+0x1.00a6a889bc8b4p-353
+0x1.00bc75981c52bp-170
+0x1.00c18e1a28be2p-823
+0x1.00e9f48e0ec1cp-70
+0x1.0112ed37bf20bp+894
+0x1.011c2ebab15d1p-196
+0x1.013b10ac50e57p+131
+0x1.013de1c2724c6p-429
+0x1.0160bcb58d4p+289
+0x1.018bf3319cfc7p+305
+0x1.01903d1657b69p-829
+0x1.019dbdd92528p+56
+0x1.01a55d0cd08a3p+774
+0x1.01eb89cfa5e02p-541
+0x1.0226705972bcfp-951
+0x1.0265804e7bc97p+493
+0x1.0281127ca95d2p+458
+0x1.037f09e2f5b4bp-929
+0x1.039b53cb9bd83p+269
+0x1.03a0379edbf9dp-755
+0x1.04109755e7fa9p-635
+0x1.04cd5a7cfc76cp+702
+0x1.05a6416f9fe49p-378
+0x1.066ac2d5db08fp+475
+0x1.0789df4757da7p-884
+0x1.0825b33664659p-887
+0x1.08847f89b1384p+34
+0x1.08c72790be8cdp+145
+0x1.091e097573b86p-334
+0x1.0954542378ac2p-456
+0x1.0a106a3f7efc4p+22
+0x1.0a6651c62ce59p+857
+0x1.0a998336fea29p+730
+0x1.0c3a86c83886p-563
+0x1.0d3b113fa7a4cp-628
+0x1.0d51a73def3e2p-701
+0x1.0ebc3b1c08a8bp+41
+0x1.1054ae84589d1p+123
+0x1.107ba0bd455cap-735
+0x1.107de503df205p-01
+0x1.10f2d27643673p-495
+0x1.1123a7ec598e3p-804
+0x1.1169b3a53961fp-319
+0x1.11efbe93a228ep+406
+0x1.12978794bc676p-515
+0x1.131fd9df8f1b4p-625
+0x1.147224dd8ad2cp-218
+0x1.14a52dffc86ap+744
+0x1.15f36e85167a7p+08
+0x1.165e2411017f2p+46
+0x1.16ab7145d2b92p+393
+0x1.16c262779acadp-133
+0x1.1763558ec79bbp-318
+0x1.191101309b83ap-90
+0x1.1afd6ec0e1586p+249
+0x1.1e0b63add7575p+827
+0x1.1ecc348613fdbp-143
+0x1.1efc659d0b589p+146
+0x1.1fa182c40c65p-1020
+0x1.1fa1cc04af745p-1020
+0x1.20267966bc87bp+772
+0x1.20f5fb2fb3998p+920
+0x1.2192db14a99d9p+699
+0x1.21b3ba7a53205p-633
+0x1.21c81f7deb095p+239
+0x1.22ac85db3efb9p+993
+0x1.23ff06eea847bp-638
+0x1.244a393c96adbp+230
+0x1.2776b9b7d972dp+425
+0x1.27fbe228da601p+682
+0x1.281e8c2783e06p-741
+0x1.2927a292d89e4p-89
+0x1.29fa84d76e138p-572
+0x1.2a55690d79014p+518
+0x1.2b5f9c01ba2eap+25
+0x1.2bf0d5b50f493p+807
+0x1.2dc21ab8d7dedp+49
+0x1.2f8ac174d612bp-266
+0x1.31cfd3999f8a8p+993
+0x1.3230b0e1458b9p+662
+0x1.32d17ed585a68p+312
+0x1.3426172c7725bp+116
+0x1.3637b9149ee7fp+122
+0x1.3726987666b7fp+209
+0x1.37d99cc5cae1p-957
+0x1.38bcb1b7b8ddp+42
+0x1.395f47d212935p-854
+0x1.39dae6f76d881p-183
+0x1.39eb2afd8c6f5p+884
+0x1.3b374f06526dcp-379
+0x1.3b374f06be39ep-379
+0x1.3d3eec19204e3p+395
+0x1.3e08a42a8e288p+983
+0x1.3e9e4e4c2f34dp+199
+0x1.3f559f07c42d5p-967
+0x1.3faac3e4268fbp-482
+0x1.40aabc6c32e19p+973
+0x1.45ed1f223e843p-296
+0x1.488ab81dddb81p+36
+0x1.48f9dacb9d631p-688
+0x1.4a759f0dcba5dp+713
+0x1.4ed8c8fcc963cp-987
+0x1.4f3ca0a7e4ecap+848
+0x1.50425bd5d6771p-03
+0x1.50a6110d6a9b9p-698
+0x1.5109fe46434c8p-381
+0x1.518bbb10c84ccp-02
+0x1.53eda61407221p-605
+0x1.56786d7ccd9c7p+654
+0x1.5721039fbf168p+02
+0x1.573d68f9f0413p-512
+0x1.57f48bb41dbcfp+458
+0x1.59725db272f81p+262
+0x1.59725db272fa7p+262
+0x1.59dfd25c96bfdp-408
+0x1.5bf2ff083a346p-512
+0x1.5cc9442d2b209p+985
+0x1.6093b802d57bap+933
+0x1.60d1801f50ddbp+262
+0x1.6345785d8a002p+56
+0x1.64576250e6921p-898
+0x1.64f1f5e48f13p+358
+0x1.690a1ed7a4873p+29
+0x1.69794a1613ad7p-728
+0x1.6c8e5ca23aa96p+1016
+0x1.6ef09b26d3d42p-316
+0x1.70ef5464763dap-57
+0x1.7424348d29ffep-449
+0x1.7688bb5394c7bp+325
+0x1.788cd4927b681p+614
+0x1.796655ae4429p-552
+0x1.7b6d71d20b96bp-263
+0x1.7e747a2ad5fbap+511
+0x1.8000p-1072
+0x1.82742934fc5c3p-562
+0x1.842142419a02ap-758
+0x1.88ba3bf284e26p+305
+0x1.8c240c4aecb19p-87
+0x1.8cf23d1a96bb6p-467
+0x1.8eb0138e0b711p+687
+0x1.9379fee3e753fp-386
+0x1.93e838c059d66p-682
+0x1.95aa0a1009d95p-238
+0x1.967e5eec85cd6p+873
+0x1.9692c9706062fp-01
+0x1.992c7fdc216fbp-489
+0x1.99348dd65a31p-04
+0x1.998c4fbe21f7fp+22
+0x1.99e46124954a4p-244
+0x1.9b6056729af7p-200
+0x1.9bcdfb5e26c7cp+285
+0x1.a050254dd535dp+35
+0x1.a102abef73abdp-788
+0x1.a2fe76a3f9589p-499
+0x1.a53fc963550b3p-210
+0x1.a6a2b85063ccbp-891
+0x1.a6cb1908caaf3p+212
+0x1.a6fcf33d58242p-02
+0x1.ab328946fc216p-313
+0x1.aca9160b990ecp-862
+0x1.ad9d3d509a26ap-107
+0x1.b8e5c91bd5b28p+361
+0x1.ba3e5933f77ecp+607
+0x1.bbf5514612f65p-01
+0x1.bc5c22a4f1345p+28
+0x1.be03d0bf27b29p-137
+0x1.c2e4e8e6a8411p+632
+0x1.c6fb34907fdc3p+08
+0x1.c94a20242966p+869
+0x1.c950c088a48f3p-879
+0x1.c9c57381560c7p-04
+0x1.ce49bcb573934p-154
+0x1.cf6b7cc9b192p+02
+0x1.cfa917863e1f1p+235
+0x1.d308ff9c32116p+1009
+0x1.d53845195fffp-838
+0x1.d632b70ff2cp+132
+0x1.d9388b3aa3b3p+906
+0x1.d9388fb8d94a7p+906
+0x1.d9bb64fb288d5p+906
+0x1.dc574d80cf16fp-456
+0x1.de681541264f7p-652
+0x1.df2826ef05546p-508
+0x1.e1f6fed366db6p+478
+0x1.eb6bafd94a46bp+793
+0x1.ed09bead87c31p+112
+0x1.f41561f45b82dp+05
+0x1.f5302f06cd971p+624
+0x1.f6932370dd1ep+867
+0x1.f7fe42f7606aap-01
+0x1.fb07c5aec9a37p-260
+0x1.fc1df6ae675f7p+876
+0x1.fdc04ab5671d4p-290
+0x1.ffffffffep-1039
+0x1.ffffffffffffep-293
+0x1.ffffffffffffep-476
+0x1.ffffffffffffep-764
+0x1.ffffffffffffep+572
+0x1.ffffffffffffep+746
+0x1.fffffffffffffp-237
+0x1.fffffffffffffp-47
+0x1.fffffffffffffp-629
+0x1.fffffffffffffp+135
+0x1.fffffffffffffp+584
+0x1.fffffffffffffp+796
+0x1.fffffffffffffp+85
+0x1.fffffffffffffp+950
index 08d3c4ef0981f332322ac51c4a893476591b0404..7a51f8a4143f3ecd3a1b5521429cd358b8107ab3 100644 (file)
@@ -18,7 +18,7 @@
 
 # Difficult boundary cases, derived from tables given in
 #      Vern Paxson, A Program for Testing IEEE Decimal-Binary Conversion
-#      ftp://ftp.ee.lbl.gov/testbase-report.ps.Z
+#      https://www.icir.org/vern/papers/testbase-report.pdf
 
 # Table 1: Stress Inputs for Conversion to 53-bit Binary, < 1/2 ULP
 float64 %b 5e+125 6653062250012735p+365