1 /* Copyright (C) 2007, 2009 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 3, or (at your option) any later
10 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
24 static const UINT128 reciprocals10_128[] = {
25 { { 0ull, 0ull } }, /* 0 extra digits */
26 { { 0x3333333333333334ull ,0x3333333333333333ull } }, /* 1 extra digit */
27 { { 0x51eb851eb851eb86ull ,0x051eb851eb851eb8ull } }, /* 2 extra digits */
28 { { 0x3b645a1cac083127ull, 0x0083126e978d4fdfull } }, /* 3 extra digits */
29 { { 0x4af4f0d844d013aaULL, 0x00346dc5d6388659ULL } }, /* 10^(-4) * 2^131 */
30 { { 0x08c3f3e0370cdc88ULL, 0x0029f16b11c6d1e1ULL } }, /* 10^(-5) * 2^134 */
31 { { 0x6d698fe69270b06dULL, 0x00218def416bdb1aULL } }, /* 10^(-6) * 2^137 */
32 { { 0xaf0f4ca41d811a47ULL, 0x0035afe535795e90ULL } }, /* 10^(-7) * 2^141 */
33 { { 0xbf3f70834acdaea0ULL, 0x002af31dc4611873ULL } }, /* 10^(-8) * 2^144 */
34 { { 0x65cc5a02a23e254dULL, 0x00225c17d04dad29ULL } }, /* 10^(-9) * 2^147 */
35 { { 0x6fad5cd10396a214ULL, 0x0036f9bfb3af7b75ULL } }, /* 10^(-10) * 2^151 */
36 { { 0xbfbde3da69454e76ULL, 0x002bfaffc2f2c92aULL } }, /* 10^(-11) * 2^154 */
37 { { 0x32fe4fe1edd10b92ULL, 0x00232f33025bd422ULL } }, /* 10^(-12) * 2^157 */
38 { { 0x84ca19697c81ac1cULL, 0x00384b84d092ed03ULL } }, /* 10^(-13) * 2^161 */
39 { { 0x03d4e1213067bce4ULL, 0x002d09370d425736ULL } }, /* 10^(-14) * 2^164 */
40 { { 0x3643e74dc052fd83ULL, 0x0024075f3dceac2bULL } }, /* 10^(-15) * 2^167 */
41 { { 0x56d30baf9a1e626bULL, 0x0039a5652fb11378ULL } }, /* 10^(-16) * 2^171 */
42 { { 0x12426fbfae7eb522ULL, 0x002e1dea8c8da92dULL } }, /* 10^(-17) * 2^174 */
43 { { 0x41cebfcc8b9890e8ULL, 0x0024e4bba3a48757ULL } }, /* 10^(-18) * 2^177 */
44 { { 0x694acc7a78f41b0dULL, 0x003b07929f6da558ULL } }, /* 10^(-19) * 2^181 */
45 { { 0xbaa23d2ec729af3eULL, 0x002f394219248446ULL } }, /* 10^(-20) * 2^184 */
46 { { 0xfbb4fdbf05baf298ULL, 0x0025c768141d369eULL } }, /* 10^(-21) * 2^187 */
47 { { 0x2c54c931a2c4b759ULL, 0x003c7240202ebdcbULL } }, /* 10^(-22) * 2^191 */
48 { { 0x89dd6dc14f03c5e1ULL, 0x00305b66802564a2ULL } }, /* 10^(-23) * 2^194 */
49 { { 0xd4b1249aa59c9e4eULL, 0x0026af8533511d4eULL } }, /* 10^(-24) * 2^197 */
50 { { 0x544ea0f76f60fd49ULL, 0x003de5a1ebb4fbb1ULL } }, /* 10^(-25) * 2^201 */
51 { { 0x76a54d92bf80caa1ULL, 0x00318481895d9627ULL } }, /* 10^(-26) * 2^204 */
52 { { 0x921dd7a89933d54eULL, 0x00279d346de4781fULL } }, /* 10^(-27) * 2^207 */
53 { { 0x8362f2a75b862215ULL, 0x003f61ed7ca0c032ULL } }, /* 10^(-28) * 2^211 */
54 { { 0xcf825bb91604e811ULL, 0x0032b4bdfd4d668eULL } }, /* 10^(-29) * 2^214 */
55 { { 0x0c684960de6a5341ULL, 0x00289097fdd7853fULL } }, /* 10^(-30) * 2^217 */
56 { { 0x3d203ab3e521dc34ULL, 0x002073accb12d0ffULL } }, /* 10^(-31) * 2^220 */
57 { { 0x2e99f7863b696053ULL, 0x0033ec47ab514e65ULL } }, /* 10^(-32) * 2^224 */
58 { { 0x587b2c6b62bab376ULL, 0x002989d2ef743eb7ULL } }, /* 10^(-33) * 2^227 */
59 { { 0xad2f56bc4efbc2c5ULL, 0x00213b0f25f69892ULL } }, /* 10^(-34) * 2^230 */
60 { { 0x0f2abc9d8c9689d1ull, 0x01a95a5b7f87a0efull } } /* 35 extra digits */
63 static const int recip_scale[] = {
66 129 - 128, /* 1/10^2 */
67 129 - 128, /* 1/10^3 */
100 237 - 128, /* 1/10^35 */
103 static const int short_recip_scale[] = {
120 115 - 64, /* 114 - 64 */
124 static const unsigned long long reciprocals10_64[] = {
125 1ull, /* dummy value for 0 extra digits */
126 0x3333333333333334ull, /* 1 extra digit */
127 0x51eb851eb851eb86ull,
128 0x20c49ba5e353f7cfull,
129 0x346dc5d63886594bull,
130 0x29f16b11c6d1e109ull,
131 0x218def416bdb1a6eull,
132 0x35afe535795e90b0ull,
133 0x2af31dc4611873c0ull,
134 0x225c17d04dad2966ull,
135 0x36f9bfb3af7b7570ull,
136 0x2bfaffc2f2c92ac0ull,
137 0x232f33025bd42233ull,
138 0x384b84d092ed0385ull,
139 0x2d09370d42573604ull,
140 0x24075f3dceac2b37ull,
141 0x39a5652fb1137857ull,
142 0x2e1dea8c8da92d13ull
145 static const UINT64 d2b[] = {
146 0, 1, 2, 3, 4, 5, 6, 7,
147 8, 9, 80, 81, 800, 801, 880, 881,
148 10, 11, 12, 13, 14, 15, 16, 17,
149 18, 19, 90, 91, 810, 811, 890, 891,
150 20, 21, 22, 23, 24, 25, 26, 27,
151 28, 29, 82, 83, 820, 821, 808, 809,
152 30, 31, 32, 33, 34, 35, 36, 37,
153 38, 39, 92, 93, 830, 831, 818, 819,
154 40, 41, 42, 43, 44, 45, 46, 47,
155 48, 49, 84, 85, 840, 841, 88, 89,
156 50, 51, 52, 53, 54, 55, 56, 57,
157 58, 59, 94, 95, 850, 851, 98, 99,
158 60, 61, 62, 63, 64, 65, 66, 67,
159 68, 69, 86, 87, 860, 861, 888, 889,
160 70, 71, 72, 73, 74, 75, 76, 77,
161 78, 79, 96, 97, 870, 871, 898, 899,
162 100, 101, 102, 103, 104, 105, 106, 107,
163 108, 109, 180, 181, 900, 901, 980, 981,
164 110, 111, 112, 113, 114, 115, 116, 117,
165 118, 119, 190, 191, 910, 911, 990, 991,
166 120, 121, 122, 123, 124, 125, 126, 127,
167 128, 129, 182, 183, 920, 921, 908, 909,
168 130, 131, 132, 133, 134, 135, 136, 137,
169 138, 139, 192, 193, 930, 931, 918, 919,
170 140, 141, 142, 143, 144, 145, 146, 147,
171 148, 149, 184, 185, 940, 941, 188, 189,
172 150, 151, 152, 153, 154, 155, 156, 157,
173 158, 159, 194, 195, 950, 951, 198, 199,
174 160, 161, 162, 163, 164, 165, 166, 167,
175 168, 169, 186, 187, 960, 961, 988, 989,
176 170, 171, 172, 173, 174, 175, 176, 177,
177 178, 179, 196, 197, 970, 971, 998, 999,
178 200, 201, 202, 203, 204, 205, 206, 207,
179 208, 209, 280, 281, 802, 803, 882, 883,
180 210, 211, 212, 213, 214, 215, 216, 217,
181 218, 219, 290, 291, 812, 813, 892, 893,
182 220, 221, 222, 223, 224, 225, 226, 227,
183 228, 229, 282, 283, 822, 823, 828, 829,
184 230, 231, 232, 233, 234, 235, 236, 237,
185 238, 239, 292, 293, 832, 833, 838, 839,
186 240, 241, 242, 243, 244, 245, 246, 247,
187 248, 249, 284, 285, 842, 843, 288, 289,
188 250, 251, 252, 253, 254, 255, 256, 257,
189 258, 259, 294, 295, 852, 853, 298, 299,
190 260, 261, 262, 263, 264, 265, 266, 267,
191 268, 269, 286, 287, 862, 863, 888, 889,
192 270, 271, 272, 273, 274, 275, 276, 277,
193 278, 279, 296, 297, 872, 873, 898, 899,
194 300, 301, 302, 303, 304, 305, 306, 307,
195 308, 309, 380, 381, 902, 903, 982, 983,
196 310, 311, 312, 313, 314, 315, 316, 317,
197 318, 319, 390, 391, 912, 913, 992, 993,
198 320, 321, 322, 323, 324, 325, 326, 327,
199 328, 329, 382, 383, 922, 923, 928, 929,
200 330, 331, 332, 333, 334, 335, 336, 337,
201 338, 339, 392, 393, 932, 933, 938, 939,
202 340, 341, 342, 343, 344, 345, 346, 347,
203 348, 349, 384, 385, 942, 943, 388, 389,
204 350, 351, 352, 353, 354, 355, 356, 357,
205 358, 359, 394, 395, 952, 953, 398, 399,
206 360, 361, 362, 363, 364, 365, 366, 367,
207 368, 369, 386, 387, 962, 963, 988, 989,
208 370, 371, 372, 373, 374, 375, 376, 377,
209 378, 379, 396, 397, 972, 973, 998, 999,
210 400, 401, 402, 403, 404, 405, 406, 407,
211 408, 409, 480, 481, 804, 805, 884, 885,
212 410, 411, 412, 413, 414, 415, 416, 417,
213 418, 419, 490, 491, 814, 815, 894, 895,
214 420, 421, 422, 423, 424, 425, 426, 427,
215 428, 429, 482, 483, 824, 825, 848, 849,
216 430, 431, 432, 433, 434, 435, 436, 437,
217 438, 439, 492, 493, 834, 835, 858, 859,
218 440, 441, 442, 443, 444, 445, 446, 447,
219 448, 449, 484, 485, 844, 845, 488, 489,
220 450, 451, 452, 453, 454, 455, 456, 457,
221 458, 459, 494, 495, 854, 855, 498, 499,
222 460, 461, 462, 463, 464, 465, 466, 467,
223 468, 469, 486, 487, 864, 865, 888, 889,
224 470, 471, 472, 473, 474, 475, 476, 477,
225 478, 479, 496, 497, 874, 875, 898, 899,
226 500, 501, 502, 503, 504, 505, 506, 507,
227 508, 509, 580, 581, 904, 905, 984, 985,
228 510, 511, 512, 513, 514, 515, 516, 517,
229 518, 519, 590, 591, 914, 915, 994, 995,
230 520, 521, 522, 523, 524, 525, 526, 527,
231 528, 529, 582, 583, 924, 925, 948, 949,
232 530, 531, 532, 533, 534, 535, 536, 537,
233 538, 539, 592, 593, 934, 935, 958, 959,
234 540, 541, 542, 543, 544, 545, 546, 547,
235 548, 549, 584, 585, 944, 945, 588, 589,
236 550, 551, 552, 553, 554, 555, 556, 557,
237 558, 559, 594, 595, 954, 955, 598, 599,
238 560, 561, 562, 563, 564, 565, 566, 567,
239 568, 569, 586, 587, 964, 965, 988, 989,
240 570, 571, 572, 573, 574, 575, 576, 577,
241 578, 579, 596, 597, 974, 975, 998, 999,
242 600, 601, 602, 603, 604, 605, 606, 607,
243 608, 609, 680, 681, 806, 807, 886, 887,
244 610, 611, 612, 613, 614, 615, 616, 617,
245 618, 619, 690, 691, 816, 817, 896, 897,
246 620, 621, 622, 623, 624, 625, 626, 627,
247 628, 629, 682, 683, 826, 827, 868, 869,
248 630, 631, 632, 633, 634, 635, 636, 637,
249 638, 639, 692, 693, 836, 837, 878, 879,
250 640, 641, 642, 643, 644, 645, 646, 647,
251 648, 649, 684, 685, 846, 847, 688, 689,
252 650, 651, 652, 653, 654, 655, 656, 657,
253 658, 659, 694, 695, 856, 857, 698, 699,
254 660, 661, 662, 663, 664, 665, 666, 667,
255 668, 669, 686, 687, 866, 867, 888, 889,
256 670, 671, 672, 673, 674, 675, 676, 677,
257 678, 679, 696, 697, 876, 877, 898, 899,
258 700, 701, 702, 703, 704, 705, 706, 707,
259 708, 709, 780, 781, 906, 907, 986, 987,
260 710, 711, 712, 713, 714, 715, 716, 717,
261 718, 719, 790, 791, 916, 917, 996, 997,
262 720, 721, 722, 723, 724, 725, 726, 727,
263 728, 729, 782, 783, 926, 927, 968, 969,
264 730, 731, 732, 733, 734, 735, 736, 737,
265 738, 739, 792, 793, 936, 937, 978, 979,
266 740, 741, 742, 743, 744, 745, 746, 747,
267 748, 749, 784, 785, 946, 947, 788, 789,
268 750, 751, 752, 753, 754, 755, 756, 757,
269 758, 759, 794, 795, 956, 957, 798, 799,
270 760, 761, 762, 763, 764, 765, 766, 767,
271 768, 769, 786, 787, 966, 967, 988, 989,
272 770, 771, 772, 773, 774, 775, 776, 777,
273 778, 779, 796, 797, 976, 977, 998, 999 };
275 static const UINT64 d2b2[] = {
276 0000ull, 1000ull, 2000ull, 3000ull,
277 4000ull, 5000ull, 6000ull, 7000ull,
278 8000ull, 9000ull, 80000ull, 81000ull,
279 800000ull, 801000ull, 880000ull, 881000ull,
280 10000ull, 11000ull, 12000ull, 13000ull,
281 14000ull, 15000ull, 16000ull, 17000ull,
282 18000ull, 19000ull, 90000ull, 91000ull,
283 810000ull, 811000ull, 890000ull, 891000ull,
284 20000ull, 21000ull, 22000ull, 23000ull,
285 24000ull, 25000ull, 26000ull, 27000ull,
286 28000ull, 29000ull, 82000ull, 83000ull,
287 820000ull, 821000ull, 808000ull, 809000ull,
288 30000ull, 31000ull, 32000ull, 33000ull,
289 34000ull, 35000ull, 36000ull, 37000ull,
290 38000ull, 39000ull, 92000ull, 93000ull,
291 830000ull, 831000ull, 818000ull, 819000ull,
292 40000ull, 41000ull, 42000ull, 43000ull,
293 44000ull, 45000ull, 46000ull, 47000ull,
294 48000ull, 49000ull, 84000ull, 85000ull,
295 840000ull, 841000ull, 88000ull, 89000ull,
296 50000ull, 51000ull, 52000ull, 53000ull,
297 54000ull, 55000ull, 56000ull, 57000ull,
298 58000ull, 59000ull, 94000ull, 95000ull,
299 850000ull, 851000ull, 98000ull, 99000ull,
300 60000ull, 61000ull, 62000ull, 63000ull,
301 64000ull, 65000ull, 66000ull, 67000ull,
302 68000ull, 69000ull, 86000ull, 87000ull,
303 860000ull, 861000ull, 888000ull, 889000ull,
304 70000ull, 71000ull, 72000ull, 73000ull,
305 74000ull, 75000ull, 76000ull, 77000ull,
306 78000ull, 79000ull, 96000ull, 97000ull,
307 870000ull, 871000ull, 898000ull, 899000ull,
308 100000ull, 101000ull, 102000ull, 103000ull,
309 104000ull, 105000ull, 106000ull, 107000ull,
310 108000ull, 109000ull, 180000ull, 181000ull,
311 900000ull, 901000ull, 980000ull, 981000ull,
312 110000ull, 111000ull, 112000ull, 113000ull,
313 114000ull, 115000ull, 116000ull, 117000ull,
314 118000ull, 119000ull, 190000ull, 191000ull,
315 910000ull, 911000ull, 990000ull, 991000ull,
316 120000ull, 121000ull, 122000ull, 123000ull,
317 124000ull, 125000ull, 126000ull, 127000ull,
318 128000ull, 129000ull, 182000ull, 183000ull,
319 920000ull, 921000ull, 908000ull, 909000ull,
320 130000ull, 131000ull, 132000ull, 133000ull,
321 134000ull, 135000ull, 136000ull, 137000ull,
322 138000ull, 139000ull, 192000ull, 193000ull,
323 930000ull, 931000ull, 918000ull, 919000ull,
324 140000ull, 141000ull, 142000ull, 143000ull,
325 144000ull, 145000ull, 146000ull, 147000ull,
326 148000ull, 149000ull, 184000ull, 185000ull,
327 940000ull, 941000ull, 188000ull, 189000ull,
328 150000ull, 151000ull, 152000ull, 153000ull,
329 154000ull, 155000ull, 156000ull, 157000ull,
330 158000ull, 159000ull, 194000ull, 195000ull,
331 950000ull, 951000ull, 198000ull, 199000ull,
332 160000ull, 161000ull, 162000ull, 163000ull,
333 164000ull, 165000ull, 166000ull, 167000ull,
334 168000ull, 169000ull, 186000ull, 187000ull,
335 960000ull, 961000ull, 988000ull, 989000ull,
336 170000ull, 171000ull, 172000ull, 173000ull,
337 174000ull, 175000ull, 176000ull, 177000ull,
338 178000ull, 179000ull, 196000ull, 197000ull,
339 970000ull, 971000ull, 998000ull, 999000ull,
340 200000ull, 201000ull, 202000ull, 203000ull,
341 204000ull, 205000ull, 206000ull, 207000ull,
342 208000ull, 209000ull, 280000ull, 281000ull,
343 802000ull, 803000ull, 882000ull, 883000ull,
344 210000ull, 211000ull, 212000ull, 213000ull,
345 214000ull, 215000ull, 216000ull, 217000ull,
346 218000ull, 219000ull, 290000ull, 291000ull,
347 812000ull, 813000ull, 892000ull, 893000ull,
348 220000ull, 221000ull, 222000ull, 223000ull,
349 224000ull, 225000ull, 226000ull, 227000ull,
350 228000ull, 229000ull, 282000ull, 283000ull,
351 822000ull, 823000ull, 828000ull, 829000ull,
352 230000ull, 231000ull, 232000ull, 233000ull,
353 234000ull, 235000ull, 236000ull, 237000ull,
354 238000ull, 239000ull, 292000ull, 293000ull,
355 832000ull, 833000ull, 838000ull, 839000ull,
356 240000ull, 241000ull, 242000ull, 243000ull,
357 244000ull, 245000ull, 246000ull, 247000ull,
358 248000ull, 249000ull, 284000ull, 285000ull,
359 842000ull, 843000ull, 288000ull, 289000ull,
360 250000ull, 251000ull, 252000ull, 253000ull,
361 254000ull, 255000ull, 256000ull, 257000ull,
362 258000ull, 259000ull, 294000ull, 295000ull,
363 852000ull, 853000ull, 298000ull, 299000ull,
364 260000ull, 261000ull, 262000ull, 263000ull,
365 264000ull, 265000ull, 266000ull, 267000ull,
366 268000ull, 269000ull, 286000ull, 287000ull,
367 862000ull, 863000ull, 888000ull, 889000ull,
368 270000ull, 271000ull, 272000ull, 273000ull,
369 274000ull, 275000ull, 276000ull, 277000ull,
370 278000ull, 279000ull, 296000ull, 297000ull,
371 872000ull, 873000ull, 898000ull, 899000ull,
372 300000ull, 301000ull, 302000ull, 303000ull,
373 304000ull, 305000ull, 306000ull, 307000ull,
374 308000ull, 309000ull, 380000ull, 381000ull,
375 902000ull, 903000ull, 982000ull, 983000ull,
376 310000ull, 311000ull, 312000ull, 313000ull,
377 314000ull, 315000ull, 316000ull, 317000ull,
378 318000ull, 319000ull, 390000ull, 391000ull,
379 912000ull, 913000ull, 992000ull, 993000ull,
380 320000ull, 321000ull, 322000ull, 323000ull,
381 324000ull, 325000ull, 326000ull, 327000ull,
382 328000ull, 329000ull, 382000ull, 383000ull,
383 922000ull, 923000ull, 928000ull, 929000ull,
384 330000ull, 331000ull, 332000ull, 333000ull,
385 334000ull, 335000ull, 336000ull, 337000ull,
386 338000ull, 339000ull, 392000ull, 393000ull,
387 932000ull, 933000ull, 938000ull, 939000ull,
388 340000ull, 341000ull, 342000ull, 343000ull,
389 344000ull, 345000ull, 346000ull, 347000ull,
390 348000ull, 349000ull, 384000ull, 385000ull,
391 942000ull, 943000ull, 388000ull, 389000ull,
392 350000ull, 351000ull, 352000ull, 353000ull,
393 354000ull, 355000ull, 356000ull, 357000ull,
394 358000ull, 359000ull, 394000ull, 395000ull,
395 952000ull, 953000ull, 398000ull, 399000ull,
396 360000ull, 361000ull, 362000ull, 363000ull,
397 364000ull, 365000ull, 366000ull, 367000ull,
398 368000ull, 369000ull, 386000ull, 387000ull,
399 962000ull, 963000ull, 988000ull, 989000ull,
400 370000ull, 371000ull, 372000ull, 373000ull,
401 374000ull, 375000ull, 376000ull, 377000ull,
402 378000ull, 379000ull, 396000ull, 397000ull,
403 972000ull, 973000ull, 998000ull, 999000ull,
404 400000ull, 401000ull, 402000ull, 403000ull,
405 404000ull, 405000ull, 406000ull, 407000ull,
406 408000ull, 409000ull, 480000ull, 481000ull,
407 804000ull, 805000ull, 884000ull, 885000ull,
408 410000ull, 411000ull, 412000ull, 413000ull,
409 414000ull, 415000ull, 416000ull, 417000ull,
410 418000ull, 419000ull, 490000ull, 491000ull,
411 814000ull, 815000ull, 894000ull, 895000ull,
412 420000ull, 421000ull, 422000ull, 423000ull,
413 424000ull, 425000ull, 426000ull, 427000ull,
414 428000ull, 429000ull, 482000ull, 483000ull,
415 824000ull, 825000ull, 848000ull, 849000ull,
416 430000ull, 431000ull, 432000ull, 433000ull,
417 434000ull, 435000ull, 436000ull, 437000ull,
418 438000ull, 439000ull, 492000ull, 493000ull,
419 834000ull, 835000ull, 858000ull, 859000ull,
420 440000ull, 441000ull, 442000ull, 443000ull,
421 444000ull, 445000ull, 446000ull, 447000ull,
422 448000ull, 449000ull, 484000ull, 485000ull,
423 844000ull, 845000ull, 488000ull, 489000ull,
424 450000ull, 451000ull, 452000ull, 453000ull,
425 454000ull, 455000ull, 456000ull, 457000ull,
426 458000ull, 459000ull, 494000ull, 495000ull,
427 854000ull, 855000ull, 498000ull, 499000ull,
428 460000ull, 461000ull, 462000ull, 463000ull,
429 464000ull, 465000ull, 466000ull, 467000ull,
430 468000ull, 469000ull, 486000ull, 487000ull,
431 864000ull, 865000ull, 888000ull, 889000ull,
432 470000ull, 471000ull, 472000ull, 473000ull,
433 474000ull, 475000ull, 476000ull, 477000ull,
434 478000ull, 479000ull, 496000ull, 497000ull,
435 874000ull, 875000ull, 898000ull, 899000ull,
436 500000ull, 501000ull, 502000ull, 503000ull,
437 504000ull, 505000ull, 506000ull, 507000ull,
438 508000ull, 509000ull, 580000ull, 581000ull,
439 904000ull, 905000ull, 984000ull, 985000ull,
440 510000ull, 511000ull, 512000ull, 513000ull,
441 514000ull, 515000ull, 516000ull, 517000ull,
442 518000ull, 519000ull, 590000ull, 591000ull,
443 914000ull, 915000ull, 994000ull, 995000ull,
444 520000ull, 521000ull, 522000ull, 523000ull,
445 524000ull, 525000ull, 526000ull, 527000ull,
446 528000ull, 529000ull, 582000ull, 583000ull,
447 924000ull, 925000ull, 948000ull, 949000ull,
448 530000ull, 531000ull, 532000ull, 533000ull,
449 534000ull, 535000ull, 536000ull, 537000ull,
450 538000ull, 539000ull, 592000ull, 593000ull,
451 934000ull, 935000ull, 958000ull, 959000ull,
452 540000ull, 541000ull, 542000ull, 543000ull,
453 544000ull, 545000ull, 546000ull, 547000ull,
454 548000ull, 549000ull, 584000ull, 585000ull,
455 944000ull, 945000ull, 588000ull, 589000ull,
456 550000ull, 551000ull, 552000ull, 553000ull,
457 554000ull, 555000ull, 556000ull, 557000ull,
458 558000ull, 559000ull, 594000ull, 595000ull,
459 954000ull, 955000ull, 598000ull, 599000ull,
460 560000ull, 561000ull, 562000ull, 563000ull,
461 564000ull, 565000ull, 566000ull, 567000ull,
462 568000ull, 569000ull, 586000ull, 587000ull,
463 964000ull, 965000ull, 988000ull, 989000ull,
464 570000ull, 571000ull, 572000ull, 573000ull,
465 574000ull, 575000ull, 576000ull, 577000ull,
466 578000ull, 579000ull, 596000ull, 597000ull,
467 974000ull, 975000ull, 998000ull, 999000ull,
468 600000ull, 601000ull, 602000ull, 603000ull,
469 604000ull, 605000ull, 606000ull, 607000ull,
470 608000ull, 609000ull, 680000ull, 681000ull,
471 806000ull, 807000ull, 886000ull, 887000ull,
472 610000ull, 611000ull, 612000ull, 613000ull,
473 614000ull, 615000ull, 616000ull, 617000ull,
474 618000ull, 619000ull, 690000ull, 691000ull,
475 816000ull, 817000ull, 896000ull, 897000ull,
476 620000ull, 621000ull, 622000ull, 623000ull,
477 624000ull, 625000ull, 626000ull, 627000ull,
478 628000ull, 629000ull, 682000ull, 683000ull,
479 826000ull, 827000ull, 868000ull, 869000ull,
480 630000ull, 631000ull, 632000ull, 633000ull,
481 634000ull, 635000ull, 636000ull, 637000ull,
482 638000ull, 639000ull, 692000ull, 693000ull,
483 836000ull, 837000ull, 878000ull, 879000ull,
484 640000ull, 641000ull, 642000ull, 643000ull,
485 644000ull, 645000ull, 646000ull, 647000ull,
486 648000ull, 649000ull, 684000ull, 685000ull,
487 846000ull, 847000ull, 688000ull, 689000ull,
488 650000ull, 651000ull, 652000ull, 653000ull,
489 654000ull, 655000ull, 656000ull, 657000ull,
490 658000ull, 659000ull, 694000ull, 695000ull,
491 856000ull, 857000ull, 698000ull, 699000ull,
492 660000ull, 661000ull, 662000ull, 663000ull,
493 664000ull, 665000ull, 666000ull, 667000ull,
494 668000ull, 669000ull, 686000ull, 687000ull,
495 866000ull, 867000ull, 888000ull, 889000ull,
496 670000ull, 671000ull, 672000ull, 673000ull,
497 674000ull, 675000ull, 676000ull, 677000ull,
498 678000ull, 679000ull, 696000ull, 697000ull,
499 876000ull, 877000ull, 898000ull, 899000ull,
500 700000ull, 701000ull, 702000ull, 703000ull,
501 704000ull, 705000ull, 706000ull, 707000ull,
502 708000ull, 709000ull, 780000ull, 781000ull,
503 906000ull, 907000ull, 986000ull, 987000ull,
504 710000ull, 711000ull, 712000ull, 713000ull,
505 714000ull, 715000ull, 716000ull, 717000ull,
506 718000ull, 719000ull, 790000ull, 791000ull,
507 916000ull, 917000ull, 996000ull, 997000ull,
508 720000ull, 721000ull, 722000ull, 723000ull,
509 724000ull, 725000ull, 726000ull, 727000ull,
510 728000ull, 729000ull, 782000ull, 783000ull,
511 926000ull, 927000ull, 968000ull, 969000ull,
512 730000ull, 731000ull, 732000ull, 733000ull,
513 734000ull, 735000ull, 736000ull, 737000ull,
514 738000ull, 739000ull, 792000ull, 793000ull,
515 936000ull, 937000ull, 978000ull, 979000ull,
516 740000ull, 741000ull, 742000ull, 743000ull,
517 744000ull, 745000ull, 746000ull, 747000ull,
518 748000ull, 749000ull, 784000ull, 785000ull,
519 946000ull, 947000ull, 788000ull, 789000ull,
520 750000ull, 751000ull, 752000ull, 753000ull,
521 754000ull, 755000ull, 756000ull, 757000ull,
522 758000ull, 759000ull, 794000ull, 795000ull,
523 956000ull, 957000ull, 798000ull, 799000ull,
524 760000ull, 761000ull, 762000ull, 763000ull,
525 764000ull, 765000ull, 766000ull, 767000ull,
526 768000ull, 769000ull, 786000ull, 787000ull,
527 966000ull, 967000ull, 988000ull, 989000ull,
528 770000ull, 771000ull, 772000ull, 773000ull,
529 774000ull, 775000ull, 776000ull, 777000ull,
530 778000ull, 779000ull, 796000ull, 797000ull,
531 976000ull, 977000ull, 998000ull, 999000ull
534 static const UINT64 d2b3[] = {
1623 static const UINT64 d2b4[] = {
2713 static const UINT64 d2b5[] = {