1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
# Floating-point conversion test cases.
# Empty lines and lines beginning with # are ignored.
# The rest have four fields per line: type, format, input, and output.
# The input is given either in decimal or binary scientific notation.
# The output is the string that should be produced by formatting the
# input with the given format.
#
# The formats are as in C's printf, except that %b means print
# binary scientific notation: NpE = N x 2^E.
# TODO:
# Powers of 10.
# Powers of 2.
# %.20g versions.
# random sources
# random targets
# random targets ± half a ULP
# 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
# Table 1: Stress Inputs for Conversion to 53-bit Binary, < 1/2 ULP
float64 %b 5e+125 6653062250012735p+365
float64 %b 69e+267 4705683757438170p+841
float64 %b 999e-026 6798841691080350p-129
float64 %b 7861e-034 8975675289889240p-153
float64 %b 75569e-254 6091718967192243p-880
float64 %b 928609e-261 7849264900213743p-900
float64 %b 9210917e+080 8341110837370930p+236
float64 %b 84863171e+114 4625202867375927p+353
float64 %b 653777767e+273 5068902999763073p+884
float64 %b 5232604057e-298 5741343011915040p-1010
float64 %b 27235667517e-109 6707124626673586p-380
float64 %b 653532977297e-123 7078246407265384p-422
float64 %b 3142213164987e-294 8219991337640559p-988
float64 %b 46202199371337e-072 5224462102115359p-246
float64 %b 231010996856685e-073 5224462102115359p-247
float64 %b 9324754620109615e+212 5539753864394442p+705
float64 %b 78459735791271921e+049 8388176519442766p+166
float64 %b 272104041512242479e+200 5554409530847367p+670
float64 %b 6802601037806061975e+198 5554409530847367p+668
float64 %b 20505426358836677347e-221 4524032052079546p-722
float64 %b 836168422905420598437e-234 5070963299887562p-760
float64 %b 4891559871276714924261e+222 6452687840519111p+757
# Table 2: Stress Inputs for Conversion to 53-bit Binary, > 1/2 ULP
float64 %b 9e-265 8168427841980010p-930
float64 %b 85e-037 6360455125664090p-169
float64 %b 623e+100 6263531988747231p+289
float64 %b 3571e+263 6234526311072170p+833
float64 %b 81661e+153 6696636728760206p+472
float64 %b 920657e-023 5975405561110124p-109
float64 %b 4603285e-024 5975405561110124p-110
float64 %b 87575437e-309 8452160731874668p-1053
float64 %b 245540327e+122 4985336549131723p+381
float64 %b 6138508175e+120 4985336549131723p+379
float64 %b 83356057653e+193 5986732817132056p+625
float64 %b 619534293513e+124 4798406992060657p+399
float64 %b 2335141086879e+218 5419088166961646p+713
float64 %b 36167929443327e-159 8135819834632444p-536
float64 %b 609610927149051e-255 4576664294594737p-850
float64 %b 3743626360493413e-165 6898586531774201p-549
float64 %b 94080055902682397e-242 6273271706052298p-800
float64 %b 899810892172646163e+283 7563892574477827p+947
float64 %b 7120190517612959703e+120 5385467232557565p+409
float64 %b 25188282901709339043e-252 5635662608542340p-825
float64 %b 308984926168550152811e-052 5644774693823803p-157
float64 %b 6372891218502368041059e+064 4616868614322430p+233
# Table 3: Stress Inputs for Converting 53-bit Binary to Decimal, < 1/2 ULP
float64 %.0e 8511030020275656p-342 9e-88
float64 %.1e 5201988407066741p-824 4.6e-233
float64 %.2e 6406892948269899p+237 1.41e+87
float64 %.3e 8431154198732492p+72 3.981e+37
float64 %.4e 6475049196144587p+99 4.1040e+45
float64 %.5e 8274307542972842p+726 2.92084e+234
float64 %.6e 5381065484265332p-456 2.891946e-122
float64 %.7e 6761728585499734p-1057 4.3787718e-303
float64 %.8e 7976538478610756p+376 1.22770163e+129
float64 %.9e 5982403858958067p+377 1.841552452e+129
float64 %.10e 5536995190630837p+93 5.4835744350e+43
float64 %.11e 7225450889282194p+710 3.89190181146e+229
float64 %.12e 7225450889282194p+709 1.945950905732e+229
float64 %.13e 8703372741147379p+117 1.4460958381605e+51
float64 %.14e 8944262675275217p-1001 4.17367747458531e-286
float64 %.15e 7459803696087692p-707 1.107950772878888e-197
float64 %.16e 6080469016670379p-381 1.2345501366327440e-99
float64 %.17e 8385515147034757p+721 9.25031711960365024e+232
float64 %.18e 7514216811389786p-828 4.198047150284889840e-234
float64 %.19e 8397297803260511p-345 1.1716315319786511046e-88
float64 %.20e 6733459239310543p+202 4.32810072844612493629e+76
float64 %.21e 8091450587292794p-473 3.317710118160031081518e-127
# Table 4: Stress Inputs for Converting 53-bit Binary to Decimal, > 1/2 ULP
float64 %.0e 6567258882077402p+952 3e+302
float64 %.1e 6712731423444934p+535 7.6e+176
float64 %.2e 6712731423444934p+534 3.78e+176
float64 %.3e 5298405411573037p-957 4.350e-273
float64 %.4e 5137311167659507p-144 2.3037e-28
float64 %.5e 6722280709661868p+363 1.26301e+125
float64 %.6e 5344436398034927p-169 7.142211e-36
float64 %.7e 8369123604277281p-853 1.3934574e-241
float64 %.8e 8995822108487663p-780 1.41463449e-219
float64 %.9e 8942832835564782p-383 4.539277920e-100
float64 %.10e 8942832835564782p-384 2.2696389598e-100
float64 %.11e 8942832835564782p-385 1.13481947988e-100
float64 %.12e 6965949469487146p-249 7.700366561890e-60
float64 %.13e 6965949469487146p-250 3.8501832809448e-60
float64 %.14e 6965949469487146p-251 1.92509164047238e-60
float64 %.15e 7487252720986826p+548 6.898586531774201e+180
float64 %.16e 5592117679628511p+164 1.3076622631878654e+65
float64 %.17e 8887055249355788p+665 1.36052020756121240e+216
float64 %.18e 6994187472632449p+690 3.592810217475959676e+223
float64 %.19e 8797576579012143p+588 8.9125197712484551899e+192
float64 %.20e 7363326733505337p+272 5.58769757362301140950e+97
float64 %.21e 8549497411294502p-448 1.176257830728540379990e-119
# Table 14: Stress Inputs for Conversion to 24-bit Binary, <1/2 ULP
# NOTE: The lines with exponent p-149 have been changed from the
# paper. Those entries originally read p-150 and had a mantissa
# twice as large (and even), but IEEE single-precision has no p-150:
# that's the start of the denormals.
float32 %b 5e-20 15474250p-88
float32 %b 67e+14 12479722p+29
float32 %b 985e+15 14333636p+36
# float32 %b 7693e-42 10979816p-150
float32 %b 7693e-42 5489908p-149
float32 %b 55895e-16 12888509p-61
# float32 %b 996622e-44 14224264p-150
float32 %b 996622e-44 7112132p-149
float32 %b 7038531e-32 11420669p-107
# float32 %b 60419369e-46 8623340p-150
float32 %b 60419369e-46 4311670p-149
float32 %b 702990899e-20 16209866p-61
# float32 %b 6930161142e-48 9891056p-150
float32 %b 6930161142e-48 4945528p-149
float32 %b 25933168707e+13 14395800p+54
float32 %b 596428896559e+20 12333860p+82
# Table 15: Stress Inputs for Conversion to 24-bit Binary, >1/2 ULP
float32 %b 3e-23 9507380p-98
float32 %b 57e+18 12960300p+42
float32 %b 789e-35 10739312p-130
float32 %b 2539e-18 11990089p-72
float32 %b 76173e+28 9845130p+86
float32 %b 887745e-11 9760860p-40
float32 %b 5382571e-37 11447463p-124
float32 %b 82381273e-35 8554961p-113
float32 %b 750486563e-38 9975678p-120
float32 %b 3752432815e-39 9975678p-121
float32 %b 75224575729e-45 13105970p-137
float32 %b 459926601011e+15 12466336p+65
# Table 16: Stress Inputs for Converting 24-bit Binary to Decimal, < 1/2 ULP
float32 %.0e 12676506p-102 2e-24
float32 %.1e 12676506p-103 1.2e-24
float32 %.2e 15445013p+86 1.19e+33
float32 %.3e 13734123p-138 3.941e-35
float32 %.4e 12428269p-130 9.1308e-33
float32 %.5e 15334037p-146 1.71900e-37
float32 %.6e 11518287p-41 5.237910e-06
float32 %.7e 12584953p-145 2.8216440e-37
float32 %.8e 15961084p-125 3.75243281e-31
float32 %.9e 14915817p-146 1.672120916e-37
float32 %.10e 10845484p-102 2.1388945814e-24
float32 %.11e 16431059p-61 7.12583594561e-12
# Table 17: Stress Inputs for Converting 24-bit Binary to Decimal, > 1/2 ULP
float32 %.0e 16093626p+69 1e+28
float32 %.1e 9983778p+25 3.4e+14
float32 %.2e 12745034p+104 2.59e+38
float32 %.3e 12706553p+72 6.001e+28
float32 %.4e 11005028p+45 3.8721e+20
float32 %.5e 15059547p+71 3.55584e+28
float32 %.6e 16015691p-99 2.526831e-23
float32 %.7e 8667859p+56 6.2458507e+23
float32 %.8e 14855922p-82 3.07213267e-18
float32 %.9e 14855922p-83 1.536066333e-18
float32 %.10e 10144164p-110 7.8147796834e-27
float32 %.11e 13248074p+95 5.24810279937e+35
|