xref: /titanic_50/usr/src/lib/libbc/libc/gen/common/_small_power.c (revision 7c478bd95313f5f23a4c958a745db2134aa03244)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 #pragma ident	"%Z%%M%	%I%	%E% SMI"
23 
24 /*
25  * Copyright (c) 1988 by Sun Microsystems, Inc.
26  */
27 
28 #include "base_conversion.h"
29 
30 unsigned short  _max_tiny_powers_ten = 4;
31 unsigned short  _tiny_powers_ten[] = {1,	/* begin powers of 10 in
32 						 * base 65536 */
33 	 /* 10**1 =  */ 10,	/* * 65536**0 */
34 	 /* 10**2 =  */ 100,	/* * 65536**1 */
35 	 /* 10**3 =  */ 1000,	/* * 65536**1 */
36 0 } ;
37 
38 unsigned short  _start_tiny_powers_ten[] = {
39 	0, 1, 2, 3, 4,
40 0};				/* end _start_tiny_powers_ten */
41 
42 unsigned short  _leading_zeros_tiny_powers_ten[] = {
43 	0, 0, 0, 0,
44 0};				/* end _leading_zeros_tiny_powers_ten */
45 
46 unsigned short  _max_tiny_powers_two = 16;
47 unsigned short  _tiny_powers_two[] = {1,	/* begin powers of 2 in
48 						 * base 10000 */
49 	 /* 2**1 =  */ 2,	/* * 10000**0 */
50 	 /* 2**2 =  */ 4,	/* * 10000**0 */
51 	 /* 2**3 =  */ 8,	/* * 10000**0 */
52 	 /* 2**4 =  */ 16,	/* * 10000**0 */
53 	 /* 2**5 =  */ 32,	/* * 10000**0 */
54 	 /* 2**6 =  */ 64,	/* * 10000**0 */
55 	 /* 2**7 =  */ 128,	/* * 10000**0 */
56 	 /* 2**8 =  */ 256,	/* * 10000**0 */
57 	 /* 2**9 =  */ 512,	/* * 10000**0 */
58 	 /* 2**10 =  */ 1024,	/* * 10000**0 */
59 	 /* 2**11 =  */ 2048,	/* * 10000**0 */
60 	 /* 2**12 =  */ 4096,	/* * 10000**0 */
61 	 /* 2**13 =  */ 8192,	/* * 10000**0 */
62 	 /* 2**14 =  */ 6384, 1,	/* * 10000**1 */
63 	 /* 2**15 =  */ 2768, 3,	/* * 10000**1 */
64 0};
65 
66 unsigned short  _start_tiny_powers_two[] = {
67 	0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18,
68 0};				/* end _start_tiny_powers_two */
69 
70 unsigned short  _max_small_powers_ten = 90;
71 unsigned short  _small_powers_ten[] = {1,	/* begin powers of 10000 in
72 						 * base 65536 */
73 	 /* 10000**1 =  */ 10000,	/* * 65536**0 */
74 	 /* 10000**2 =  */ 57600, 1525,	/* * 65536**1 */
75 	 /* 10000**3 =  */ 4096, 54437, 232,	/* * 65536**2 */
76 	 /* 10000**4 =  65536**1 *  */ 28609, 34546, 35,	/* * 65536**3 */
77 	 /* 10000**5 =  65536**1 *  */ 25360, 24109, 27591, 5,	/* * 65536**4 */
78 	 /* 10000**6 =  65536**1 *  */ 41216, 52461, 7118, 54210,	/* * 65536**4 */
79 	 /* 10000**7 =  65536**1 *  */ 4096, 609, 15909, 52830, 8271,	/* * 65536**5 */
80 	 /* 10000**8 =  65536**2 *  */ 61313, 34220, 16731, 11629, 1262,	/* * 65536**6 */
81 	 /* 10000**9 =  65536**2 *  */ 40720, 45899, 1813, 31689, 38862, 192,	/* * 65536**7 */
82 	 /* 10000**10 =  65536**2 *  */ 24832, 47605, 49067, 23716, 61891, 25385, 29,	/* * 65536**8 */
83 	 /* 10000**11 =  65536**2 *  */ 4096, 285, 9232, 58239, 57170, 38515, 31729, 4,
84 	/* * 65536**9 */
85 	 /* 10000**12 =  65536**3 *  */ 32577, 45355, 38512, 38358, 3651, 36101, 44841,	/* * 65536**9 */
86 	 /* 10000**13 =  65536**3 *  */ 56080, 45850, 37384, 3668, 12301, 38269, 18196, 6842,
87 	/* * 65536**10 */
88 	 /* 10000**14 =  65536**3 *  */ 8448, 18701, 29652, 51080, 65023, 27172, 37903, 3192,
89 	1044,			/* * 65536**11 */
90 	 /* 10000**15 =  65536**3 *  */ 4096, 37081, 37989, 16940, 55138, 17665, 39458, 9751,
91 	20263, 159,		/* * 65536**12 */
92 	 /* 10000**16 =  65536**4 *  */ 7937, 49002, 60772, 28216, 38893, 55975, 63988, 59711,
93 	20227, 24,		/* * 65536**13 */
94 	 /* 10000**17 =  65536**4 *  */ 5904, 8539, 12149, 36793, 43681, 12958, 60573, 21267,
95 	35015, 46478, 3,	/* * 65536**14 */
96 	 /* 10000**18 =  65536**4 *  */ 57600, 63028, 53094, 12749, 18174, 21993, 48265, 14922,
97 	59933, 4030, 37092,	/* * 65536**14 */
98 	 /* 10000**19 =  65536**4 *  */ 4096, 29077, 42481, 30581, 10617, 59493, 46251, 1892,
99 	5557, 4505, 52391, 5659,/* * 65536**15 */
100 	 /* 10000**20 =  65536**5 *  */ 52929, 10084, 25506, 6346, 61348, 31525, 52689, 61296,
101 	27615, 15903, 40426, 863,	/* * 65536**16 */
102 	 /* 10000**21 =  65536**5 *  */ 21264, 53708, 60962, 25043, 64008, 31200, 50906, 9831,
103 	56185, 43877, 36378, 50952, 131,	/* * 65536**17 */
104 	 /* 10000**22 =  65536**5 *  */ 41216, 15724, 12323, 26246, 59245, 58406, 46648, 13767,
105 	11372, 15053, 61895, 48686, 7054, 20,	/* * 65536**18 */
106 	 /* 10000**23 =  65536**5 *  */ 4096, 25425, 24719, 55736, 8564, 12208, 3664, 51518,
107 	17140, 61079, 30312, 2500, 30693, 4468, 3,	/* * 65536**19 */
108 	 /* 10000**24 =  65536**6 *  */ 36481, 57623, 45627, 58488, 53274, 7238, 2063, 31221,
109 	62631, 25319, 35409, 25293, 54667, 30681,	/* * 65536**19 */
110 	 /* 10000**25 =  65536**6 *  */ 36624, 43054, 17160, 43698, 6780, 36385, 52800, 62346,
111 	52747, 33988, 2855, 31979, 38083, 44325, 4681,	/* * 65536**20 */
112 	 /* 10000**26 =  65536**6 *  */ 24832, 39604, 33321, 54106, 42443, 60698, 47535, 24088,
113 	45785, 18352, 47026, 40291, 5183, 35843, 24059, 714,
114 	/* * 65536**21 */
115 	 /* 10000**27 =  65536**6 *  */ 4096, 9741, 31019, 65404, 27119, 57580, 26653, 42453,
116 	19179, 26186, 42000, 1847, 62708, 14406, 12813, 247,
117 	109,			/* * 65536**22 */
118 	 /* 10000**28 =  65536**7 *  */ 24129, 9598, 60989, 12011, 4842, 3874, 57395, 38141,
119 	46606, 49307, 60792, 31833, 21440, 9318, 47123, 41461,
120 	16,			/* * 65536**23 */
121 	 /* 10000**29 =  65536**7 *  */ 51984, 38977, 13448, 57354, 56264, 8962, 51839, 64773,
122 	39323, 49783, 15587, 30924, 36601, 56615, 27581, 36454,
123 	35254, 2,		/* * 65536**24 */
124 	 /* 10000**30 =  65536**7 *  */ 8448, 35340, 6075, 36516, 22191, 40873, 1607, 45622,
125 	23883, 24544, 32988, 43530, 61694, 55616, 43150, 32976,
126 	27418, 25379,		/* * 65536**24 */
127 	 /* 10000**31 =  65536**7 *  */ 4096, 31177, 3520, 59871, 10675, 50890, 19916, 24149,
128 	23777, 11324, 41057, 14921, 56274, 30917, 19462, 54968,
129 	47943, 38791, 3872,	/* * 65536**25 */
130 	 /* 10000**32 =  65536**8 *  */ 15873, 11925, 39177, 991, 14589, 3861, 58415, 9076,
131 	62956, 54223, 56328, 50180, 45274, 48333, 32537, 42547,
132 	9731, 59679, 590,	/* * 65536**26 */
133 	 /* 10000**33 =  65536**8 *  */ 1808, 42438, 63147, 20041, 7015, 11522, 28221, 1553,
134 	22569, 60278, 6353, 64979, 24968, 8908, 56671, 15252,
135 	61068, 20668, 10866, 90,/* * 65536**27 */
136 	 /* 10000**34 =  65536**8 *  */ 57600, 34675, 37115, 10547, 29538, 8782, 13742, 2274,
137 	49789, 48851, 34813, 1529, 63291, 20385, 21567, 26375,
138 	17879, 54310, 4465, 49690, 13,	/* * 65536**28 */
139 	 /* 10000**35 =  65536**8 *  */ 4096, 7813, 24923, 28239, 10857, 6267, 57884, 1104,
140 	13355, 12253, 10222, 25424, 29081, 42697, 59670, 36426,
141 	11816, 5896, 28271, 6729, 6510, 2,	/* * 65536**29 */
142 	 /* 10000**36 =  65536**9 *  */ 11713, 63320, 64714, 46692, 19240, 27004, 38784, 53336,
143 	45253, 51245, 27415, 30647, 7397, 1235, 20017, 4150,
144 	44939, 54131, 54377, 23778, 20993,	/* * 65536**29 */
145 	 /* 10000**37 =  65536**9 *  */ 17168, 58491, 47197, 51410, 58964, 34615, 2072, 33950,
146 	12058, 30921, 20731, 27847, 50068, 30360, 23244, 18766,
147 	10281, 55033, 26067, 23689, 21820, 3203,	/* * 65536**30 */
148 	 /* 10000**38 =  65536**9 *  */ 41216, 3819, 54189, 42817, 20452, 63381, 15905, 23836,
149 	64476, 12991, 24350, 10699, 54745, 44887, 53976, 33978,
150 	52415, 25776, 41725, 46873, 34270, 51761, 488,	/* * 65536**31 */
151 	 /* 10000**39 =  65536**9 *  */ 4096, 54337, 38934, 31580, 54213, 14464, 3799, 7995,
152 	20469, 27486, 35742, 38963, 29424, 22289, 12353, 49612,
153 	63792, 14909, 51757, 22894, 19408, 11901, 38234, 74,
154 	/* * 65536**32 */
155 	 /* 10000**40 =  65536**10 *  */ 11649, 64451, 53492, 21026, 10320, 46863, 62195, 22291,
156 	5139, 56386, 23933, 54841, 6553, 63577, 14364, 146,
157 	5334, 34483, 30649, 31397, 65121, 4791, 24938, 11,
158 	/* * 65536**33 */
159 	 /* 10000**41 =  65536**10 *  */ 32528, 30753, 25002, 28674, 49544, 49174, 20510, 31554,
160 	13177, 54576, 1131, 8404, 2368, 6264, 60325, 20399,
161 	59254, 45917, 48925, 57236, 49094, 13120, 16251, 48269,
162 	1,			/* * 65536**34 */
163 	 /* 10000**42 =  65536**10 *  */ 24832, 40051, 4852, 23815, 57751, 30951, 45359, 52825,
164 	47454, 43738, 46135, 23020, 22786, 53481, 57611, 51172,
165 	32136, 33825, 30766, 41577, 18557, 4419, 48258, 19839,
166 	17365,			/* * 65536**34 */
167 	 /* 10000**43 =  65536**10 *  */ 4096, 23293, 29471, 58452, 10401, 57820, 20066, 36761,
168 	1884, 65513, 48769, 44607, 60376, 39716, 56720, 23702,
169 	44800, 23607, 39177, 14310, 43928, 21567, 39106, 19891,
170 	48163, 2649,		/* * 65536**35 */
171 	 /* 10000**44 =  65536**11 *  */ 15681, 63698, 8912, 13287, 42995, 63126, 21637, 36777,
172 	32431, 46620, 39425, 49174, 21052, 57516, 50478, 65056,
173 	16163, 64930, 40889, 59911, 63262, 9978, 14207, 8971,
174 	20805, 404,		/* * 65536**36 */
175 	 /* 10000**45 =  65536**11 *  */ 47888, 38008, 759, 29888, 35867, 23808, 45296, 50805,
176 	43483, 47380, 58073, 29407, 25871, 19276, 30504, 57366,
177 	28150, 37314, 20803, 51663, 10133, 43861, 55010, 58919,
178 	40104, 45478, 61,	/* * 65536**37 */
179 	 /* 10000**46 =  65536**11 *  */ 8448, 44043, 59159, 35955, 61568, 58720, 44336, 21839,
180 	6392, 46891, 22733, 18829, 43895, 22571, 38397, 28046,
181 	31633, 47847, 24429, 12886, 19227, 44634, 63044, 29753,
182 	34206, 31815, 27115, 9,	/* * 65536**38 */
183 	 /* 10000**47 =  65536**11 *  */ 4096, 29369, 3248, 28531, 40302, 6834, 17920, 30813,
184 	25732, 895, 58307, 8540, 58281, 10713, 63556, 37314,
185 	57543, 62026, 44628, 19951, 54878, 42773, 56026, 6179,
186 	32156, 43475, 32422, 28601, 1,	/* * 65536**39 */
187 	 /* 10000**48 =  65536**12 *  */ 23809, 44161, 32287, 43489, 57637, 25618, 47998, 30365,
188 	41030, 61880, 15488, 65191, 53068, 59042, 53249, 29613,
189 	36076, 54840, 25225, 50116, 50437, 64798, 63636, 41326,
190 	54618, 20041, 15843, 14364,	/* * 65536**39 */
191 	 /* 10000**49 =  65536**12 *  */ 63248, 32064, 46402, 63566, 53051, 8570, 63781, 29035,
192 	49273, 15348, 27874, 25771, 44955, 14273, 19009, 46477,
193 	54374, 256, 10304, 10057, 12591, 33264, 15327, 65230,
194 	9281, 9246, 32546, 53041, 2191,	/* * 65536**40 */
195 	 /* 10000**50 =  65536**12 *  */ 57600, 47538, 30012, 33416, 5779, 52543, 14955, 35252,
196 	34782, 2206, 17734, 26701, 42508, 64987, 37777, 57124,
197 	60435, 12392, 17447, 39348, 16878, 46721, 51907, 22530,
198 	20977, 55656, 9634, 32118, 29069, 334,	/* * 65536**41 */
199 	 /* 10000**51 =  65536**12 *  */ 4096, 56181, 37909, 62051, 57882, 28769, 4865, 4138,
200 	25827, 45211, 65456, 19041, 17578, 21510, 30412, 33988,
201 	51260, 645, 15059, 4518, 30804, 6431, 32009, 60688,
202 	58237, 31488, 10572, 55070, 42740, 2099, 51,	/* * 65536**42 */
203 	 /* 10000**52 =  65536**13 *  */ 36033, 38348, 20936, 15516, 61328, 26677, 27526, 58791,
204 	46612, 58866, 37907, 15353, 13530, 36242, 14944, 48130,
205 	35293, 53906, 27993, 21489, 23884, 13157, 21524, 26364,
206 	53942, 15236, 2605, 48147, 25001, 51568, 7,	/* * 65536**43 */
207 	 /* 10000**53 =  65536**13 *  */ 13072, 34362, 43867, 39482, 62015, 47837, 12870, 56280,
208 	36938, 22760, 18758, 50472, 36038, 7984, 23450, 5896,
209 	25984, 31785, 33969, 1727, 30095, 42892, 21783, 57492,
210 	62742, 62566, 34532, 42941, 63042, 46566, 12332, 1,
211 	/* * 65536**44 */
212 	 /* 10000**54 =  65536**13 *  */ 41216, 16746, 42795, 37829, 54392, 32198, 60131, 44331,
213 	27691, 64644, 19440, 30126, 5237, 22651, 13410, 46714,
214 	56195, 4364, 21762, 39215, 8951, 57008, 60416, 41531,
215 	52644, 62917, 20362, 23397, 35768, 36339, 53889, 11881,
216 	/* * 65536**44 */
217 	 /* 10000**55 =  65536**13 *  */ 4096, 21809, 2475, 22738, 42508, 9931, 22113, 33671,
218 	27164, 62657, 30087, 59510, 11332, 18383, 16800, 1438,
219 	51464, 1598, 41146, 51432, 59343, 49237, 57850, 17586,
220 	61185, 32432, 9248, 9587, 53618, 63873, 58552, 1454,
221 	1813,			/* * 65536**45 */
222 	 /* 10000**56 =  65536**14 *  */ 52353, 46255, 35993, 16973, 29446, 13051, 54942, 63953,
223 	49984, 3784, 37711, 17336, 3249, 34037, 30179, 51547,
224 	62604, 25235, 65286, 9367, 7087, 21241, 35739, 8587,
225 	57208, 13652, 57779, 31446, 24325, 31122, 65478, 42285,
226 	276,			/* * 65536**46 */
227 	 /* 10000**57 =  65536**14 *  */ 28432, 4900, 13346, 62788, 9341, 32317, 33703, 38095,
228 	6686, 33355, 16433, 23034, 52325, 42047, 1913, 33965,
229 	47993, 45952, 59754, 29017, 27013, 8905, 25433, 23293,
230 	17566, 17241, 26707, 27088, 50702, 58783, 14572, 21719,
231 	13940, 42,		/* * 65536**47 */
232 	 /* 10000**58 =  65536**14 *  */ 24832, 48946, 29451, 47156, 30780, 13409, 48819, 59910,
233 	19092, 38316, 36337, 49003, 14090, 64544, 65439, 42739,
234 	15054, 54427, 55299, 51245, 60571, 56233, 51678, 18936,
235 	27074, 53000, 13430, 23787, 37637, 45352, 42441, 5919,
236 	8242, 28911, 6,		/* * 65536**48 */
237 	 /* 10000**59 =  65536**14 *  */ 4096, 40941, 64220, 32973, 50139, 8040, 14382, 42873,
238 	22773, 39457, 44262, 22872, 5077, 43622, 22888, 39729,
239 	10329, 61353, 5536, 32454, 34107, 40362, 37220, 34381,
240 	13673, 14499, 24823, 41905, 381, 16623, 5784, 17468,
241 	42151, 31961, 64411,	/* * 65536**48 */
242 	 /* 10000**60 =  65536**15 *  */ 7233, 18983, 28183, 44631, 60514, 35242, 61218, 64477,
243 	46754, 61412, 6113, 48626, 13158, 34944, 14260, 11326,
244 	49080, 56977, 6572, 25608, 54516, 27214, 13823, 27150,
245 	26454, 47380, 16603, 15306, 30762, 39784, 27442, 50649,
246 	62895, 27068, 9828,	/* * 65536**49 */
247 	 /* 10000**61 =  65536**15 *  */ 43792, 38847, 28096, 14140, 52922, 42161, 13601, 36173,
248 	16014, 54814, 59818, 49348, 56667, 4055, 64532, 15967,
249 	2624, 7505, 61622, 31850, 35459, 42846, 18728, 51997,
250 	40846, 44292, 34541, 35973, 61887, 41173, 26838, 31979,
251 	8736, 25917, 45666, 1499,	/* * 65536**50 */
252 	 /* 10000**62 =  65536**15 *  */ 8448, 44810, 13095, 43135, 18957, 24987, 29233, 38891,
253 	41071, 64875, 41291, 3047, 53274, 57398, 53162, 34150,
254 	28036, 11680, 51673, 4442, 45100, 56578, 50185, 10233,
255 	47582, 33944, 42038, 8166, 19041, 42291, 16362, 43951,
256 	5391, 41989, 9106, 54760, 228,	/* * 65536**51 */
257 	 /* 10000**63 =  65536**15 *  */ 4096, 31657, 15909, 59582, 46469, 49660, 43252, 23836,
258 	1822, 15403, 43099, 2060, 63857, 23840, 726, 16,
259 	2203, 19126, 45958, 60012, 47461, 14593, 49481, 35961,
260 	30201, 36316, 37275, 8558, 29166, 9097, 48597, 28080,
261 	46114, 1670, 36903, 48109, 60131, 34,	/* * 65536**52 */
262 	 /* 10000**64 =  65536**16 *  */ 31745, 38958, 34651, 48851, 40818, 55513, 12167, 4629,
263 	20678, 27614, 28272, 53066, 55311, 54677, 29038, 9906,
264 	26288, 44486, 13860, 7445, 54106, 15426, 21518, 25599,
265 	29632, 52309, 61207, 26105, 10482, 21948, 51191, 32988,
266 	60892, 62574, 61390, 24540, 21495, 5,	/* * 65536**53 */
267 	 /* 10000**65 =  65536**16 *  */ 59152, 38859, 27112, 9943, 29246, 46308, 43654, 23440,
268 	14626, 39987, 1909, 19322, 59793, 11591, 63863, 39534,
269 	16615, 5643, 63684, 3218, 61456, 62047, 27665, 9667,
270 	35650, 51705, 37277, 29451, 31919, 1535, 11653, 45123,
271 	30057, 11563, 33836, 42583, 61200, 53279,	/* * 65536**53 */
272 	 /* 10000**66 =  65536**16 *  */ 57600, 36081, 3497, 16025, 39885, 7086, 11770, 49925,
273 	52760, 37095, 25125, 20163, 48020, 51475, 48984, 36592,
274 	22272, 6039, 27549, 11541, 29419, 50065, 32011, 8621,
275 	51171, 41935, 9121, 62440, 34173, 19446, 7226, 16418,
276 	28789, 29082, 64932, 47770, 31329, 57194, 8129,	/* * 65536**54 */
277 	 /* 10000**67 =  65536**16 *  */ 4096, 43109, 44817, 15013, 349, 21670, 63961, 64083,
278 	42817, 24290, 56172, 45097, 20804, 37583, 31790, 39986,
279 	34255, 34742, 43113, 5307, 657, 24985, 39815, 35044,
280 	6227, 58480, 55822, 39919, 34823, 19902, 42295, 13422,
281 	58393, 41160, 59285, 18003, 35209, 12108, 34087, 1240,
282 	/* * 65536**55 */
283 	 /* 10000**68 =  65536**17 *  */ 60353, 41409, 59398, 18882, 38037, 47482, 28751, 33090,
284 	30117, 14650, 25355, 35617, 49750, 56134, 29714, 64965,
285 	18890, 39493, 57954, 17209, 26868, 22612, 25083, 16147,
286 	23222, 58811, 18741, 43323, 58017, 49228, 8725, 6288,
287 	42830, 17624, 11654, 33355, 40380, 19111, 18897, 189,
288 	/* * 65536**56 */
289 	 /* 10000**69 =  65536**17 *  */ 8976, 42761, 33550, 19847, 1937, 17484, 10813, 13123,
290 	37129, 31635, 58987, 51244, 21658, 31751, 8341, 61702,
291 	35160, 12946, 11178, 1307, 50562, 24899, 27178, 58659,
292 	28415, 59015, 51549, 39899, 51938, 47956, 29095, 32307,
293 	23199, 20231, 19681, 39074, 37793, 13185, 32628, 57875,
294 	28,			/* * 65536**57 */
295 	 /* 10000**70 =  65536**17 *  */ 41216, 54505, 27740, 32111, 39908, 55783, 63803, 28577,
296 	30562, 13393, 50827, 23016, 56875, 56920, 53052, 65368,
297 	8774, 31765, 43095, 30041, 9959, 26451, 6007, 46947,
298 	60390, 2655, 58365, 14697, 13288, 41013, 43013, 47495,
299 	63025, 3907, 8479, 17371, 55386, 62870, 43803, 6562,
300 	26687, 4,		/* * 65536**58 */
301 	 /* 10000**71 =  65536**17 *  */ 4096, 58913, 59964, 53368, 36195, 59193, 45551, 42775,
302 	29992, 44615, 40363, 5323, 32104, 28518, 14765, 32031,
303 	62806, 63882, 55646, 65087, 45399, 8223, 43060, 36548,
304 	58459, 17134, 52325, 47193, 40770, 7739, 23490, 17171,
305 	63071, 20160, 52548, 40893, 17914, 21603, 62505, 25147,
306 	8409, 44072,		/* * 65536**58 */
307 	 /* 10000**72 =  65536**18 *  */ 27521, 60125, 29501, 2815, 14371, 43832, 3478, 33791,
308 	51024, 583, 20927, 45484, 37762, 1743, 37821, 33399,
309 	50191, 3571, 40475, 32059, 54783, 29734, 57834, 14456,
310 	37816, 13190, 13248, 7745, 63741, 20156, 9264, 59692,
311 	20887, 15428, 58914, 36351, 26077, 36464, 17905, 11149,
312 	57219, 6724,		/* * 65536**59 */
313 	 /* 10000**73 =  65536**18 *  */ 24336, 26935, 41638, 39557, 55517, 17424, 52608, 6914,
314 	47396, 5081, 13641, 23353, 8508, 3186, 2010, 24315,
315 	40408, 538, 209, 59600, 19467, 11527, 54873, 61944,
316 	19485, 47338, 33756, 54005, 8045, 46526, 40707, 19525,
317 	15876, 11443, 39250, 56333, 7802, 1675, 11212, 15996,
318 	62421, 8794, 1026,	/* * 65536**60 */
319 	 /* 10000**74 =  65536**18 *  */ 24832, 753, 33902, 1057, 20580, 53783, 25186, 7547,
320 	4703, 26832, 30359, 27313, 17835, 10802, 46470, 11746,
321 	54270, 12213, 58466, 15647, 37174, 60682, 64366, 2100,
322 	20924, 16445, 56823, 38510, 45568, 21163, 33003, 24467,
323 	34787, 6566, 6642, 54069, 40755, 39510, 53695, 53870,
324 	47576, 212, 37726, 156,	/* * 65536**61 */
325 	 /* 10000**75 =  65536**18 *  */ 4096, 62685, 2386, 23877, 17121, 44724, 13358, 41907,
326 	41839, 16333, 31342, 46120, 30711, 19393, 51408, 26578,
327 	63712, 44712, 15207, 44489, 22195, 27848, 40203, 38301,
328 	49408, 23368, 35389, 19134, 14068, 21209, 59469, 29147,
329 	8645, 63772, 33033, 19013, 55402, 55210, 19580, 2273,
330 	42396, 30107, 34816, 58428, 23,	/* * 65536**62 */
331 	 /* 10000**76 =  65536**19 *  */ 64321, 14460, 22716, 33611, 24948, 24456, 34854, 14570,
332 	20672, 29340, 27950, 15341, 13662, 18575, 39364, 48599,
333 	43129, 33302, 33952, 51892, 20922, 36425, 23750, 9940,
334 	51699, 64701, 45815, 42663, 17650, 19572, 40482, 12463,
335 	56039, 38290, 15104, 47093, 33189, 52392, 57531, 7962,
336 	4085, 37362, 31872, 42307, 3,	/* * 65536**63 */
337 	 /* 10000**77 =  65536**19 *  */ 39696, 37398, 14430, 44858, 55112, 48990, 23283, 18790,
338 	21679, 64018, 58972, 60024, 45316, 23060, 33618, 46566,
339 	4999, 38165, 48601, 11132, 37006, 4104, 3094, 51048,
340 	43548, 46496, 63232, 63166, 18061, 32197, 7114, 52241,
341 	59101, 47238, 50898, 56144, 22881, 30280, 42986, 2538,
342 	22287, 65423, 24132, 39983, 36455,	/* * 65536**63 */
343 	 /* 10000**78 =  65536**19 *  */ 8448, 37641, 60970, 53817, 34620, 26809, 53603, 11840,
344 	65315, 27659, 36840, 4774, 53255, 51266, 49374, 31849,
345 	58673, 34634, 847, 47288, 45442, 20110, 7634, 20568,
346 	1069, 54261, 35766, 33680, 2422, 59924, 38352, 23629,
347 	14323, 5530, 34632, 854, 32391, 27171, 13996, 24127,
348 	47987, 53048, 26430, 64082, 44868, 5562,	/* * 65536**64 */
349 	 /* 10000**79 =  65536**19 *  */ 4096, 38041, 24335, 63207, 47059, 53042, 15146, 50163,
350 	20030, 38046, 26364, 35413, 5192, 45534, 65134, 58109,
351 	56587, 56728, 21140, 37889, 591, 42486, 59164, 29196,
352 	10770, 37619, 38327, 15953, 42355, 44721, 12471, 38572,
353 	37445, 55337, 28619, 25604, 31218, 2686, 44786, 34119,
354 	19089, 38938, 1406, 13025, 30322, 52318, 848,	/* * 65536**65 */
355 	 /* 10000**80 =  65536**20 *  */ 39681, 20636, 44529, 51164, 44332, 14397, 19767, 29638,
356 	26576, 60013, 43014, 20891, 62200, 50179, 57762, 41042,
357 	9018, 55056, 29609, 17541, 55738, 53010, 6147, 28807,
358 	15003, 21212, 21224, 58802, 64334, 1815, 42543, 48717,
359 	55265, 2731, 60751, 35938, 60539, 52921, 16417, 54374,
360 	33536, 41237, 30182, 52451, 10738, 33839, 129,	/* * 65536**66 */
361 	 /* 10000**81 =  65536**20 *  */ 55056, 58726, 41564, 7242, 42303, 59708, 15620, 29224,
362 	16042, 20903, 36389, 53331, 1011, 55875, 58888, 42381,
363 	8726, 58976, 6752, 40182, 64532, 53336, 5320, 40218,
364 	22491, 47793, 37668, 34246, 47596, 6344, 36101, 47403,
365 	57881, 55456, 57232, 55381, 39451, 16037, 10395, 55849,
366 	20584, 22605, 33012, 29997, 40035, 29270, 49979, 19,
367 	/* * 65536**67 */
368 	 /* 10000**82 =  65536**20 *  */ 57600, 304, 19649, 9062, 61761, 53494, 36822, 17359,
369 	57867, 38143, 37317, 49120, 25593, 55754, 47565, 63209,
370 	38050, 2867, 26919, 19814, 58675, 37878, 58442, 51915,
371 	62120, 44919, 51900, 40147, 42793, 8414, 38680, 13620,
372 	3281, 3200, 2574, 39533, 57266, 9427, 12351, 59330,
373 	65481, 19476, 18617, 16765, 60689, 22332, 16930, 1018,
374 	3,			/* * 65536**68 */
375 	 /* 10000**83 =  65536**20 *  */ 4096, 34133, 13118, 52246, 118, 44592, 46914, 56290,
376 	55304, 19309, 13836, 13374, 19415, 29153, 63755, 2537,
377 	7629, 36574, 34085, 28779, 9215, 56409, 41267, 48261,
378 	57713, 15734, 27270, 4383, 51582, 63841, 7811, 22094,
379 	44078, 18932, 50376, 17240, 12464, 37970, 41614, 4476,
380 	48877, 62535, 50731, 11752, 29198, 48108, 23919, 24503,
381 	30155,			/* * 65536**68 */
382 	 /* 10000**84 =  65536**21 *  */ 19137, 47672, 9009, 8324, 13074, 40116, 18454, 55821,
383 	29382, 16450, 48671, 34408, 28834, 20240, 17296, 6483,
384 	50284, 2844, 26625, 10775, 23054, 63951, 9192, 27348,
385 	62406, 7104, 56113, 52348, 31694, 829, 19336, 53771,
386 	58757, 53192, 48006, 58694, 51853, 57729, 5261, 3195,
387 	12946, 5366, 21693, 18913, 50215, 56476, 60081, 22602,
388 	4601,			/* * 65536**69 */
389 	 /* 10000**85 =  65536**21 *  */ 4880, 14056, 50810, 10654, 62486, 16138, 62281, 42703,
390 	30629, 9123, 42174, 23426, 52386, 29231, 13584, 17535,
391 	48797, 5048, 43202, 12878, 51532, 13229, 48286, 65210,
392 	30380, 8498, 11852, 52530, 15891, 37300, 28926, 55606,
393 	47964, 38789, 16916, 6909, 18124, 56824, 58936, 34770,
394 	26887, 53527, 6658, 61950, 16053, 43950, 50105, 61039,
395 	7176, 702,		/* * 65536**70 */
396 	 /* 10000**86 =  65536**21 *  */ 41216, 51560, 1536, 51753, 41401, 39902, 23854, 6927,
397 	46788, 8561, 17232, 40771, 34326, 27433, 53868, 43272,
398 	57155, 24725, 7458, 8352, 12397, 46215, 58306, 24167,
399 	50590, 49979, 32208, 30768, 58751, 37048, 55323, 56989,
400 	56036, 55270, 17502, 17637, 34014, 45645, 3422, 40513,
401 	46633, 41590, 3591, 54744, 41788, 18033, 33986, 60877,
402 	7393, 8743, 107,	/* * 65536**71 */
403 	 /* 10000**87 =  65536**21 *  */ 4096, 34577, 32443, 57978, 26984, 43149, 60584, 2087,
404 	19553, 27123, 27162, 13173, 54189, 1541, 43802, 59547,
405 	17146, 56929, 3804, 28274, 42698, 57555, 58795, 47664,
406 	31303, 20183, 43722, 58930, 49990, 13956, 46277, 62921,
407 	35895, 43462, 47313, 15294, 10851, 62486, 17172, 52506,
408 	47541, 15659, 2618, 18340, 30817, 46840, 58591, 11281,
409 	14681, 6104, 22758, 16,	/* * 65536**72 */
410 	 /* 10000**88 =  65536**22 *  */ 2689, 32076, 53494, 37134, 5093, 31800, 38796, 36430,
411 	45015, 42954, 6784, 40362, 17308, 43147, 16587, 26910,
412 	46920, 37806, 18276, 17274, 19363, 35326, 5643, 37337,
413 	49432, 32423, 6959, 384, 41484, 22433, 5925, 18929,
414 	56261, 32247, 51731, 50253, 41431, 25214, 53724, 19867,
415 	31750, 33525, 30671, 22526, 18910, 25307, 31484, 11081,
416 	28224, 39939, 32400, 2,	/* * 65536**73 */
417 	 /* 10000**89 =  65536**22 *  */ 20240, 27226, 40062, 21186, 14194, 20105, 57268, 56831,
418 	54310, 23924, 16794, 50347, 5582, 49153, 4967, 11715,
419 	31882, 55511, 51400, 55428, 39291, 23914, 8894, 12269,
420 	53185, 30950, 61251, 39973, 62714, 6601, 8879, 22936,
421 	51864, 41464, 39272, 7845, 64612, 29329, 45255, 38581,
422 	46647, 38204, 6635, 17448, 32077, 38389, 8917, 58964,
423 	43674, 17922, 61646, 24943,	/* * 65536**73 */
424 0};				/* end powers of 10000 in base 65536 */
425 
426 unsigned short  _start_small_powers_ten[] = {
427 	0, 1, 2, 4, 7, 10, 14, 18,
428 	23, 28, 34, 41, 49, 56, 64, 73,
429 	83, 93, 104, 115, 127, 139, 152, 166,
430 	181, 195, 210, 226, 243, 260, 278, 296,
431 	315, 334, 354, 375, 397, 418, 440, 463,
432 	487, 511, 536, 561, 587, 613, 640, 668,
433 	697, 725, 754, 784, 815, 846, 878, 910,
434 	943, 976, 1010, 1045, 1080, 1115, 1151, 1188,
435 	1226, 1264, 1302, 1341, 1381, 1421, 1462, 1504,
436 	1546, 1588, 1631, 1675, 1720, 1765, 1810, 1856,
437 	1903, 1950, 1998, 2047, 2096, 2145, 2195, 2246,
438 	2298, 2350, 2402,
439 0};				/* end _start_small_powers_ten */
440 
441 unsigned short  _leading_zeros_small_powers_ten[] = {
442 	0, 0, 0, 0, 1, 1, 1, 1,
443 	2, 2, 2, 2, 3, 3, 3, 3,
444 	4, 4, 4, 4, 5, 5, 5, 5,
445 	6, 6, 6, 6, 7, 7, 7, 7,
446 	8, 8, 8, 8, 9, 9, 9, 9,
447 	10, 10, 10, 10, 11, 11, 11, 11,
448 	12, 12, 12, 12, 13, 13, 13, 13,
449 	14, 14, 14, 14, 15, 15, 15, 15,
450 	16, 16, 16, 16, 17, 17, 17, 17,
451 	18, 18, 18, 18, 19, 19, 19, 19,
452 	20, 20, 20, 20, 21, 21, 21, 21,
453 	22, 22,
454 0};				/* end _leading_zeros_small_powers_ten */
455 
456 unsigned short  _max_small_powers_two = 70;
457 unsigned short  _small_powers_two[] = {1,	/* begin powers of 65536 in
458 						 * base 10000 */
459 	 /* 65536**1 =  */ 5536, 6,	/* * 10000**1 */
460 	 /* 65536**2 =  */ 7296, 9496, 42,	/* * 10000**2 */
461 	 /* 65536**3 =  */ 656, 7671, 4749, 281,	/* * 10000**3 */
462 	 /* 65536**4 =  */ 1616, 955, 737, 6744, 1844,	/* * 10000**4 */
463 	 /* 65536**5 =  */ 6176, 7470, 6291, 9614, 2581, 2089, 1,	/* * 10000**6 */
464 	 /* 65536**6 =  */ 336, 4395, 5935, 4337, 1426, 1625, 9228, 7,
465 	/* * 10000**7 */
466 	 /* 65536**7 =  */ 96, 2922, 4963, 8530, 2762, 5348, 6858, 9229,
467 	51,			/* * 10000**8 */
468 	 /* 65536**8 =  */ 1456, 6821, 4317, 4607, 6337, 4634, 938, 6692,
469 	2823, 340,		/* * 10000**9 */
470 	 /* 65536**9 =  */ 416, 598, 3615, 2648, 1827, 5357, 3141, 3062,
471 	1985, 745, 2230,	/* * 10000**10 */
472 	 /* 65536**10 =  */ 2976, 3254, 6559, 3019, 1628, 8327, 3684, 1820,
473 	9029, 7330, 163, 4615, 1,	/* * 10000**12 */
474 	 /* 65536**11 =  */ 5136, 3647, 1951, 6171, 2397, 8943, 9196, 9668,
475 	6473, 8053, 411, 9713, 5780, 9,	/* * 10000**13 */
476 	 /* 65536**12 =  */ 2896, 3451, 4640, 5444, 235, 4161, 7666, 2320,
477 	7894, 3835, 8076, 3866, 1735, 7710, 62,	/* * 10000**14 */
478 	 /* 65536**13 =  */ 2256, 3715, 9658, 8394, 6640, 6839, 6245, 3762,
479 	6393, 2295, 3874, 5105, 301, 3933, 3761, 411,
480 	/* * 10000**15 */
481 	 /* 65536**14 =  */ 9216, 1024, 1036, 2481, 4057, 4225, 7144, 7363,
482 	6306, 7019, 1508, 6670, 9794, 5063, 6671, 9946,
483 	2695,			/* * 10000**16 */
484 	 /* 65536**15 =  */ 9776, 9261, 2012, 1606, 5812, 6189, 6875, 8389,
485 	8274, 8515, 4291, 5007, 3297, 2958, 3843, 4778,
486 	4706, 7668, 1,		/* * 10000**18 */
487 	 /* 65536**16 =  */ 9936, 2963, 9131, 4007, 5758, 394, 564, 6564,
488 	9846, 3269, 785, 6879, 5008, 7098, 4235, 6195,
489 	3731, 892, 5792, 11,	/* * 10000**19 */
490 	 /* 65536**17 =  */ 5696, 8284, 8640, 2594, 2554, 8922, 4889, 2000,
491 	474, 1715, 7190, 7290, 9370, 7352, 1480, 3279,
492 	5418, 2567, 360, 8855, 75,	/* * 10000**20 */
493 	 /* 65536**18 =  */ 3056, 7553, 5333, 7012, 5949, 8931, 3976, 4046,
494 	7174, 7347, 5079, 4561, 100, 2084, 1468, 2248,
495 	5538, 6421, 9786, 3640, 3232, 497,	/* * 10000**21 */
496 	 /* 65536**19 =  */ 8016, 3435, 2989, 3387, 9621, 1007, 9670, 4718,
497 	1782, 10, 5498, 2986, 3494, 7682, 505, 4550,
498 	3101, 2951, 7380, 5177, 6213, 2575, 3259,	/* * 10000**22 */
499 	 /* 65536**20 =  */ 6576, 8693, 9620, 22, 4055, 7806, 9725, 2221,
500 	6078, 7041, 6994, 6527, 2356, 452, 6027, 2114,
501 	6955, 7061, 5021, 8239, 9100, 5920, 8703, 1359,
502 	2,			/* * 10000**24 */
503 	 /* 65536**21 =  */ 4736, 7544, 3294, 4843, 8630, 590, 8760, 9194,
504 	2369, 8810, 4931, 9312, 5595, 7716, 8435, 2602,
505 	6738, 5277, 2535, 4014, 1598, 2763, 8611, 463,
506 	9984, 13,		/* * 10000**25 */
507 	 /* 65536**22 =  */ 8496, 4621, 5027, 2440, 7421, 2800, 9232, 5393,
508 	5043, 7691, 5754, 3553, 4950, 2449, 6731, 9956,
509 	8625, 7631, 8347, 8120, 2835, 6443, 8604, 9602,
510 	4463, 7399, 91,		/* * 10000**26 */
511 	 /* 65536**23 =  */ 3856, 7535, 9761, 787, 8650, 9435, 6706, 6152,
512 	3397, 429, 4551, 7122, 6488, 106, 8869, 529,
513 	3252, 1747, 9008, 7027, 7780, 7032, 3970, 3063,
514 	101, 119, 2269, 601,	/* * 10000**27 */
515 	 /* 65536**24 =  */ 6816, 9030, 6279, 806, 1564, 8849, 6254, 1426,
516 	6114, 7210, 7149, 7217, 4245, 9340, 9482, 6667,
517 	6544, 2704, 9739, 507, 6138, 143, 4010, 2790,
518 	9212, 9447, 1963, 2006, 3940,	/* * 10000**28 */
519 	 /* 65536**25 =  */ 3376, 4749, 9727, 3171, 3590, 8314, 137, 5328,
520 	6453, 4629, 4119, 168, 7622, 4064, 3565, 659,
521 	1283, 2235, 2829, 579, 3297, 1874, 301, 1720,
522 	5919, 8965, 9085, 8086, 4987, 5822, 2,	/* * 10000**30 */
523 	 /* 65536**26 =  */ 9536, 2588, 9797, 8405, 5027, 9833, 2920, 6711,
524 	8725, 8437, 3124, 7045, 6495, 8255, 2478, 1590,
525 	7009, 1368, 5992, 3885, 5988, 6071, 8619, 3893,
526 	8856, 9031, 3316, 3641, 1030, 3280, 9230, 16,
527 	/* * 10000**31 */
528 	 /* 65536**27 =  */ 1296, 9663, 3158, 4287, 4561, 8438, 9564, 1238,
529 	5583, 4416, 9762, 1598, 2492, 2250, 2312, 8485,
530 	2245, 9183, 681, 6630, 5032, 8301, 4574, 8137,
531 	2334, 3657, 6567, 8313, 5943, 4832, 8776, 9067,
532 	110,			/* * 10000**32 */
533 	 /* 65536**28 =  */ 4656, 2861, 6016, 3534, 7793, 2661, 1606, 6252,
534 	5607, 3565, 1376, 507, 6191, 2332, 3979, 8113,
535 	3928, 1806, 199, 8149, 602, 7318, 6068, 6413,
536 	4353, 453, 8880, 3807, 4932, 8905, 5606, 2429,
537 	8387, 726,		/* * 10000**33 */
538 	 /* 65536**29 =  */ 5616, 9009, 3328, 3652, 5212, 2370, 8260, 1598,
539 	1326, 2590, 903, 5772, 6699, 525, 3031, 9646,
540 	8579, 3763, 3502, 4169, 6077, 6398, 407, 2140,
541 	240, 6340, 2651, 3748, 8507, 404, 3179, 3689,
542 	6354, 4102, 4763,	/* * 10000**34 */
543 	 /* 65536**30 =  */ 176, 629, 2853, 9288, 7567, 4479, 2895, 662,
544 	1214, 6931, 5982, 9711, 3491, 306, 3061, 120,
545 	6562, 8197, 1738, 2537, 9596, 9156, 5085, 9711,
546 	2664, 9814, 7485, 6305, 9316, 2297, 1597, 3138,
547 	9922, 315, 4855, 1217, 3,	/* * 10000**36 */
548 	 /* 65536**31 =  */ 4336, 3297, 8330, 7065, 1783, 5341, 6078, 3807,
549 	5044, 7972, 1775, 9304, 9821, 6900, 7703, 4380,
550 	8020, 1596, 5292, 6227, 83, 506, 571, 3427,
551 	1549, 7769, 1278, 3540, 4701, 7249, 6051, 2435,
552 	8758, 8866, 9350, 9129, 4586, 20,	/* * 10000**37 */
553 	 /* 65536**32 =  */ 4096, 608, 6490, 6433, 6994, 9465, 2811, 5388,
554 	8537, 6050, 8648, 8581, 31, 2769, 9034, 8166,
555 	7429, 8018, 6976, 7354, 300, 1764, 4372, 5614,
556 	7723, 9337, 5923, 5820, 7936, 1274, 5846, 9820,
557 	249, 9574, 9709, 9425, 7929, 780, 134,	/* * 10000**38 */
558 	 /* 65536**33 =  */ 5456, 2731, 2627, 5621, 947, 4080, 3730, 6396,
559 	6144, 8751, 4982, 1095, 7858, 9392, 370, 6183,
560 	466, 6340, 1687, 7467, 8999, 7474, 4952, 7757,
561 	1322, 249, 924, 8343, 1841, 4877, 1810, 1833,
562 	2824, 3302, 1768, 435, 6718, 49, 6941, 878,
563 	/* * 10000**39 */
564 	 /* 65536**34 =  */ 4416, 4572, 973, 5074, 9431, 3089, 6019, 2703,
565 	5103, 5805, 7706, 4575, 9067, 5610, 9876, 1518,
566 	297, 1298, 782, 8372, 7400, 5044, 3259, 5210,
567 	9431, 7132, 6896, 2903, 6453, 1142, 2123, 9353,
568 	5677, 8380, 9289, 9748, 3699, 5291, 5701, 6096,
569 	5758,			/* * 10000**40 */
570 	 /* 65536**35 =  */ 6976, 9532, 6493, 6043, 3269, 2514, 1434, 3256,
571 	7926, 9924, 8462, 7705, 4899, 6384, 307, 8375,
572 	4146, 7675, 7658, 2517, 1267, 2086, 4885, 3921,
573 	4162, 4562, 3002, 6206, 2837, 4404, 416, 2122,
574 	9169, 8890, 8826, 5809, 1554, 5224, 5413, 4821,
575 	6242, 7739, 3,		/* * 10000**42 */
576 	 /* 65536**36 =  */ 9136, 4869, 7721, 6606, 6791, 8931, 5101, 4615,
577 	9675, 1209, 675, 343, 1365, 3935, 1393, 6016,
578 	7142, 5976, 4989, 4304, 612, 6401, 7031, 8671,
579 	6531, 2510, 8972, 6092, 6305, 9140, 1839, 121,
580 	3491, 5131, 9003, 6471, 1019, 252, 605, 4534,
581 	7310, 4014, 7330, 24,	/* * 10000**43 */
582 	 /* 65536**37 =  */ 6896, 4657, 5371, 1419, 8274, 6525, 7670, 2075,
583 	1048, 6433, 4729, 3272, 8888, 3105, 7437, 3707,
584 	7539, 9945, 8272, 9643, 6241, 9949, 5565, 8738,
585 	2446, 8167, 5445, 4112, 4410, 364, 608, 1914,
586 	6970, 8094, 4236, 2461, 3598, 1754, 932, 4189,
587 	7874, 9413, 5190, 904, 162,	/* * 10000**44 */
588 	 /* 65536**38 =  */ 6256, 6345, 4380, 786, 4167, 6625, 3887, 7470,
589 	5331, 9957, 1903, 4788, 5414, 7530, 1586, 693,
590 	203, 4930, 8972, 7865, 3377, 8571, 3045, 45,
591 	8325, 8547, 7044, 9721, 711, 4008, 8276, 9888,
592 	8463, 4063, 3545, 1862, 4659, 3725, 1049, 6413,
593 	7917, 1973, 3534, 8563, 2759, 1062,	/* * 10000**45 */
594 	 /* 65536**39 =  */ 3216, 6919, 9266, 4, 3666, 3309, 1852, 9398,
595 	1373, 6894, 265, 8846, 3283, 1564, 9448, 6846,
596 	8350, 3810, 1301, 9442, 6621, 1192, 3293, 9081,
597 	7496, 750, 1603, 1625, 9808, 2953, 2203, 4208,
598 	5975, 8237, 1752, 1267, 4429, 2134, 1679, 9245,
599 	540, 4417, 7159, 7929, 9944, 7318, 6961,	/* * 10000**46 */
600 	 /* 65536**40 =  */ 3776, 4660, 1922, 2874, 5008, 2649, 4360, 9467,
601 	2519, 4188, 2221, 3197, 2661, 9825, 4379, 1375,
602 	472, 6887, 7310, 9440, 5735, 2309, 7864, 3997,
603 	7371, 1131, 9128, 6505, 7738, 2086, 5167, 9927,
604 	5178, 9192, 3057, 5599, 7248, 2850, 8932, 1324,
605 	29, 6057, 1171, 1864, 1952, 7622, 4061, 5624,
606 	4,			/* * 10000**48 */
607 	 /* 65536**41 =  */ 3936, 2506, 734, 3063, 3124, 7686, 4323, 7887,
608 	7229, 1282, 2904, 3150, 2249, 8641, 6534, 704,
609 	2006, 9526, 3294, 7751, 830, 215, 240, 8931,
610 	2055, 9525, 24, 1502, 205, 8812, 8187, 9735,
611 	468, 853, 3796, 6104, 1623, 5104, 6234, 8202,
612 	9226, 1742, 2351, 6782, 8488, 8185, 1648, 1083,
613 	9004, 29,		/* * 10000**49 */
614 	 /* 65536**42 =  */ 9696, 9010, 9849, 1579, 4538, 171, 2501, 768,
615 	1435, 4533, 4950, 7432, 1109, 1317, 8855, 170,
616 	9834, 9082, 8014, 1129, 5679, 5684, 49, 3589,
617 	5010, 3873, 5288, 5235, 4723, 4576, 982, 6620,
618 	4652, 5281, 246, 6622, 4933, 6384, 4874, 7130,
619 	8892, 4180, 6558, 560, 4016, 7791, 6974, 6293,
620 	3242, 9553, 195,	/* * 10000**50 */
621 	 /* 65536**43 =  */ 7056, 2903, 3118, 5896, 2722, 6397, 6659, 8038,
622 	9194, 4092, 2908, 5995, 8133, 8184, 9911, 9152,
623 	2143, 2400, 5030, 2670, 6348, 3842, 8518, 9028,
624 	8880, 3763, 9753, 5617, 839, 3692, 6344, 4758,
625 	6857, 6107, 6468, 1007, 2486, 4157, 4305, 3626,
626 	2842, 8759, 2487, 3141, 6250, 7295, 9125, 3757,
627 	8958, 6658, 2128, 1284,	/* * 10000**51 */
628 	 /* 65536**44 =  */ 2016, 7250, 277, 692, 7634, 1634, 6149, 2012,
629 	666, 3571, 5511, 7380, 3578, 9928, 935, 430,
630 	3633, 450, 1810, 4086, 29, 916, 831, 4834,
631 	8851, 169, 7275, 9631, 1521, 4414, 4580, 1866,
632 	1538, 3293, 6875, 7144, 9099, 9444, 9724, 1751,
633 	7078, 8451, 5436, 4880, 586, 6082, 3812, 8558,
634 	6115, 7397, 4247, 2174, 8416,	/* * 10000**52 */
635 	 /* 65536**45 =  */ 576, 9212, 986, 2732, 6359, 5854, 1577, 8731,
636 	165, 3422, 2299, 1799, 6177, 4861, 1226, 6614,
637 	5106, 5009, 3111, 1958, 7323, 1168, 6419, 6470,
638 	816, 3593, 5513, 4893, 3378, 5878, 3808, 194,
639 	6600, 128, 1582, 4242, 8887, 1619, 3962, 7269,
640 	5289, 1123, 9085, 1310, 6081, 3795, 3091, 2074,
641 	8728, 9872, 9872, 3101, 5226, 5156, 5,	/* * 10000**54 */
642 	 /* 65536**46 =  */ 8736, 1406, 8868, 819, 1329, 9420, 8640, 5154,
643 	660, 5279, 9690, 4332, 7663, 978, 8997, 3141,
644 	162, 3291, 5326, 9879, 2961, 4041, 3243, 9988,
645 	9781, 6199, 3515, 3780, 2678, 2749, 9612, 8943,
646 	8873, 1861, 8795, 4079, 6233, 1028, 4248, 7150,
647 	7544, 1594, 1923, 1700, 3007, 8973, 6650, 1923,
648 	1802, 8593, 6094, 1839, 1465, 7867, 1473, 36,
649 	/* * 10000**55 */
650 	 /* 65536**47 =  */ 2496, 868, 2468, 2102, 2717, 7830, 2775, 9173,
651 	7542, 8872, 8436, 5459, 764, 4431, 3806, 7539,
652 	7422, 39, 6304, 5050, 6842, 387, 9733, 4823,
653 	3075, 1771, 9672, 9119, 182, 6017, 49, 1443,
654 	9543, 651, 1322, 8984, 2625, 1859, 3669, 240,
655 	445, 3829, 6179, 3803, 7894, 4235, 3207, 9315,
656 	8478, 2658, 2700, 647, 2296, 1314, 6086, 8954,
657 	236,			/* * 10000**56 */
658 	 /* 65536**48 =  */ 7856, 1605, 8538, 2846, 5089, 4687, 3716, 9919,
659 	2629, 4825, 9844, 6315, 5285, 5026, 9055, 849,
660 	7602, 4549, 9204, 8113, 411, 7275, 4428, 3914,
661 	4814, 4411, 5800, 6171, 7320, 1310, 697, 8773,
662 	9504, 6477, 2864, 4088, 878, 8633, 3768, 2686,
663 	5095, 260, 2038, 3905, 6111, 6696, 1711, 8860,
664 	5256, 255, 4625, 9488, 4897, 9351, 708, 9230,
665 	5180, 1552,		/* * 10000**57 */
666 	 /* 65536**49 =  */ 816, 6765, 6891, 1411, 1361, 585, 2496, 5940,
667 	9151, 8435, 8006, 4356, 9152, 8575, 1421, 9410,
668 	241, 3085, 3161, 3890, 8471, 7098, 1085, 6928,
669 	5957, 847, 7711, 669, 3966, 136, 7182, 1896,
670 	1639, 8963, 7557, 9941, 7400, 8044, 6225, 4395,
671 	3525, 2752, 4075, 1436, 6089, 9107, 5982, 177,
672 	5282, 6131, 5674, 5878, 1975, 9235, 773, 1926,
673 	6970, 5825, 174, 1,	/* * 10000**59 */
674 	 /* 65536**50 =  */ 7376, 6387, 2911, 6461, 3747, 7480, 1690, 198,
675 	8866, 6135, 6501, 7289, 4024, 1181, 2859, 3078,
676 	5846, 145, 9514, 5757, 951, 46, 3083, 523,
677 	3356, 8036, 3650, 4119, 165, 8888, 445, 3324,
678 	5934, 9910, 4292, 2907, 1554, 87, 4322, 1521,
679 	3207, 8176, 7237, 6403, 8117, 6257, 6039, 9081,
680 	2315, 5832, 1447, 7797, 2125, 7907, 9851, 7407,
681 	8542, 2879, 1443, 6680, 6,	/* * 10000**60 */
682 	 /* 65536**51 =  */ 3536, 6771, 7158, 7177, 5736, 3840, 4863, 7208,
683 	3474, 1464, 9748, 4512, 4637, 4392, 5166, 8545,
684 	3629, 1034, 458, 3103, 2471, 892, 7790, 5532,
685 	2245, 9290, 9066, 6709, 436, 5052, 1768, 4586,
686 	2408, 651, 5462, 1286, 1998, 1818, 7163, 8580,
687 	3922, 3354, 7616, 4441, 7679, 1951, 2915, 1997,
688 	5357, 1129, 8814, 3678, 5099, 7083, 6956, 9716,
689 	7060, 4129, 7321, 9938, 6994, 43,	/* * 10000**61 */
690 	 /* 65536**52 =  */ 5296, 7429, 1064, 8787, 1535, 5836, 6737, 5360,
691 	9305, 7475, 4524, 2317, 8, 4504, 7762, 8978,
692 	6147, 8012, 2266, 1210, 9792, 4307, 1287, 6205,
693 	4579, 4156, 260, 445, 7670, 733, 757, 9686,
694 	743, 9720, 1899, 5092, 9359, 7542, 6283, 5824,
695 	8426, 3452, 4159, 5290, 53, 1064, 231, 4497,
696 	9441, 5252, 1706, 9172, 2173, 4907, 4838, 3367,
697 	7839, 4418, 6120, 4749, 3918, 3890, 286,	/* * 10000**62 */
698 	 /* 65536**53 =  */ 8656, 1651, 8994, 1809, 5347, 8161, 4279, 7115,
699 	7611, 2584, 3858, 6565, 9475, 4197, 9949, 3079,
700 	8635, 4722, 7087, 3415, 6443, 7725, 3064, 9317,
701 	9, 7629, 6599, 5226, 4036, 8154, 5560, 6657,
702 	6726, 4795, 6565, 1763, 4796, 3850, 2121, 2845,
703 	4508, 5496, 6852, 2698, 8079, 654, 5789, 6906,
704 	4847, 6947, 8841, 7375, 9838, 9398, 5327, 1421,
705 	8773, 9423, 9278, 574, 1175, 720, 8792, 1876,
706 	/* * 10000**63 */
707 	 /* 65536**54 =  */ 9616, 6663, 1609, 3568, 2853, 4339, 2031, 6688,
708 	1127, 4908, 4827, 9125, 6626, 6691, 5175, 548,
709 	3545, 7584, 4583, 1888, 833, 7827, 2934, 8997,
710 	885, 4209, 2061, 4388, 7549, 6997, 3600, 9595,
711 	8766, 9203, 5268, 2995, 2214, 5032, 7090, 3822,
712 	4934, 5401, 8693, 1036, 3030, 3492, 2195, 9555,
713 	8254, 361, 9307, 5944, 1506, 1807, 1869, 1573,
714 	6644, 3223, 4768, 8474, 8567, 3620, 7231, 3155,
715 	2300, 1,		/* * 10000**65 */
716 	 /* 65536**55 =  */ 4176, 9387, 1096, 2997, 7592, 9403, 2053, 8081,
717 	2903, 8078, 4437, 7637, 1340, 4806, 2654, 7647,
718 	8714, 8256, 1192, 2008, 3864, 5732, 3919, 6625,
719 	8324, 6829, 7280, 5477, 22, 4868, 5460, 1517,
720 	1460, 5263, 3966, 4850, 6335, 1663, 3219, 5060,
721 	9676, 2273, 9847, 2269, 875, 1570, 4407, 867,
722 	6765, 2595, 5923, 6978, 6176, 3425, 8627, 377,
723 	1494, 6071, 6774, 3313, 2450, 6470, 4545, 3471,
724 	3481, 611, 8,		/* * 10000**66 */
725 	 /* 65536**56 =  */ 8336, 3799, 8977, 8580, 8953, 4764, 7036, 9876,
726 	3968, 8838, 6173, 7515, 8292, 4802, 4041, 1188,
727 	821, 2329, 3024, 4105, 4264, 7676, 3151, 1687,
728 	5084, 9900, 6839, 8386, 7690, 9395, 8462, 3897,
729 	2505, 5537, 268, 5595, 2347, 7888, 1286, 3257,
730 	9499, 6743, 7894, 5718, 8876, 7255, 7441, 8594,
731 	6724, 255, 6739, 9026, 6070, 1279, 1522, 3612,
732 	3260, 8847, 651, 5166, 4916, 3978, 3523, 5246,
733 	3566, 5311, 8294, 52,	/* * 10000**67 */
734 	 /* 65536**57 =  */ 8096, 5894, 1574, 7714, 43, 2184, 2523, 9650,
735 	1575, 3179, 1651, 3501, 3766, 8219, 2451, 3254,
736 	2844, 8725, 6127, 5099, 2408, 2283, 4244, 9887,
737 	6081, 9719, 5587, 9722, 6802, 1122, 7208, 9254,
738 	3224, 9251, 9936, 5679, 9659, 3352, 992, 9185,
739 	7809, 1502, 5381, 6586, 5014, 1853, 928, 5154,
740 	390, 5752, 8779, 2100, 2677, 330, 4178, 6007,
741 	1032, 8359, 1917, 3248, 8832, 4428, 9401, 4946,
742 	5758, 5069, 392, 2231, 346,	/* * 10000**68 */
743 	 /* 65536**58 =  */ 9456, 2241, 2296, 5023, 8603, 910, 1641, 8936,
744 	2443, 9272, 770, 2358, 1521, 5067, 2602, 212,
745 	5711, 240, 6254, 8223, 4108, 4472, 9747, 2246,
746 	9214, 4242, 3330, 7613, 9589, 5975, 845, 7383,
747 	8715, 4670, 6325, 4066, 9448, 9976, 3685, 4663,
748 	819, 6255, 9064, 5361, 669, 1072, 9555, 8626,
749 	2817, 5631, 8240, 3137, 3640, 4425, 1572, 2133,
750 	2522, 2191, 7294, 3496, 5239, 1291, 2961, 2669,
751 	8708, 9722, 3335, 3388, 77, 2269,	/* * 10000**69 */
752 	 /* 65536**59 =  */ 8416, 8146, 5348, 2376, 9128, 4143, 545, 451,
753 	3012, 5808, 3486, 8940, 5709, 881, 7880, 687,
754 	7487, 6067, 3720, 3514, 5782, 3919, 8702, 7736,
755 	3429, 4098, 2686, 7394, 4598, 447, 7084, 7829,
756 	4625, 239, 5811, 830, 779, 9057, 5544, 8524,
757 	4545, 3050, 9297, 7901, 8723, 8979, 3505, 6156,
758 	1449, 1683, 3545, 437, 1604, 657, 1594, 8593,
759 	5771, 5905, 3944, 1659, 6020, 1312, 560, 4990,
760 	4981, 8062, 6279, 7830, 8477, 1690, 4870, 1,
761 	/* * 10000**71 */
762 	 /* 65536**60 =  */ 976, 1411, 9919, 8589, 8182, 5470, 4277, 310,
763 	7388, 2827, 6561, 4689, 3615, 4636, 9457, 4874,
764 	2539, 5979, 3685, 7887, 2183, 3479, 9959, 3527,
765 	3648, 9005, 6554, 789, 2987, 4730, 9956, 7769,
766 	5312, 3419, 1265, 2963, 7987, 4657, 940, 5203,
767 	6986, 4591, 8183, 866, 2314, 4916, 2530, 2592,
768 	2010, 6588, 6150, 2465, 2610, 7664, 8690, 1294,
769 	4572, 7906, 2686, 75, 7595, 2685, 8762, 8310,
770 	7518, 3878, 3382, 8035, 9990, 1399, 1401, 7453,
771 	9,			/* * 10000**72 */
772 	 /* 65536**61 =  */ 3136, 7692, 831, 3710, 1847, 5547, 3325, 4193,
773 	2002, 8690, 227, 1304, 3374, 8590, 4336, 4444,
774 	7852, 6386, 9345, 6585, 6778, 4055, 5825, 741,
775 	8449, 5589, 1961, 862, 1207, 4856, 7416, 4434,
776 	8153, 2401, 5450, 1460, 5451, 3497, 4365, 9971,
777 	8594, 1562, 1180, 7807, 5984, 141, 8299, 5895,
778 	4348, 4342, 9576, 6548, 5118, 5010, 8068, 539,
779 	9078, 7579, 1511, 2808, 6413, 3934, 4033, 1584,
780 	4114, 7883, 8171, 3926, 7300, 339, 5111, 8990,
781 	8668, 63,		/* * 10000**73 */
782 	 /* 65536**62 =  */ 896, 3464, 828, 4011, 9306, 298, 3554, 4242,
783 	553, 963, 3624, 437, 7010, 6352, 393, 406,
784 	7799, 4357, 5776, 5807, 6169, 2904, 3779, 353,
785 	8524, 6075, 2729, 4887, 7602, 726, 6801, 5228,
786 	4071, 5370, 6940, 8278, 6307, 5116, 7561, 8064,
787 	1732, 3560, 2722, 7286, 8588, 9797, 4191, 9108,
788 	9166, 5810, 1194, 2488, 6167, 8905, 7284, 6781,
789 	9345, 6837, 4571, 4995, 771, 654, 2474, 5457,
790 	5487, 7250, 6320, 7890, 8534, 4547, 6722, 2135,
791 	4968, 5580, 418,	/* * 10000**74 */
792 	 /* 65536**63 =  */ 256, 2576, 6510, 324, 4303, 718, 6903, 7003,
793 	9210, 4794, 8775, 2982, 226, 613, 7281, 195,
794 	7925, 1463, 4495, 5408, 9644, 6976, 9579, 8975,
795 	1179, 7063, 7562, 2320, 6701, 8959, 5098, 6779,
796 	1322, 5003, 5035, 2493, 9807, 3514, 1228, 1859,
797 	1205, 9516, 2323, 3137, 919, 2479, 5587, 9360,
798 	2668, 4236, 8066, 1396, 6818, 8497, 2587, 7358,
799 	8364, 879, 9869, 2280, 994, 5600, 350, 6166,
800 	1796, 1963, 5037, 463, 5936, 8125, 2796, 3416,
801 	6844, 3439, 620, 2743,	/* * 10000**75 */
802 	 /* 65536**64 =  */ 7216, 2413, 6242, 6329, 3535, 3048, 9716, 3847,
803 	2459, 9947, 9823, 5862, 684, 5051, 1633, 7237,
804 	4082, 1105, 3913, 8147, 4628, 2342, 5068, 8381,
805 	5768, 8500, 9520, 3082, 1945, 941, 1246, 1960,
806 	3022, 5276, 6548, 4248, 7893, 7776, 1243, 9474,
807 	3063, 8474, 2492, 1662, 8144, 9768, 5878, 3576,
808 	1393, 7987, 1138, 1120, 3602, 4075, 7322, 847,
809 	1327, 963, 550, 6758, 7732, 8115, 4300, 7273,
810 	3065, 8942, 7697, 6179, 4733, 8902, 1907, 9305,
811 	772, 3159, 4862, 9313, 7976, 1,	/* * 10000**77 */
812 	 /* 65536**65 =  */ 7776, 5658, 1530, 8253, 1241, 6899, 7753, 668,
813 	8242, 2709, 5318, 6414, 5047, 6822, 3390, 4737,
814 	5381, 4036, 9612, 7436, 4002, 5647, 1799, 431,
815 	6577, 3806, 8429, 4347, 7724, 2124, 4024, 8726,
816 	2637, 7742, 4306, 9844, 3491, 9666, 2213, 6215,
817 	8857, 2143, 1249, 7169, 6077, 9021, 4628, 5264,
818 	5087, 5163, 2312, 7783, 8012, 2806, 1300, 6980,
819 	1827, 9865, 1111, 5893, 8641, 5316, 7987, 1513,
820 	5507, 3003, 9196, 7392, 2387, 2494, 5495, 4983,
821 	4774, 3289, 6735, 8633, 6172, 7813, 11,	/* * 10000**78 */
822 	 /* 65536**66 =  */ 7936, 3648, 7165, 8638, 4263, 1002, 5822, 8862,
823 	2094, 1039, 8207, 2757, 2230, 9672, 1751, 6253,
824 	262, 8564, 8485, 8691, 3810, 8024, 6274, 7809,
825 	3097, 3119, 7891, 234, 8558, 9086, 788, 3509,
826 	5621, 6999, 8755, 4608, 692, 3861, 4517, 749,
827 	3084, 1697, 8514, 5770, 9255, 86, 9732, 1839,
828 	6133, 5709, 3071, 1843, 5440, 6528, 5194, 9801,
829 	16, 4618, 5148, 935, 5197, 6009, 876, 8315,
830 	6672, 699, 8740, 2380, 2882, 2432, 6666, 1901,
831 	1524, 9194, 6517, 6428, 4773, 3222, 2103, 77,
832 	/* * 10000**79 */
833 	 /* 65536**67 =  */ 3696, 7337, 9352, 6926, 6582, 5015, 7161, 8187,
834 	465, 5633, 762, 6538, 3353, 8808, 6923, 8089,
835 	1412, 2025, 9085, 8988, 9122, 5838, 5452, 1746,
836 	6173, 7085, 5018, 7140, 8626, 6181, 1919, 994,
837 	853, 3304, 3552, 7269, 1116, 9034, 1415, 6069,
838 	7935, 4803, 4627, 8518, 3499, 6753, 6921, 4483,
839 	4346, 5218, 8474, 2977, 7920, 4660, 6769, 2379,
840 	2811, 5359, 9592, 9900, 6722, 9883, 8919, 7584,
841 	685, 3395, 9225, 2958, 355, 2441, 8916, 7623,
842 	9326, 7972, 8366, 8123, 5458, 8276, 3326, 56,
843 	506,			/* * 10000**80 */
844 	 /* 65536**68 =  */ 1056, 1854, 758, 3630, 3348, 6180, 6166, 165,
845 	7899, 7340, 5348, 9365, 5055, 3066, 3454, 6080,
846 	9848, 9658, 7831, 7108, 8301, 8955, 537, 1590,
847 	5174, 3016, 6084, 9930, 331, 4552, 4097, 5364,
848 	8723, 6534, 5525, 4464, 5816, 9542, 2645, 7263,
849 	7934, 1414, 6554, 5974, 6290, 7544, 8914, 3249,
850 	8840, 5332, 6263, 6210, 4635, 9666, 3728, 4508,
851 	7291, 5847, 6434, 9265, 7878, 6347, 357, 3482,
852 	1868, 9214, 1849, 5947, 4671, 5704, 4973, 9361,
853 	8699, 4115, 6427, 3760, 8728, 1710, 6977, 1818,
854 	1585, 3316,		/* * 10000**81 */
855 	 /* 65536**69 =  */ 6016, 664, 8439, 648, 8318, 4423, 5479, 3853,
856 	9949, 6006, 4636, 9693, 5857, 6510, 1440, 1518,
857 	8376, 1231, 5717, 1215, 924, 9286, 1524, 5765,
858 	3684, 485, 793, 2354, 7497, 2047, 824, 1957,
859 	5684, 9394, 9226, 8916, 6634, 2630, 5258, 5308,
860 	224, 9905, 2215, 5017, 595, 4810, 7348, 4887,
861 	9538, 5887, 6917, 9608, 61, 1356, 1558, 726,
862 	2522, 6777, 6947, 3209, 3331, 8627, 7952, 8695,
863 	4067, 948, 6450, 4715, 7631, 7959, 7912, 5090,
864 	9015, 7655, 6845, 7482, 2853, 3762, 5884, 173,
865 	6479, 7764, 1732, 2,	/* * 10000**83 */
866 0};				/* end powers of 65536 in base 10000 */
867 
868 unsigned short  _start_small_powers_two[] = {
869 	0, 1, 3, 6, 10, 15, 22, 30,
870 	39, 49, 60, 73, 87, 102, 118, 135,
871 	154, 174, 195, 217, 240, 265, 291, 318,
872 	346, 375, 406, 438, 471, 505, 540, 577,
873 	615, 654, 694, 735, 778, 822, 867, 913,
874 	960, 1009, 1059, 1110, 1162, 1215, 1270, 1326,
875 	1383, 1441, 1501, 1562, 1624, 1687, 1751, 1817,
876 	1884, 1952, 2021, 2091, 2163, 2236, 2310, 2385,
877 	2461, 2539, 2618, 2698, 2779, 2861, 2945,
878 0};				/* end _start_small_powers_two */
879