OSDN Git Service

libgcc/
[pf3gnuchains/gcc-fork.git] / libgcc / config / libbid / bid128_2_str_tables.c
1 /* Copyright (C) 2007  Free Software Foundation, Inc.
2
3 This file is part of GCC.
4
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 2, or (at your option) any later
8 version.
9
10 In addition to the permissions in the GNU General Public License, the
11 Free Software Foundation gives you unlimited permission to link the
12 compiled version of this file into combinations with other programs,
13 and to distribute those combinations without any restriction coming
14 from the use of this file.  (The General Public License restrictions
15 do apply in other respects; for example, they cover modification of
16 the file, and distribution when not linked into a combine
17 executable.)
18
19 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
20 WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with GCC; see the file COPYING.  If not, write to the Free
26 Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
27 02110-1301, USA.  */
28
29 #include "bid_internal.h"
30
31 UINT64 Twoto60_m_10to18 = 152921504606846976LL;
32 UINT64 Twoto60 = 0x1000000000000000LL;
33 UINT64 Inv_Tento9 = 2305843009LL;       /* floor(2^61/10^9) */
34 UINT32 Twoto30_m_10to9 = 73741824;
35 UINT32 Tento9 = 1000000000;
36 UINT32 Tento6 = 1000000;
37 UINT32 Tento3 = 1000;
38
39 const char midi_tbl[1000][3] = {
40   "000", "001", "002", "003", "004", "005", "006", "007", "008", "009",
41   "010", "011", "012", "013", "014", "015", "016", "017", "018", "019",
42   "020", "021", "022", "023", "024", "025", "026", "027", "028", "029",
43   "030", "031", "032", "033", "034", "035", "036", "037", "038", "039",
44   "040", "041", "042", "043", "044", "045", "046", "047", "048", "049",
45   "050", "051", "052", "053", "054", "055", "056", "057", "058", "059",
46   "060", "061", "062", "063", "064", "065", "066", "067", "068", "069",
47   "070", "071", "072", "073", "074", "075", "076", "077", "078", "079",
48   "080", "081", "082", "083", "084", "085", "086", "087", "088", "089",
49   "090", "091", "092", "093", "094", "095", "096", "097", "098", "099",
50   "100", "101", "102", "103", "104", "105", "106", "107", "108", "109",
51   "110", "111", "112", "113", "114", "115", "116", "117", "118", "119",
52   "120", "121", "122", "123", "124", "125", "126", "127", "128", "129",
53   "130", "131", "132", "133", "134", "135", "136", "137", "138", "139",
54   "140", "141", "142", "143", "144", "145", "146", "147", "148", "149",
55   "150", "151", "152", "153", "154", "155", "156", "157", "158", "159",
56   "160", "161", "162", "163", "164", "165", "166", "167", "168", "169",
57   "170", "171", "172", "173", "174", "175", "176", "177", "178", "179",
58   "180", "181", "182", "183", "184", "185", "186", "187", "188", "189",
59   "190", "191", "192", "193", "194", "195", "196", "197", "198", "199",
60   "200", "201", "202", "203", "204", "205", "206", "207", "208", "209",
61   "210", "211", "212", "213", "214", "215", "216", "217", "218", "219",
62   "220", "221", "222", "223", "224", "225", "226", "227", "228", "229",
63   "230", "231", "232", "233", "234", "235", "236", "237", "238", "239",
64   "240", "241", "242", "243", "244", "245", "246", "247", "248", "249",
65   "250", "251", "252", "253", "254", "255", "256", "257", "258", "259",
66   "260", "261", "262", "263", "264", "265", "266", "267", "268", "269",
67   "270", "271", "272", "273", "274", "275", "276", "277", "278", "279",
68   "280", "281", "282", "283", "284", "285", "286", "287", "288", "289",
69   "290", "291", "292", "293", "294", "295", "296", "297", "298", "299",
70   "300", "301", "302", "303", "304", "305", "306", "307", "308", "309",
71   "310", "311", "312", "313", "314", "315", "316", "317", "318", "319",
72   "320", "321", "322", "323", "324", "325", "326", "327", "328", "329",
73   "330", "331", "332", "333", "334", "335", "336", "337", "338", "339",
74   "340", "341", "342", "343", "344", "345", "346", "347", "348", "349",
75   "350", "351", "352", "353", "354", "355", "356", "357", "358", "359",
76   "360", "361", "362", "363", "364", "365", "366", "367", "368", "369",
77   "370", "371", "372", "373", "374", "375", "376", "377", "378", "379",
78   "380", "381", "382", "383", "384", "385", "386", "387", "388", "389",
79   "390", "391", "392", "393", "394", "395", "396", "397", "398", "399",
80   "400", "401", "402", "403", "404", "405", "406", "407", "408", "409",
81   "410", "411", "412", "413", "414", "415", "416", "417", "418", "419",
82   "420", "421", "422", "423", "424", "425", "426", "427", "428", "429",
83   "430", "431", "432", "433", "434", "435", "436", "437", "438", "439",
84   "440", "441", "442", "443", "444", "445", "446", "447", "448", "449",
85   "450", "451", "452", "453", "454", "455", "456", "457", "458", "459",
86   "460", "461", "462", "463", "464", "465", "466", "467", "468", "469",
87   "470", "471", "472", "473", "474", "475", "476", "477", "478", "479",
88   "480", "481", "482", "483", "484", "485", "486", "487", "488", "489",
89   "490", "491", "492", "493", "494", "495", "496", "497", "498", "499",
90   "500", "501", "502", "503", "504", "505", "506", "507", "508", "509",
91   "510", "511", "512", "513", "514", "515", "516", "517", "518", "519",
92   "520", "521", "522", "523", "524", "525", "526", "527", "528", "529",
93   "530", "531", "532", "533", "534", "535", "536", "537", "538", "539",
94   "540", "541", "542", "543", "544", "545", "546", "547", "548", "549",
95   "550", "551", "552", "553", "554", "555", "556", "557", "558", "559",
96   "560", "561", "562", "563", "564", "565", "566", "567", "568", "569",
97   "570", "571", "572", "573", "574", "575", "576", "577", "578", "579",
98   "580", "581", "582", "583", "584", "585", "586", "587", "588", "589",
99   "590", "591", "592", "593", "594", "595", "596", "597", "598", "599",
100   "600", "601", "602", "603", "604", "605", "606", "607", "608", "609",
101   "610", "611", "612", "613", "614", "615", "616", "617", "618", "619",
102   "620", "621", "622", "623", "624", "625", "626", "627", "628", "629",
103   "630", "631", "632", "633", "634", "635", "636", "637", "638", "639",
104   "640", "641", "642", "643", "644", "645", "646", "647", "648", "649",
105   "650", "651", "652", "653", "654", "655", "656", "657", "658", "659",
106   "660", "661", "662", "663", "664", "665", "666", "667", "668", "669",
107   "670", "671", "672", "673", "674", "675", "676", "677", "678", "679",
108   "680", "681", "682", "683", "684", "685", "686", "687", "688", "689",
109   "690", "691", "692", "693", "694", "695", "696", "697", "698", "699",
110   "700", "701", "702", "703", "704", "705", "706", "707", "708", "709",
111   "710", "711", "712", "713", "714", "715", "716", "717", "718", "719",
112   "720", "721", "722", "723", "724", "725", "726", "727", "728", "729",
113   "730", "731", "732", "733", "734", "735", "736", "737", "738", "739",
114   "740", "741", "742", "743", "744", "745", "746", "747", "748", "749",
115   "750", "751", "752", "753", "754", "755", "756", "757", "758", "759",
116   "760", "761", "762", "763", "764", "765", "766", "767", "768", "769",
117   "770", "771", "772", "773", "774", "775", "776", "777", "778", "779",
118   "780", "781", "782", "783", "784", "785", "786", "787", "788", "789",
119   "790", "791", "792", "793", "794", "795", "796", "797", "798", "799",
120   "800", "801", "802", "803", "804", "805", "806", "807", "808", "809",
121   "810", "811", "812", "813", "814", "815", "816", "817", "818", "819",
122   "820", "821", "822", "823", "824", "825", "826", "827", "828", "829",
123   "830", "831", "832", "833", "834", "835", "836", "837", "838", "839",
124   "840", "841", "842", "843", "844", "845", "846", "847", "848", "849",
125   "850", "851", "852", "853", "854", "855", "856", "857", "858", "859",
126   "860", "861", "862", "863", "864", "865", "866", "867", "868", "869",
127   "870", "871", "872", "873", "874", "875", "876", "877", "878", "879",
128   "880", "881", "882", "883", "884", "885", "886", "887", "888", "889",
129   "890", "891", "892", "893", "894", "895", "896", "897", "898", "899",
130   "900", "901", "902", "903", "904", "905", "906", "907", "908", "909",
131   "910", "911", "912", "913", "914", "915", "916", "917", "918", "919",
132   "920", "921", "922", "923", "924", "925", "926", "927", "928", "929",
133   "930", "931", "932", "933", "934", "935", "936", "937", "938", "939",
134   "940", "941", "942", "943", "944", "945", "946", "947", "948", "949",
135   "950", "951", "952", "953", "954", "955", "956", "957", "958", "959",
136   "960", "961", "962", "963", "964", "965", "966", "967", "968", "969",
137   "970", "971", "972", "973", "974", "975", "976", "977", "978", "979",
138   "980", "981", "982", "983", "984", "985", "986", "987", "988", "989",
139   "990", "991", "992", "993", "994", "995", "996", "997", "998", "999"
140 };
141
142 const UINT64 mod10_18_tbl[9][128] = {
143   // 2^59 = 576460752303423488, A and B breakdown, where data = A*10^18 + B 
144
145   {
146    0LL, 0LL, 0LL, 576460752303423488LL,
147    //  0*2^59,  1*2^59
148    1LL, 152921504606846976LL, 1LL, 729382256910270464LL,
149    //  2*2^59,  3*2^59
150    2LL, 305843009213693952LL, 2LL, 882303761517117440LL,
151    //  4*2^59,  5*2^59
152    3LL, 458764513820540928LL, 4LL, 35225266123964416LL,
153    //  6*2^59,  7*2^59
154    4LL, 611686018427387904LL, 5LL, 188146770730811392LL,
155    //  8*2^59,  9*2^59
156    5LL, 764607523034234880LL, 6LL, 341068275337658368LL,
157    // 10*2^59, 11*2^59
158    6LL, 917529027641081856LL, 7LL, 493989779944505344LL,
159    // 12*2^59, 13*2^59
160    8LL, 70450532247928832LL, 8LL, 646911284551352320LL,
161    // 14*2^59, 15*2^59
162    9LL, 223372036854775808LL, 9LL, 799832789158199296LL,
163    // 16*2^59, 17*2^59
164    10LL, 376293541461622784LL, 10LL, 952754293765046272LL,
165    // 18*2^59, 19*2^59
166    11LL, 529215046068469760LL, 12LL, 105675798371893248LL,
167    // 20*2^59, 21*2^59
168    12LL, 682136550675316736LL, 13LL, 258597302978740224LL,
169    // 22*2^59, 23*2^59
170    13LL, 835058055282163712LL, 14LL, 411518807585587200LL,
171    // 24*2^59, 25*2^59
172    14LL, 987979559889010688LL, 15LL, 564440312192434176LL,
173    // 26*2^59, 27*2^59
174    16LL, 140901064495857664LL, 16LL, 717361816799281152LL,
175    // 28*2^59, 29*2^59
176    17LL, 293822569102704640LL, 17LL, 870283321406128128LL,
177    // 30*2^59, 31*2^59
178    18LL, 446744073709551616LL, 19LL, 23204826012975104LL,
179    // 32*2^59, 33*2^59
180    19LL, 599665578316398592LL, 20LL, 176126330619822080LL,
181    // 34*2^59, 35*2^59
182    20LL, 752587082923245568LL, 21LL, 329047835226669056LL,
183    // 36*2^59, 37*2^59
184    21LL, 905508587530092544LL, 22LL, 481969339833516032LL,
185    // 38*2^59, 39*2^59
186    23LL, 58430092136939520LL, 23LL, 634890844440363008LL,
187    // 40*2^59, 41*2^59
188    24LL, 211351596743786496LL, 24LL, 787812349047209984LL,
189    // 42*2^59, 43*2^59
190    25LL, 364273101350633472LL, 25LL, 940733853654056960LL,
191    // 44*2^59, 45*2^59
192    26LL, 517194605957480448LL, 27LL, 93655358260903936LL,
193    // 46*2^59, 47*2^59
194    27LL, 670116110564327424LL, 28LL, 246576862867750912LL,
195    // 48*2^59, 49*2^59
196    28LL, 823037615171174400LL, 29LL, 399498367474597888LL,
197    // 50*2^59, 51*2^59
198    29LL, 975959119778021376LL, 30LL, 552419872081444864LL,
199    // 52*2^59, 53*2^59
200    31LL, 128880624384868352LL, 31LL, 705341376688291840LL,
201    // 54*2^59, 55*2^59
202    32LL, 281802128991715328LL, 32LL, 858262881295138816LL,
203    // 56*2^59, 57*2^59
204    33LL, 434723633598562304LL, 34LL, 11184385901985792LL,
205    // 58*2^59, 59*2^59
206    34LL, 587645138205409280LL, 35LL, 164105890508832768LL,
207    // 60*2^59, 61*2^59
208    35LL, 740566642812256256LL, 36LL, 317027395115679744LL,
209    // 62*2^59, 63*2^59
210    },
211
212   {
213    // 2^65 = 36*10^18 + 893488147419103232
214    0LL, 0LL, 36LL, 893488147419103232LL,
215    //  0*2^65,  1*2^65
216    73LL, 786976294838206464LL, 110LL, 680464442257309696LL,
217    //  2*2^65,  3*2^65
218    147LL, 573952589676412928LL, 184LL, 467440737095516160LL,
219    //  4*2^65,  5*2^65
220    221LL, 360928884514619392LL, 258LL, 254417031933722624LL,
221    //  6*2^65,  7*2^65
222    295LL, 147905179352825856LL, 332LL, 41393326771929088LL,
223    //  8*2^65,  9*2^65
224    368LL, 934881474191032320LL, 405LL, 828369621610135552LL,
225    //  0*2^65,  1*2^65
226    442LL, 721857769029238784LL, 479LL, 615345916448342016LL,
227    //  2*2^65,  3*2^65
228    516LL, 508834063867445248LL, 553LL, 402322211286548480LL,
229    //  4*2^65,  5*2^65
230    590LL, 295810358705651712LL, 627LL, 189298506124754944LL,
231    //  6*2^65,  7*2^65
232    664LL, 82786653543858176LL, 700LL, 976274800962961408LL,
233    //  8*2^65,  9*2^65
234    737LL, 869762948382064640LL, 774LL, 763251095801167872LL,
235    //  0*2^65,  1*2^65
236    811LL, 656739243220271104LL, 848LL, 550227390639374336LL,
237    //  2*2^65,  3*2^65
238    885LL, 443715538058477568LL, 922LL, 337203685477580800LL,
239    //  4*2^65,  5*2^65
240    959LL, 230691832896684032LL, 996LL, 124179980315787264LL,
241    //  6*2^65,  7*2^65
242    1033LL, 17668127734890496LL, 1069LL, 911156275153993728LL,
243    //  8*2^65,  9*2^65
244    1106LL, 804644422573096960LL, 1143LL, 698132569992200192LL,
245    //  0*2^65,  1*2^65
246    1180LL, 591620717411303424LL, 1217LL, 485108864830406656LL,
247    //  2*2^65,  3*2^65
248    1254LL, 378597012249509888LL, 1291LL, 272085159668613120LL,
249    //  4*2^65,  5*2^65
250    1328LL, 165573307087716352LL, 1365LL, 59061454506819584LL,
251    //  6*2^65,  7*2^65
252    1401LL, 952549601925922816LL, 1438LL, 846037749345026048LL,
253    //  8*2^65,  9*2^65
254    1475LL, 739525896764129280LL, 1512LL, 633014044183232512LL,
255    //  0*2^65,  1*2^65
256    1549LL, 526502191602335744LL, 1586LL, 419990339021438976LL,
257    //  2*2^65,  3*2^65
258    1623LL, 313478486440542208LL, 1660LL, 206966633859645440LL,
259    //  4*2^65,  5*2^65
260    1697LL, 100454781278748672LL, 1733LL, 993942928697851904LL,
261    //  6*2^65,  7*2^65
262    1770LL, 887431076116955136LL, 1807LL, 780919223536058368LL,
263    //  8*2^65,  9*2^65
264    1844LL, 674407370955161600LL, 1881LL, 567895518374264832LL,
265    //  0*2^65,  1*2^65
266    1918LL, 461383665793368064LL, 1955LL, 354871813212471296LL,
267    //  2*2^65,  3*2^65
268    1992LL, 248359960631574528LL, 2029LL, 141848108050677760LL,
269    //  4*2^65,  5*2^65
270    2066LL, 35336255469780992LL, 2102LL, 928824402888884224LL,
271    //  6*2^65,  7*2^65
272    2139LL, 822312550307987456LL, 2176LL, 715800697727090688LL,
273    //  8*2^65,  9*2^65
274    2213LL, 609288845146193920LL, 2250LL, 502776992565297152LL,
275    //  0*2^65,  1*2^65
276    2287LL, 396265139984400384LL, 2324LL, 289753287403503616LL,
277    //  2*2^65,  3*2^65
278    },
279
280   {
281    0LL, 0LL, 2361LL, 183241434822606848LL,
282    4722LL, 366482869645213696LL, 7083LL, 549724304467820544LL,
283    9444LL, 732965739290427392LL, 11805LL, 916207174113034240LL,
284    14167LL, 99448608935641088LL, 16528LL, 282690043758247936LL,
285    18889LL, 465931478580854784LL, 21250LL, 649172913403461632LL,
286    23611LL, 832414348226068480LL, 25973LL, 15655783048675328LL,
287    28334LL, 198897217871282176LL, 30695LL, 382138652693889024LL,
288    33056LL, 565380087516495872LL, 35417LL, 748621522339102720LL,
289    37778LL, 931862957161709568LL, 40140LL, 115104391984316416LL,
290    42501LL, 298345826806923264LL, 44862LL, 481587261629530112LL,
291    47223LL, 664828696452136960LL, 49584LL, 848070131274743808LL,
292    51946LL, 31311566097350656LL, 54307LL, 214553000919957504LL,
293    56668LL, 397794435742564352LL, 59029LL, 581035870565171200LL,
294    61390LL, 764277305387778048LL, 63751LL, 947518740210384896LL,
295    66113LL, 130760175032991744LL, 68474LL, 314001609855598592LL,
296    70835LL, 497243044678205440LL, 73196LL, 680484479500812288LL,
297    75557LL, 863725914323419136LL, 77919LL, 46967349146025984LL,
298    80280LL, 230208783968632832LL, 82641LL, 413450218791239680LL,
299    85002LL, 596691653613846528LL, 87363LL, 779933088436453376LL,
300    89724LL, 963174523259060224LL, 92086LL, 146415958081667072LL,
301    94447LL, 329657392904273920LL, 96808LL, 512898827726880768LL,
302    99169LL, 696140262549487616LL, 101530LL, 879381697372094464LL,
303    103892LL, 62623132194701312LL, 106253LL, 245864567017308160LL,
304    108614LL, 429106001839915008LL, 110975LL, 612347436662521856LL,
305    113336LL, 795588871485128704LL, 115697LL, 978830306307735552LL,
306    118059LL, 162071741130342400LL, 120420LL, 345313175952949248LL,
307    122781LL, 528554610775556096LL, 125142LL, 711796045598162944LL,
308    127503LL, 895037480420769792LL, 129865LL, 78278915243376640LL,
309    132226LL, 261520350065983488LL, 134587LL, 444761784888590336LL,
310    136948LL, 628003219711197184LL, 139309LL, 811244654533804032LL,
311    141670LL, 994486089356410880LL, 144032LL, 177727524179017728LL,
312    146393LL, 360968959001624576LL, 148754LL, 544210393824231424LL,
313    },
314
315   {
316    0LL, 0LL, 151115LL, 727451828646838272LL,
317    302231LL, 454903657293676544LL, 453347LL, 182355485940514816LL,
318    604462LL, 909807314587353088LL, 755578LL, 637259143234191360LL,
319    906694LL, 364710971881029632LL, 1057810LL, 92162800527867904LL,
320    1208925LL, 819614629174706176LL, 1360041LL, 547066457821544448LL,
321    1511157LL, 274518286468382720LL, 1662273LL, 1970115115220992LL,
322    1813388LL, 729421943762059264LL, 1964504LL, 456873772408897536LL,
323    2115620LL, 184325601055735808LL, 2266735LL, 911777429702574080LL,
324    2417851LL, 639229258349412352LL, 2568967LL, 366681086996250624LL,
325    2720083LL, 94132915643088896LL, 2871198LL, 821584744289927168LL,
326    3022314LL, 549036572936765440LL, 3173430LL, 276488401583603712LL,
327    3324546LL, 3940230230441984LL, 3475661LL, 731392058877280256LL,
328    3626777LL, 458843887524118528LL, 3777893LL, 186295716170956800LL,
329    3929008LL, 913747544817795072LL, 4080124LL, 641199373464633344LL,
330    4231240LL, 368651202111471616LL, 4382356LL, 96103030758309888LL,
331    4533471LL, 823554859405148160LL, 4684587LL, 551006688051986432LL,
332    4835703LL, 278458516698824704LL, 4986819LL, 5910345345662976LL,
333    5137934LL, 733362173992501248LL, 5289050LL, 460814002639339520LL,
334    5440166LL, 188265831286177792LL, 5591281LL, 915717659933016064LL,
335    5742397LL, 643169488579854336LL, 5893513LL, 370621317226692608LL,
336    6044629LL, 98073145873530880LL, 6195744LL, 825524974520369152LL,
337    6346860LL, 552976803167207424LL, 6497976LL, 280428631814045696LL,
338    6649092LL, 7880460460883968LL, 6800207LL, 735332289107722240LL,
339    6951323LL, 462784117754560512LL, 7102439LL, 190235946401398784LL,
340    7253554LL, 917687775048237056LL, 7404670LL, 645139603695075328LL,
341    7555786LL, 372591432341913600LL, 7706902LL, 100043260988751872LL,
342    7858017LL, 827495089635590144LL, 8009133LL, 554946918282428416LL,
343    8160249LL, 282398746929266688LL, 8311365LL, 9850575576104960LL,
344    8462480LL, 737302404222943232LL, 8613596LL, 464754232869781504LL,
345    8764712LL, 192206061516619776LL, 8915827LL, 919657890163458048LL,
346    9066943LL, 647109718810296320LL, 9218059LL, 374561547457134592LL,
347    9369175LL, 102013376103972864LL, 9520290LL, 829465204750811136LL,
348    },
349
350   {
351    0LL, 0LL, 9671406LL, 556917033397649408LL,
352    19342813LL, 113834066795298816LL, 29014219LL, 670751100192948224LL,
353    38685626LL, 227668133590597632LL, 48357032LL, 784585166988247040LL,
354    58028439LL, 341502200385896448LL, 67699845LL, 898419233783545856LL,
355    77371252LL, 455336267181195264LL, 87042659LL, 12253300578844672LL,
356    96714065LL, 569170333976494080LL, 106385472LL, 126087367374143488LL,
357    116056878LL, 683004400771792896LL, 125728285LL, 239921434169442304LL,
358    135399691LL, 796838467567091712LL, 145071098LL, 353755500964741120LL,
359    154742504LL, 910672534362390528LL, 164413911LL, 467589567760039936LL,
360    174085318LL, 24506601157689344LL, 183756724LL, 581423634555338752LL,
361    193428131LL, 138340667952988160LL, 203099537LL, 695257701350637568LL,
362    212770944LL, 252174734748286976LL, 222442350LL, 809091768145936384LL,
363    232113757LL, 366008801543585792LL, 241785163LL, 922925834941235200LL,
364    251456570LL, 479842868338884608LL, 261127977LL, 36759901736534016LL,
365    270799383LL, 593676935134183424LL, 280470790LL, 150593968531832832LL,
366    290142196LL, 707511001929482240LL, 299813603LL, 264428035327131648LL,
367    309485009LL, 821345068724781056LL, 319156416LL, 378262102122430464LL,
368    328827822LL, 935179135520079872LL, 338499229LL, 492096168917729280LL,
369    348170636LL, 49013202315378688LL, 357842042LL, 605930235713028096LL,
370    367513449LL, 162847269110677504LL, 377184855LL, 719764302508326912LL,
371    386856262LL, 276681335905976320LL, 396527668LL, 833598369303625728LL,
372    406199075LL, 390515402701275136LL, 415870481LL, 947432436098924544LL,
373    425541888LL, 504349469496573952LL, 435213295LL, 61266502894223360LL,
374    444884701LL, 618183536291872768LL, 454556108LL, 175100569689522176LL,
375    464227514LL, 732017603087171584LL, 473898921LL, 288934636484820992LL,
376    483570327LL, 845851669882470400LL, 493241734LL, 402768703280119808LL,
377    502913140LL, 959685736677769216LL, 512584547LL, 516602770075418624LL,
378    522255954LL, 73519803473068032LL, 531927360LL, 630436836870717440LL,
379    541598767LL, 187353870268366848LL, 551270173LL, 744270903666016256LL,
380    560941580LL, 301187937063665664LL, 570612986LL, 858104970461315072LL,
381    580284393LL, 415022003858964480LL, 589955799LL, 971939037256613888LL,
382    599627206LL, 528856070654263296LL, 609298613LL, 85773104051912704LL,
383    },
384
385   {
386    0LL, 0LL, 618970019LL, 642690137449562112LL,
387    1237940039LL, 285380274899124224LL, 1856910058LL,
388    928070412348686336LL,
389    2475880078LL, 570760549798248448LL, 3094850098LL,
390    213450687247810560LL,
391    3713820117LL, 856140824697372672LL, 4332790137LL,
392    498830962146934784LL,
393    4951760157LL, 141521099596496896LL, 5570730176LL,
394    784211237046059008LL,
395    6189700196LL, 426901374495621120LL, 6808670216LL,
396    69591511945183232LL,
397    7427640235LL, 712281649394745344LL, 8046610255LL,
398    354971786844307456LL,
399    8665580274LL, 997661924293869568LL, 9284550294LL,
400    640352061743431680LL,
401    9903520314LL, 283042199192993792LL, 10522490333LL,
402    925732336642555904LL,
403    11141460353LL, 568422474092118016LL, 11760430373LL,
404    211112611541680128LL,
405    12379400392LL, 853802748991242240LL, 12998370412LL,
406    496492886440804352LL,
407    13617340432LL, 139183023890366464LL, 14236310451LL,
408    781873161339928576LL,
409    14855280471LL, 424563298789490688LL, 15474250491LL,
410    67253436239052800LL,
411    16093220510LL, 709943573688614912LL, 16712190530LL,
412    352633711138177024LL,
413    17331160549LL, 995323848587739136LL, 17950130569LL,
414    638013986037301248LL,
415    18569100589LL, 280704123486863360LL, 19188070608LL,
416    923394260936425472LL,
417    19807040628LL, 566084398385987584LL, 20426010648LL,
418    208774535835549696LL,
419    21044980667LL, 851464673285111808LL, 21663950687LL,
420    494154810734673920LL,
421    22282920707LL, 136844948184236032LL, 22901890726LL,
422    779535085633798144LL,
423    23520860746LL, 422225223083360256LL, 24139830766LL,
424    64915360532922368LL,
425    24758800785LL, 707605497982484480LL, 25377770805LL,
426    350295635432046592LL,
427    25996740824LL, 992985772881608704LL, 26615710844LL,
428    635675910331170816LL,
429    27234680864LL, 278366047780732928LL, 27853650883LL,
430    921056185230295040LL,
431    28472620903LL, 563746322679857152LL, 29091590923LL,
432    206436460129419264LL,
433    29710560942LL, 849126597578981376LL, 30329530962LL,
434    491816735028543488LL,
435    30948500982LL, 134506872478105600LL, 31567471001LL,
436    777197009927667712LL,
437    32186441021LL, 419887147377229824LL, 32805411041LL,
438    62577284826791936LL,
439    33424381060LL, 705267422276354048LL, 34043351080LL,
440    347957559725916160LL,
441    34662321099LL, 990647697175478272LL, 35281291119LL,
442    633337834625040384LL,
443    35900261139LL, 276027972074602496LL, 36519231158LL,
444    918718109524164608LL,
445    37138201178LL, 561408246973726720LL, 37757171198LL,
446    204098384423288832LL,
447    38376141217LL, 846788521872850944LL, 38995111237LL,
448    489478659322413056LL,
449    },
450
451   {
452    0LL, 0LL, 39614081257LL, 132168796771975168LL,
453    79228162514LL, 264337593543950336LL, 118842243771LL,
454    396506390315925504LL,
455    158456325028LL, 528675187087900672LL, 198070406285LL,
456    660843983859875840LL,
457    237684487542LL, 793012780631851008LL, 277298568799LL,
458    925181577403826176LL,
459    316912650057LL, 57350374175801344LL, 356526731314LL,
460    189519170947776512LL,
461    396140812571LL, 321687967719751680LL, 435754893828LL,
462    453856764491726848LL,
463    475368975085LL, 586025561263702016LL, 514983056342LL,
464    718194358035677184LL,
465    554597137599LL, 850363154807652352LL, 594211218856LL,
466    982531951579627520LL,
467    633825300114LL, 114700748351602688LL, 673439381371LL,
468    246869545123577856LL,
469    713053462628LL, 379038341895553024LL, 752667543885LL,
470    511207138667528192LL,
471    792281625142LL, 643375935439503360LL, 831895706399LL,
472    775544732211478528LL,
473    871509787656LL, 907713528983453696LL, 911123868914LL,
474    39882325755428864LL,
475    950737950171LL, 172051122527404032LL, 990352031428LL,
476    304219919299379200LL,
477    1029966112685LL, 436388716071354368LL, 1069580193942LL,
478    568557512843329536LL,
479    1109194275199LL, 700726309615304704LL, 1148808356456LL,
480    832895106387279872LL,
481    1188422437713LL, 965063903159255040LL, 1228036518971LL,
482    97232699931230208LL,
483    1267650600228LL, 229401496703205376LL, 1307264681485LL,
484    361570293475180544LL,
485    1346878762742LL, 493739090247155712LL, 1386492843999LL,
486    625907887019130880LL,
487    1426106925256LL, 758076683791106048LL, 1465721006513LL,
488    890245480563081216LL,
489    1505335087771LL, 22414277335056384LL, 1544949169028LL,
490    154583074107031552LL,
491    1584563250285LL, 286751870879006720LL, 1624177331542LL,
492    418920667650981888LL,
493    1663791412799LL, 551089464422957056LL, 1703405494056LL,
494    683258261194932224LL,
495    1743019575313LL, 815427057966907392LL, 1782633656570LL,
496    947595854738882560LL,
497    1822247737828LL, 79764651510857728LL, 1861861819085LL,
498    211933448282832896LL,
499    1901475900342LL, 344102245054808064LL, 1941089981599LL,
500    476271041826783232LL,
501    1980704062856LL, 608439838598758400LL, 2020318144113LL,
502    740608635370733568LL,
503    2059932225370LL, 872777432142708736LL, 2099546306628LL,
504    4946228914683904LL,
505    2139160387885LL, 137115025686659072LL, 2178774469142LL,
506    269283822458634240LL,
507    2218388550399LL, 401452619230609408LL, 2258002631656LL,
508    533621416002584576LL,
509    2297616712913LL, 665790212774559744LL, 2337230794170LL,
510    797959009546534912LL,
511    2376844875427LL, 930127806318510080LL, 2416458956685LL,
512    62296603090485248LL,
513    2456073037942LL, 194465399862460416LL, 2495687119199LL,
514    326634196634435584LL,
515    },
516
517   {
518    0LL, 0LL, 2535301200456LL, 458802993406410752LL,
519    5070602400912LL, 917605986812821504LL, 7605903601369LL,
520    376408980219232256LL,
521    10141204801825LL, 835211973625643008LL, 12676506002282LL,
522    294014967032053760LL,
523    15211807202738LL, 752817960438464512LL, 17747108403195LL,
524    211620953844875264LL,
525    20282409603651LL, 670423947251286016LL, 22817710804108LL,
526    129226940657696768LL,
527    25353012004564LL, 588029934064107520LL, 27888313205021LL,
528    46832927470518272LL,
529    30423614405477LL, 505635920876929024LL, 32958915605933LL,
530    964438914283339776LL,
531    35494216806390LL, 423241907689750528LL, 38029518006846LL,
532    882044901096161280LL,
533    40564819207303LL, 340847894502572032LL, 43100120407759LL,
534    799650887908982784LL,
535    45635421608216LL, 258453881315393536LL, 48170722808672LL,
536    717256874721804288LL,
537    50706024009129LL, 176059868128215040LL, 53241325209585LL,
538    634862861534625792LL,
539    55776626410042LL, 93665854941036544LL, 58311927610498LL,
540    552468848347447296LL,
541    60847228810955LL, 11271841753858048LL, 63382530011411LL,
542    470074835160268800LL,
543    65917831211867LL, 928877828566679552LL, 68453132412324LL,
544    387680821973090304LL,
545    70988433612780LL, 846483815379501056LL, 73523734813237LL,
546    305286808785911808LL,
547    76059036013693LL, 764089802192322560LL, 78594337214150LL,
548    222892795598733312LL,
549    81129638414606LL, 681695789005144064LL, 83664939615063LL,
550    140498782411554816LL,
551    86200240815519LL, 599301775817965568LL, 88735542015976LL,
552    58104769224376320LL,
553    91270843216432LL, 516907762630787072LL, 93806144416888LL,
554    975710756037197824LL,
555    96341445617345LL, 434513749443608576LL, 98876746817801LL,
556    893316742850019328LL,
557    101412048018258LL, 352119736256430080LL, 103947349218714LL,
558    810922729662840832LL,
559    106482650419171LL, 269725723069251584LL, 109017951619627LL,
560    728528716475662336LL,
561    111553252820084LL, 187331709882073088LL, 114088554020540LL,
562    646134703288483840LL,
563    116623855220997LL, 104937696694894592LL, 119159156421453LL,
564    563740690101305344LL,
565    121694457621910LL, 22543683507716096LL, 124229758822366LL,
566    481346676914126848LL,
567    126765060022822LL, 940149670320537600LL, 129300361223279LL,
568    398952663726948352LL,
569    131835662423735LL, 857755657133359104LL, 134370963624192LL,
570    316558650539769856LL,
571    136906264824648LL, 775361643946180608LL, 139441566025105LL,
572    234164637352591360LL,
573    141976867225561LL, 692967630759002112LL, 144512168426018LL,
574    151770624165412864LL,
575    147047469626474LL, 610573617571823616LL, 149582770826931LL,
576    69376610978234368LL,
577    152118072027387LL, 528179604384645120LL, 154653373227843LL,
578    986982597791055872LL,
579    157188674428300LL, 445785591197466624LL, 159723975628756LL,
580    904588584603877376LL,
581    },
582
583   {
584    0LL, 0LL, 162259276829213LL, 363391578010288128LL,
585    324518553658426LL, 726783156020576256LL, 486777830487640LL,
586    90174734030864384LL,
587    649037107316853LL, 453566312041152512LL, 811296384146066LL,
588    816957890051440640LL,
589    973555660975280LL, 180349468061728768LL, 1135814937804493LL,
590    543741046072016896LL,
591    1298074214633706LL, 907132624082305024LL, 1460333491462920LL,
592    270524202092593152LL,
593    1622592768292133LL, 633915780102881280LL, 1784852045121346LL,
594    997307358113169408LL,
595    1947111321950560LL, 360698936123457536LL, 2109370598779773LL,
596    724090514133745664LL,
597    2271629875608987LL, 87482092144033792LL, 2433889152438200LL,
598    450873670154321920LL,
599    2596148429267413LL, 814265248164610048LL, 2758407706096627LL,
600    177656826174898176LL,
601    2920666982925840LL, 541048404185186304LL, 3082926259755053LL,
602    904439982195474432LL,
603    3245185536584267LL, 267831560205762560LL, 3407444813413480LL,
604    631223138216050688LL,
605    3569704090242693LL, 994614716226338816LL, 3731963367071907LL,
606    358006294236626944LL,
607    3894222643901120LL, 721397872246915072LL, 4056481920730334LL,
608    84789450257203200LL,
609    4218741197559547LL, 448181028267491328LL, 4381000474388760LL,
610    811572606277779456LL,
611    4543259751217974LL, 174964184288067584LL, 4705519028047187LL,
612    538355762298355712LL,
613    4867778304876400LL, 901747340308643840LL, 5030037581705614LL,
614    265138918318931968LL,
615    5192296858534827LL, 628530496329220096LL, 5354556135364040LL,
616    991922074339508224LL,
617    5516815412193254LL, 355313652349796352LL, 5679074689022467LL,
618    718705230360084480LL,
619    5841333965851681LL, 82096808370372608LL, 6003593242680894LL,
620    445488386380660736LL,
621    6165852519510107LL, 808879964390948864LL, 6328111796339321LL,
622    172271542401236992LL,
623    6490371073168534LL, 535663120411525120LL, 6652630349997747LL,
624    899054698421813248LL,
625    6814889626826961LL, 262446276432101376LL, 6977148903656174LL,
626    625837854442389504LL,
627    7139408180485387LL, 989229432452677632LL, 7301667457314601LL,
628    352621010462965760LL,
629    7463926734143814LL, 716012588473253888LL, 7626186010973028LL,
630    79404166483542016LL,
631    7788445287802241LL, 442795744493830144LL, 7950704564631454LL,
632    806187322504118272LL,
633    8112963841460668LL, 169578900514406400LL, 8275223118289881LL,
634    532970478524694528LL,
635    8437482395119094LL, 896362056534982656LL, 8599741671948308LL,
636    259753634545270784LL,
637    8762000948777521LL, 623145212555558912LL, 8924260225606734LL,
638    986536790565847040LL,
639    9086519502435948LL, 349928368576135168LL, 9248778779265161LL,
640    713319946586423296LL,
641    9411038056094375LL, 76711524596711424LL, 9573297332923588LL,
642    440103102606999552LL,
643    9735556609752801LL, 803494680617287680LL, 9897815886582015LL,
644    166886258627575808LL,
645    10060075163411228LL, 530277836637863936LL, 10222334440240441LL,
646    893669414648152064LL}
647 };