From 89f6dba7e6a52f14f269349e1dd0d342aa132e1a Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 11 Nov 2025 05:47:14 -0800 Subject: [PATCH] internal/strconv: add testbase tests 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 Auto-Submit: Russ Cox LUCI-TryBot-Result: Go LUCI --- src/internal/strconv/fp_test.go | 154 +++- src/internal/strconv/ftoa_test.go | 7 + src/internal/strconv/testdata/README | 27 + src/internal/strconv/testdata/atof1k.txt | 1000 ++++++++++++++++++++++ src/internal/strconv/testdata/ftoa1k.txt | 1000 ++++++++++++++++++++++ src/internal/strconv/testdata/testfp.txt | 2 +- 6 files changed, 2174 insertions(+), 16 deletions(-) create mode 100644 src/internal/strconv/testdata/README create mode 100644 src/internal/strconv/testdata/atof1k.txt create mode 100644 src/internal/strconv/testdata/ftoa1k.txt diff --git a/src/internal/strconv/fp_test.go b/src/internal/strconv/fp_test.go index ba739941cc..92a663c6e3 100644 --- a/src/internal/strconv/fp_test.go +++ b/src/internal/strconv/fp_test.go @@ -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") + } + } + } } } diff --git a/src/internal/strconv/ftoa_test.go b/src/internal/strconv/ftoa_test.go index b3c7904eb2..d5179a1bbd 100644 --- a/src/internal/strconv/ftoa_test.go +++ b/src/internal/strconv/ftoa_test.go @@ -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 index 0000000000..4219189c45 --- /dev/null +++ b/src/internal/strconv/testdata/README @@ -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 index 0000000000..d6847674bd --- /dev/null +++ b/src/internal/strconv/testdata/atof1k.txt @@ -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 index 0000000000..79c37126a2 --- /dev/null +++ b/src/internal/strconv/testdata/ftoa1k.txt @@ -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 diff --git a/src/internal/strconv/testdata/testfp.txt b/src/internal/strconv/testdata/testfp.txt index 08d3c4ef09..7a51f8a414 100644 --- a/src/internal/strconv/testdata/testfp.txt +++ b/src/internal/strconv/testdata/testfp.txt @@ -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 -- 2.52.0