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