1 1.1 christos 2 1.1 christos Input: 1.23 3 1.1 christos strtopdd consumes 4 bytes and returns 17 4 1.1 christos dd[0] = 1.23 = #3ff3ae14 7ae147ae 5 1.1 christos dd[1] = 1.7763568394002496e-17 = #3c747ae1 47ae1478 6 1.1 christos g_ddfmt(0) gives 4 bytes: "1.23" 7 1.1 christos 8 1.1 christos strtoIdd returns 17, consuming 4 bytes. 9 1.1 christos ddI[0] = #3ff3ae14 7ae147ae + 3c747ae1 47ae1478 10 1.1 christos = 1.23 + 1.7763568394002496e-17 11 1.1 christos ddI[1] = #3ff3ae14 7ae147ae + 3c747ae1 47ae1480 12 1.1 christos = 1.23 + 1.776356839400252e-17 13 1.1 christos ddI[0] == strtod 14 1.1 christos 15 1.1 christos 16 1.1 christos Input: 1.23e+20 17 1.1 christos strtopdd consumes 8 bytes and returns 1 18 1.1 christos dd[0] = 1.23e+20 = #441aabdf 2145b430 19 1.1 christos dd[1] = 0 = #0 0 20 1.1 christos g_ddfmt(0) gives 8 bytes: "1.23e+20" 21 1.1 christos 22 1.1 christos strtoIdd returns 1, consuming 8 bytes. 23 1.1 christos ddI[0] == ddI[1] == strtopdd 24 1.1 christos 25 1.1 christos 26 1.1 christos Input: 1.23e-20 27 1.1 christos strtopdd consumes 8 bytes and returns 33 28 1.1 christos dd[0] = 1.2299999999999999e-20 = #3bcd0ae4 cf767530 29 1.1 christos dd[1] = 9.304023318521521e-37 = #3873c997 955b2691 30 1.1 christos g_ddfmt(0) gives 8 bytes: "1.23e-20" 31 1.1 christos 32 1.1 christos strtoIdd returns 33, consuming 8 bytes. 33 1.1 christos ddI[0] = #3bcd0ae4 cf767530 + 3873c997 955b2690 34 1.1 christos = 1.2299999999999999e-20 + 9.3040233185215194e-37 35 1.1 christos ddI[1] = #3bcd0ae4 cf767530 + 3873c997 955b2691 36 1.1 christos = 1.2299999999999999e-20 + 9.3040233185215211e-37 37 1.1 christos ddI[1] == strtod 38 1.1 christos 39 1.1 christos 40 1.1 christos Input: 1.23456789 41 1.1 christos strtopdd consumes 10 bytes and returns 17 42 1.1 christos dd[0] = 1.23456789 = #3ff3c0ca 4283de1b 43 1.1 christos dd[1] = 1.0990618193318369e-16 = #3c9fada5 144c1252 44 1.1 christos g_ddfmt(0) gives 10 bytes: "1.23456789" 45 1.1 christos 46 1.1 christos strtoIdd returns 17, consuming 10 bytes. 47 1.1 christos ddI[0] = #3ff3c0ca 4283de1b + 3c9fada5 144c1252 48 1.1 christos = 1.2345678899999999 + 1.0990618193318369e-16 49 1.1 christos ddI[1] = #3ff3c0ca 4283de1b + 3c9fada5 144c1254 50 1.1 christos = 1.2345678899999999 + 1.0990618193318371e-16 51 1.1 christos ddI[0] == strtod 52 1.1 christos 53 1.1 christos 54 1.1 christos Input: 1.23456589e+20 55 1.1 christos strtopdd consumes 14 bytes and returns 1 56 1.1 christos dd[0] = 1.23456589e+20 = #441ac537 a660b997 57 1.1 christos dd[1] = 4096 = #40b00000 0 58 1.1 christos g_ddfmt(0) gives 14 bytes: "1.23456589e+20" 59 1.1 christos 60 1.1 christos strtoIdd returns 1, consuming 14 bytes. 61 1.1 christos ddI[0] == ddI[1] == strtopdd 62 1.1 christos 63 1.1 christos 64 1.1 christos Input: 1.23e+30 65 1.1 christos strtopdd consumes 8 bytes and returns 1 66 1.1 christos dd[0] = 1.23e+30 = #462f0cb0 4e8fb790 67 1.1 christos dd[1] = 40281156091904 = #42c25158 0 68 1.1 christos g_ddfmt(0) gives 8 bytes: "1.23e+30" 69 1.1 christos 70 1.1 christos strtoIdd returns 1, consuming 8 bytes. 71 1.1 christos ddI[0] == ddI[1] == strtopdd 72 1.1 christos 73 1.1 christos 74 1.1 christos Input: 1.23e-30 75 1.1 christos strtopdd consumes 8 bytes and returns 17 76 1.1 christos dd[0] = 1.2299999999999999e-30 = #39b8f286 6f5010aa 77 1.1 christos dd[1] = 1.076909723013918e-46 = #3663ac7f 3dafd174 78 1.1 christos g_ddfmt(0) gives 8 bytes: "1.23e-30" 79 1.1 christos 80 1.1 christos strtoIdd returns 17, consuming 8 bytes. 81 1.1 christos ddI[0] = #39b8f286 6f5010aa + 3663ac7f 3dafd174 82 1.1 christos = 1.2299999999999999e-30 + 1.076909723013918e-46 83 1.1 christos ddI[1] = #39b8f286 6f5010aa + 3663ac7f 3dafd175 84 1.1 christos = 1.2299999999999999e-30 + 1.0769097230139181e-46 85 1.1 christos ddI[0] == strtod 86 1.1 christos 87 1.1 christos 88 1.1 christos Input: 1.23456789e-20 89 1.1 christos strtopdd consumes 14 bytes and returns 17 90 1.1 christos dd[0] = 1.23456789e-20 = #3bcd2681 471e7ada 91 1.1 christos dd[1] = 6.247111971663133e-37 = #386a9280 a761b07e 92 1.1 christos g_ddfmt(0) gives 14 bytes: "1.23456789e-20" 93 1.1 christos 94 1.1 christos strtoIdd returns 17, consuming 14 bytes. 95 1.1 christos ddI[0] = #3bcd2681 471e7ada + 386a9280 a761b07e 96 1.1 christos = 1.2345678899999999e-20 + 6.2471119716631328e-37 97 1.1 christos ddI[1] = #3bcd2681 471e7ada + 386a9280 a761b080 98 1.1 christos = 1.2345678899999999e-20 + 6.2471119716631345e-37 99 1.1 christos ddI[0] == strtod 100 1.1 christos 101 1.1 christos 102 1.1 christos Input: 1.23456789e-30 103 1.1 christos strtopdd consumes 14 bytes and returns 33 104 1.1 christos dd[0] = 1.23456789e-30 = #39b90a3e 33bbd995 105 1.1 christos dd[1] = 2.1567930523648577e-47 = #363f8585 55a6b1a0 106 1.1 christos g_ddfmt(0) gives 14 bytes: "1.23456789e-30" 107 1.1 christos 108 1.1 christos strtoIdd returns 33, consuming 14 bytes. 109 1.1 christos ddI[0] = #39b90a3e 33bbd995 + 363f8585 55a6b198 110 1.1 christos = 1.23456789e-30 + 2.1567930523648558e-47 111 1.1 christos ddI[1] = #39b90a3e 33bbd995 + 363f8585 55a6b1a0 112 1.1 christos = 1.23456789e-30 + 2.1567930523648577e-47 113 1.1 christos ddI[1] == strtod 114 1.1 christos 115 1.1 christos 116 1.1 christos Input: 1.234567890123456789 117 1.1 christos strtopdd consumes 20 bytes and returns 33 118 1.1 christos dd[0] = 1.2345678901234567 = #3ff3c0ca 428c59fb 119 1.1 christos dd[1] = 9.856786452588859e-17 = #3c9c6906 51a3745e 120 1.1 christos g_ddfmt(0) gives 20 bytes: "1.234567890123456789" 121 1.1 christos 122 1.1 christos strtoIdd returns 33, consuming 20 bytes. 123 1.1 christos ddI[0] = #3ff3c0ca 428c59fb + 3c9c6906 51a3745c 124 1.1 christos = 1.2345678901234567 + 9.8567864525888563e-17 125 1.1 christos ddI[1] = #3ff3c0ca 428c59fb + 3c9c6906 51a3745e 126 1.1 christos = 1.2345678901234567 + 9.8567864525888588e-17 127 1.1 christos ddI[1] == strtod 128 1.1 christos 129 1.1 christos 130 1.1 christos Input: 1.23456789012345678901234567890123456789 131 1.1 christos strtopdd consumes 40 bytes and returns 33 132 1.1 christos dd[0] = 1.2345678901234567 = #3ff3c0ca 428c59fb 133 1.1 christos dd[1] = 9.858021020478982e-17 = #3c9c69ef 85adadb6 134 1.1 christos g_ddfmt(0) gives 34 bytes: "1.23456789012345678901234567890124" 135 1.1 christos 136 1.1 christos strtoIdd returns 33, consuming 40 bytes. 137 1.1 christos ddI[0] = #3ff3c0ca 428c59fb + 3c9c69ef 85adadb4 138 1.1 christos = 1.2345678901234567 + 9.8580210204789798e-17 139 1.1 christos ddI[1] = #3ff3c0ca 428c59fb + 3c9c69ef 85adadb6 140 1.1 christos = 1.2345678901234567 + 9.8580210204789823e-17 141 1.1 christos ddI[1] == strtod 142 1.1 christos 143 1.1 christos 144 1.1 christos Input: 1.23e306 145 1.1 christos strtopdd consumes 8 bytes and returns 33 146 1.1 christos dd[0] = 1.2299999999999999e+306 = #7f7c0676 cd1c61f4 147 1.1 christos dd[1] = 1.3319001448659015e+290 = #7c2b558b e3d3f477 148 1.1 christos g_ddfmt(0) gives 9 bytes: "1.23e+306" 149 1.1 christos 150 1.1 christos strtoIdd returns 33, consuming 8 bytes. 151 1.1 christos ddI[0] = #7f7c0676 cd1c61f4 + 7c2b558b e3d3f476 152 1.1 christos = 1.2299999999999999e+306 + 1.3319001448659013e+290 153 1.1 christos ddI[1] = #7f7c0676 cd1c61f4 + 7c2b558b e3d3f477 154 1.1 christos = 1.2299999999999999e+306 + 1.3319001448659015e+290 155 1.1 christos ddI[1] == strtod 156 1.1 christos 157 1.1 christos 158 1.1 christos Input: 1.23e-306 159 1.1 christos strtopdd consumes 9 bytes and returns 80 160 1.1 christos dd[0] = 0 = #0 0 161 1.1 christos dd[1] = 0 = #0 0 162 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 163 1.1 christos 164 1.1 christos strtoIdd returns 80, consuming 9 bytes. 165 1.1 christos ddI[0] = #0 0 + 0 0 166 1.1 christos = 0 + 0 167 1.1 christos ddI[1] = #6a00000 0 + 0 0 168 1.1 christos = 9.0259718793241479e-277 + 0 169 1.1 christos ddI[0] == strtod 170 1.1 christos 171 1.1 christos 172 1.1 christos Input: 1.23e-320 173 1.1 christos strtopdd consumes 9 bytes and returns 80 174 1.1 christos dd[0] = 0 = #0 0 175 1.1 christos dd[1] = 0 = #0 0 176 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 177 1.1 christos 178 1.1 christos strtoIdd returns 80, consuming 9 bytes. 179 1.1 christos ddI[0] = #0 0 + 0 0 180 1.1 christos = 0 + 0 181 1.1 christos ddI[1] = #6a00000 0 + 0 0 182 1.1 christos = 9.0259718793241479e-277 + 0 183 1.1 christos ddI[0] == strtod 184 1.1 christos 185 1.1 christos 186 1.1 christos Input: 1.23e-20 187 1.1 christos strtopdd consumes 8 bytes and returns 33 188 1.1 christos dd[0] = 1.2299999999999999e-20 = #3bcd0ae4 cf767530 189 1.1 christos dd[1] = 9.304023318521521e-37 = #3873c997 955b2691 190 1.1 christos g_ddfmt(0) gives 8 bytes: "1.23e-20" 191 1.1 christos 192 1.1 christos strtoIdd returns 33, consuming 8 bytes. 193 1.1 christos ddI[0] = #3bcd0ae4 cf767530 + 3873c997 955b2690 194 1.1 christos = 1.2299999999999999e-20 + 9.3040233185215194e-37 195 1.1 christos ddI[1] = #3bcd0ae4 cf767530 + 3873c997 955b2691 196 1.1 christos = 1.2299999999999999e-20 + 9.3040233185215211e-37 197 1.1 christos ddI[1] == strtod 198 1.1 christos 199 1.1 christos 200 1.1 christos Input: 1.23456789e307 201 1.1 christos strtopdd consumes 14 bytes and returns 33 202 1.1 christos dd[0] = 1.2345678899999998e+307 = #7fb194b1 4bdaecdb 203 1.1 christos dd[1] = 2.0137933598720243e+291 = #7c69d48d 192048ca 204 1.1 christos g_ddfmt(0) gives 15 bytes: "1.23456789e+307" 205 1.1 christos 206 1.1 christos strtoIdd returns 33, consuming 14 bytes. 207 1.1 christos ddI[0] = #7fb194b1 4bdaecdb + 7c69d48d 192048c9 208 1.1 christos = 1.2345678899999998e+307 + 2.013793359872024e+291 209 1.1 christos ddI[1] = #7fb194b1 4bdaecdb + 7c69d48d 192048ca 210 1.1 christos = 1.2345678899999998e+307 + 2.0137933598720243e+291 211 1.1 christos ddI[1] == strtod 212 1.1 christos 213 1.1 christos 214 1.1 christos Input: 1.23456589e-307 215 1.1 christos strtopdd consumes 15 bytes and returns 80 216 1.1 christos dd[0] = 0 = #0 0 217 1.1 christos dd[1] = 0 = #0 0 218 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 219 1.1 christos 220 1.1 christos strtoIdd returns 80, consuming 15 bytes. 221 1.1 christos ddI[0] = #0 0 + 0 0 222 1.1 christos = 0 + 0 223 1.1 christos ddI[1] = #6a00000 0 + 0 0 224 1.1 christos = 9.0259718793241479e-277 + 0 225 1.1 christos ddI[0] == strtod 226 1.1 christos 227 1.1 christos 228 1.1 christos Input: 1.234567890123456789 229 1.1 christos strtopdd consumes 20 bytes and returns 33 230 1.1 christos dd[0] = 1.2345678901234567 = #3ff3c0ca 428c59fb 231 1.1 christos dd[1] = 9.856786452588859e-17 = #3c9c6906 51a3745e 232 1.1 christos g_ddfmt(0) gives 20 bytes: "1.234567890123456789" 233 1.1 christos 234 1.1 christos strtoIdd returns 33, consuming 20 bytes. 235 1.1 christos ddI[0] = #3ff3c0ca 428c59fb + 3c9c6906 51a3745c 236 1.1 christos = 1.2345678901234567 + 9.8567864525888563e-17 237 1.1 christos ddI[1] = #3ff3c0ca 428c59fb + 3c9c6906 51a3745e 238 1.1 christos = 1.2345678901234567 + 9.8567864525888588e-17 239 1.1 christos ddI[1] == strtod 240 1.1 christos 241 1.1 christos 242 1.1 christos Input: 1.234567890123456789e301 243 1.1 christos strtopdd consumes 24 bytes and returns 33 244 1.1 christos dd[0] = 1.2345678901234568e+301 = #7e726f51 75f56413 245 1.1 christos dd[1] = 1.3892003943918827e+283 = #7ab7ea80 76399100 246 1.1 christos g_ddfmt(0) gives 25 bytes: "1.234567890123456789e+301" 247 1.1 christos 248 1.1 christos strtoIdd returns 33, consuming 24 bytes. 249 1.1 christos ddI[0] = #7e726f51 75f56413 + 7ab7ea80 76399080 250 1.1 christos = 1.2345678901234568e+301 + 1.3892003943918563e+283 251 1.1 christos ddI[1] = #7e726f51 75f56413 + 7ab7ea80 76399100 252 1.1 christos = 1.2345678901234568e+301 + 1.3892003943918827e+283 253 1.1 christos ddI[1] == strtod 254 1.1 christos 255 1.1 christos 256 1.1 christos Input: 1.234567890123456789e-301 257 1.1 christos strtopdd consumes 25 bytes and returns 80 258 1.1 christos dd[0] = 0 = #0 0 259 1.1 christos dd[1] = 0 = #0 0 260 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 261 1.1 christos 262 1.1 christos strtoIdd returns 80, consuming 25 bytes. 263 1.1 christos ddI[0] = #0 0 + 0 0 264 1.1 christos = 0 + 0 265 1.1 christos ddI[1] = #6a00000 0 + 0 0 266 1.1 christos = 9.0259718793241479e-277 + 0 267 1.1 christos ddI[0] == strtod 268 1.1 christos 269 1.1 christos 270 1.1 christos Input: 1.234567890123456789e-321 271 1.1 christos strtopdd consumes 25 bytes and returns 80 272 1.1 christos dd[0] = 0 = #0 0 273 1.1 christos dd[1] = 0 = #0 0 274 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 275 1.1 christos 276 1.1 christos strtoIdd returns 80, consuming 25 bytes. 277 1.1 christos ddI[0] = #0 0 + 0 0 278 1.1 christos = 0 + 0 279 1.1 christos ddI[1] = #6a00000 0 + 0 0 280 1.1 christos = 9.0259718793241479e-277 + 0 281 1.1 christos ddI[0] == strtod 282 1.1 christos 283 1.1 christos 284 1.1 christos Input: 1e23 285 1.1 christos strtopdd consumes 4 bytes and returns 1 286 1.1 christos dd[0] = 1e+23 = #44b52d02 c7e14af6 287 1.1 christos dd[1] = 8388608 = #41600000 0 288 1.1 christos g_ddfmt(0) gives 5 bytes: "1e+23" 289 1.1 christos 290 1.1 christos strtoIdd returns 1, consuming 4 bytes. 291 1.1 christos ddI[0] == ddI[1] == strtopdd 292 1.1 christos 293 1.1 christos 294 1.1 christos Input: 1e310 295 1.1 christos strtopdd consumes 5 bytes and returns 163 296 1.1 christos dd[0] = Infinity = #7ff00000 0 297 1.1 christos dd[1] = Infinity = #7ff00000 0 298 1.1 christos g_ddfmt(0) gives 8 bytes: "Infinity" 299 1.1 christos 300 1.1 christos strtoIdd returns 163, consuming 5 bytes. 301 1.1 christos ddI[0] = #7fefffff ffffffff + 7c9fffff ffffffff 302 1.1 christos = 1.7976931348623157e+308 + 1.9958403095347196e+292 303 1.1 christos ddI[1] = #7ff00000 0 + 7ff00000 0 304 1.1 christos = Infinity + Infinity 305 1.1 christos ddI[1] == strtod 306 1.1 christos 307 1.1 christos 308 1.1 christos Input: 9.0259718793241475e-277 309 1.1 christos strtopdd consumes 23 bytes and returns 80 310 1.1 christos dd[0] = 0 = #0 0 311 1.1 christos dd[1] = 0 = #0 0 312 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 313 1.1 christos 314 1.1 christos strtoIdd returns 80, consuming 23 bytes. 315 1.1 christos ddI[0] = #0 0 + 0 0 316 1.1 christos = 0 + 0 317 1.1 christos ddI[1] = #6a00000 0 + 0 0 318 1.1 christos = 9.0259718793241479e-277 + 0 319 1.1 christos ddI[0] == strtod 320 1.1 christos 321 1.1 christos 322 1.1 christos Input: 9.025971879324147880346310405869e-277 323 1.1 christos strtopdd consumes 37 bytes and returns 17 324 1.1 christos dd[0] = 9.025971879324148e-277 = #6a00000 0 325 1.1 christos dd[1] = 2.2250738585072014e-308 = #100000 0 326 1.1 christos g_ddfmt(0) gives 37 bytes: "9.025971879324147880346310405869e-277" 327 1.1 christos 328 1.1 christos strtoIdd returns 17, consuming 37 bytes. 329 1.1 christos ddI[0] = #6a00000 0 + 100000 0 330 1.1 christos = 9.0259718793241479e-277 + 2.2250738585072014e-308 331 1.1 christos ddI[1] = #6a00000 0 + 200000 0 332 1.1 christos = 9.0259718793241479e-277 + 4.4501477170144028e-308 333 1.1 christos ddI[0] == strtod 334 1.1 christos 335 1.1 christos 336 1.1 christos Input: 9.025971879324147880346310405868e-277 337 1.1 christos strtopdd consumes 37 bytes and returns 80 338 1.1 christos dd[0] = 0 = #0 0 339 1.1 christos dd[1] = 0 = #0 0 340 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 341 1.1 christos 342 1.1 christos strtoIdd returns 80, consuming 37 bytes. 343 1.1 christos ddI[0] = #0 0 + 0 0 344 1.1 christos = 0 + 0 345 1.1 christos ddI[1] = #6a00000 0 + 0 0 346 1.1 christos = 9.0259718793241479e-277 + 0 347 1.1 christos ddI[0] == strtod 348 1.1 christos 349 1.1 christos 350 1.1 christos Input: 2.2250738585072014e-308 351 1.1 christos strtopdd consumes 23 bytes and returns 80 352 1.1 christos dd[0] = 0 = #0 0 353 1.1 christos dd[1] = 0 = #0 0 354 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 355 1.1 christos 356 1.1 christos strtoIdd returns 80, consuming 23 bytes. 357 1.1 christos ddI[0] = #0 0 + 0 0 358 1.1 christos = 0 + 0 359 1.1 christos ddI[1] = #6a00000 0 + 0 0 360 1.1 christos = 9.0259718793241479e-277 + 0 361 1.1 christos ddI[0] == strtod 362 1.1 christos 363 1.1 christos 364 1.1 christos Input: 2.2250738585072013e-308 365 1.1 christos strtopdd consumes 23 bytes and returns 80 366 1.1 christos dd[0] = 0 = #0 0 367 1.1 christos dd[1] = 0 = #0 0 368 1.1 christos g_ddfmt(0) gives 1 bytes: "0" 369 1.1 christos 370 1.1 christos strtoIdd returns 80, consuming 23 bytes. 371 1.1 christos ddI[0] = #0 0 + 0 0 372 1.1 christos = 0 + 0 373 1.1 christos ddI[1] = #6a00000 0 + 0 0 374 1.1 christos = 9.0259718793241479e-277 + 0 375 1.1 christos ddI[0] == strtod 376 1.1 christos 377