1#![cfg(feature = "radix")]
20#![doc(hidden)]
21
22use crate::bellerophon::BellerophonPowers;
23#[cfg(feature = "compact")]
24use crate::table_bellerophon_decimal::BASE10_POWERS;
25
26#[inline(always)]
28pub const fn bellerophon_powers(radix: u32) -> &'static BellerophonPowers {
29 match radix {
30 3 => &BASE3_POWERS,
31 5 => &BASE5_POWERS,
32 6 => &BASE6_POWERS,
33 7 => &BASE7_POWERS,
34 9 => &BASE9_POWERS,
35 #[cfg(feature = "compact")]
36 10 => &BASE10_POWERS,
37 11 => &BASE11_POWERS,
38 12 => &BASE12_POWERS,
39 13 => &BASE13_POWERS,
40 14 => &BASE14_POWERS,
41 15 => &BASE15_POWERS,
42 17 => &BASE17_POWERS,
43 18 => &BASE18_POWERS,
44 19 => &BASE19_POWERS,
45 20 => &BASE20_POWERS,
46 21 => &BASE21_POWERS,
47 22 => &BASE22_POWERS,
48 23 => &BASE23_POWERS,
49 24 => &BASE24_POWERS,
50 25 => &BASE25_POWERS,
51 26 => &BASE26_POWERS,
52 27 => &BASE27_POWERS,
53 28 => &BASE28_POWERS,
54 29 => &BASE29_POWERS,
55 30 => &BASE30_POWERS,
56 31 => &BASE31_POWERS,
57 33 => &BASE33_POWERS,
58 34 => &BASE34_POWERS,
59 35 => &BASE35_POWERS,
60 36 => &BASE36_POWERS,
61 _ => &INVALID_POWERS,
63 }
64}
65
66pub const INVALID_POWERS: BellerophonPowers = BellerophonPowers {
70 small: &[],
71 large: &[],
72 small_int: &[],
73 step: 0,
74 bias: 0,
75 log2: 0,
76 log2_shift: 0,
77};
78
79pub const BASE3_POWERS: BellerophonPowers = BellerophonPowers {
80 small: &BASE3_SMALL_MANTISSA,
81 large: &BASE3_LARGE_MANTISSA,
82 small_int: &BASE3_SMALL_INT_POWERS,
83 step: BASE3_STEP,
84 bias: BASE3_BIAS,
85 log2: BASE3_LOG2_MULT,
86 log2_shift: BASE3_LOG2_SHIFT,
87};
88
89pub const BASE5_POWERS: BellerophonPowers = BellerophonPowers {
90 small: &BASE5_SMALL_MANTISSA,
91 large: &BASE5_LARGE_MANTISSA,
92 small_int: &BASE5_SMALL_INT_POWERS,
93 step: BASE5_STEP,
94 bias: BASE5_BIAS,
95 log2: BASE5_LOG2_MULT,
96 log2_shift: BASE5_LOG2_SHIFT,
97};
98
99pub const BASE6_POWERS: BellerophonPowers = BellerophonPowers {
100 small: &BASE6_SMALL_MANTISSA,
101 large: &BASE6_LARGE_MANTISSA,
102 small_int: &BASE6_SMALL_INT_POWERS,
103 step: BASE6_STEP,
104 bias: BASE6_BIAS,
105 log2: BASE6_LOG2_MULT,
106 log2_shift: BASE6_LOG2_SHIFT,
107};
108
109pub const BASE7_POWERS: BellerophonPowers = BellerophonPowers {
110 small: &BASE7_SMALL_MANTISSA,
111 large: &BASE7_LARGE_MANTISSA,
112 small_int: &BASE7_SMALL_INT_POWERS,
113 step: BASE7_STEP,
114 bias: BASE7_BIAS,
115 log2: BASE7_LOG2_MULT,
116 log2_shift: BASE7_LOG2_SHIFT,
117};
118
119pub const BASE9_POWERS: BellerophonPowers = BellerophonPowers {
120 small: &BASE9_SMALL_MANTISSA,
121 large: &BASE9_LARGE_MANTISSA,
122 small_int: &BASE9_SMALL_INT_POWERS,
123 step: BASE9_STEP,
124 bias: BASE9_BIAS,
125 log2: BASE9_LOG2_MULT,
126 log2_shift: BASE9_LOG2_SHIFT,
127};
128
129pub const BASE11_POWERS: BellerophonPowers = BellerophonPowers {
130 small: &BASE11_SMALL_MANTISSA,
131 large: &BASE11_LARGE_MANTISSA,
132 small_int: &BASE11_SMALL_INT_POWERS,
133 step: BASE11_STEP,
134 bias: BASE11_BIAS,
135 log2: BASE11_LOG2_MULT,
136 log2_shift: BASE11_LOG2_SHIFT,
137};
138
139pub const BASE12_POWERS: BellerophonPowers = BellerophonPowers {
140 small: &BASE12_SMALL_MANTISSA,
141 large: &BASE12_LARGE_MANTISSA,
142 small_int: &BASE12_SMALL_INT_POWERS,
143 step: BASE12_STEP,
144 bias: BASE12_BIAS,
145 log2: BASE12_LOG2_MULT,
146 log2_shift: BASE12_LOG2_SHIFT,
147};
148
149pub const BASE13_POWERS: BellerophonPowers = BellerophonPowers {
150 small: &BASE13_SMALL_MANTISSA,
151 large: &BASE13_LARGE_MANTISSA,
152 small_int: &BASE13_SMALL_INT_POWERS,
153 step: BASE13_STEP,
154 bias: BASE13_BIAS,
155 log2: BASE13_LOG2_MULT,
156 log2_shift: BASE13_LOG2_SHIFT,
157};
158
159pub const BASE14_POWERS: BellerophonPowers = BellerophonPowers {
160 small: &BASE14_SMALL_MANTISSA,
161 large: &BASE14_LARGE_MANTISSA,
162 small_int: &BASE14_SMALL_INT_POWERS,
163 step: BASE14_STEP,
164 bias: BASE14_BIAS,
165 log2: BASE14_LOG2_MULT,
166 log2_shift: BASE14_LOG2_SHIFT,
167};
168
169pub const BASE15_POWERS: BellerophonPowers = BellerophonPowers {
170 small: &BASE15_SMALL_MANTISSA,
171 large: &BASE15_LARGE_MANTISSA,
172 small_int: &BASE15_SMALL_INT_POWERS,
173 step: BASE15_STEP,
174 bias: BASE15_BIAS,
175 log2: BASE15_LOG2_MULT,
176 log2_shift: BASE15_LOG2_SHIFT,
177};
178
179pub const BASE17_POWERS: BellerophonPowers = BellerophonPowers {
180 small: &BASE17_SMALL_MANTISSA,
181 large: &BASE17_LARGE_MANTISSA,
182 small_int: &BASE17_SMALL_INT_POWERS,
183 step: BASE17_STEP,
184 bias: BASE17_BIAS,
185 log2: BASE17_LOG2_MULT,
186 log2_shift: BASE17_LOG2_SHIFT,
187};
188
189pub const BASE18_POWERS: BellerophonPowers = BellerophonPowers {
190 small: &BASE18_SMALL_MANTISSA,
191 large: &BASE18_LARGE_MANTISSA,
192 small_int: &BASE18_SMALL_INT_POWERS,
193 step: BASE18_STEP,
194 bias: BASE18_BIAS,
195 log2: BASE18_LOG2_MULT,
196 log2_shift: BASE18_LOG2_SHIFT,
197};
198
199pub const BASE19_POWERS: BellerophonPowers = BellerophonPowers {
200 small: &BASE19_SMALL_MANTISSA,
201 large: &BASE19_LARGE_MANTISSA,
202 small_int: &BASE19_SMALL_INT_POWERS,
203 step: BASE19_STEP,
204 bias: BASE19_BIAS,
205 log2: BASE19_LOG2_MULT,
206 log2_shift: BASE19_LOG2_SHIFT,
207};
208
209pub const BASE20_POWERS: BellerophonPowers = BellerophonPowers {
210 small: &BASE20_SMALL_MANTISSA,
211 large: &BASE20_LARGE_MANTISSA,
212 small_int: &BASE20_SMALL_INT_POWERS,
213 step: BASE20_STEP,
214 bias: BASE20_BIAS,
215 log2: BASE20_LOG2_MULT,
216 log2_shift: BASE20_LOG2_SHIFT,
217};
218
219pub const BASE21_POWERS: BellerophonPowers = BellerophonPowers {
220 small: &BASE21_SMALL_MANTISSA,
221 large: &BASE21_LARGE_MANTISSA,
222 small_int: &BASE21_SMALL_INT_POWERS,
223 step: BASE21_STEP,
224 bias: BASE21_BIAS,
225 log2: BASE21_LOG2_MULT,
226 log2_shift: BASE21_LOG2_SHIFT,
227};
228
229pub const BASE22_POWERS: BellerophonPowers = BellerophonPowers {
230 small: &BASE22_SMALL_MANTISSA,
231 large: &BASE22_LARGE_MANTISSA,
232 small_int: &BASE22_SMALL_INT_POWERS,
233 step: BASE22_STEP,
234 bias: BASE22_BIAS,
235 log2: BASE22_LOG2_MULT,
236 log2_shift: BASE22_LOG2_SHIFT,
237};
238
239pub const BASE23_POWERS: BellerophonPowers = BellerophonPowers {
240 small: &BASE23_SMALL_MANTISSA,
241 large: &BASE23_LARGE_MANTISSA,
242 small_int: &BASE23_SMALL_INT_POWERS,
243 step: BASE23_STEP,
244 bias: BASE23_BIAS,
245 log2: BASE23_LOG2_MULT,
246 log2_shift: BASE23_LOG2_SHIFT,
247};
248
249pub const BASE24_POWERS: BellerophonPowers = BellerophonPowers {
250 small: &BASE24_SMALL_MANTISSA,
251 large: &BASE24_LARGE_MANTISSA,
252 small_int: &BASE24_SMALL_INT_POWERS,
253 step: BASE24_STEP,
254 bias: BASE24_BIAS,
255 log2: BASE24_LOG2_MULT,
256 log2_shift: BASE24_LOG2_SHIFT,
257};
258
259pub const BASE25_POWERS: BellerophonPowers = BellerophonPowers {
260 small: &BASE25_SMALL_MANTISSA,
261 large: &BASE25_LARGE_MANTISSA,
262 small_int: &BASE25_SMALL_INT_POWERS,
263 step: BASE25_STEP,
264 bias: BASE25_BIAS,
265 log2: BASE25_LOG2_MULT,
266 log2_shift: BASE25_LOG2_SHIFT,
267};
268
269pub const BASE26_POWERS: BellerophonPowers = BellerophonPowers {
270 small: &BASE26_SMALL_MANTISSA,
271 large: &BASE26_LARGE_MANTISSA,
272 small_int: &BASE26_SMALL_INT_POWERS,
273 step: BASE26_STEP,
274 bias: BASE26_BIAS,
275 log2: BASE26_LOG2_MULT,
276 log2_shift: BASE26_LOG2_SHIFT,
277};
278
279pub const BASE27_POWERS: BellerophonPowers = BellerophonPowers {
280 small: &BASE27_SMALL_MANTISSA,
281 large: &BASE27_LARGE_MANTISSA,
282 small_int: &BASE27_SMALL_INT_POWERS,
283 step: BASE27_STEP,
284 bias: BASE27_BIAS,
285 log2: BASE27_LOG2_MULT,
286 log2_shift: BASE27_LOG2_SHIFT,
287};
288
289pub const BASE28_POWERS: BellerophonPowers = BellerophonPowers {
290 small: &BASE28_SMALL_MANTISSA,
291 large: &BASE28_LARGE_MANTISSA,
292 small_int: &BASE28_SMALL_INT_POWERS,
293 step: BASE28_STEP,
294 bias: BASE28_BIAS,
295 log2: BASE28_LOG2_MULT,
296 log2_shift: BASE28_LOG2_SHIFT,
297};
298
299pub const BASE29_POWERS: BellerophonPowers = BellerophonPowers {
300 small: &BASE29_SMALL_MANTISSA,
301 large: &BASE29_LARGE_MANTISSA,
302 small_int: &BASE29_SMALL_INT_POWERS,
303 step: BASE29_STEP,
304 bias: BASE29_BIAS,
305 log2: BASE29_LOG2_MULT,
306 log2_shift: BASE29_LOG2_SHIFT,
307};
308
309pub const BASE30_POWERS: BellerophonPowers = BellerophonPowers {
310 small: &BASE30_SMALL_MANTISSA,
311 large: &BASE30_LARGE_MANTISSA,
312 small_int: &BASE30_SMALL_INT_POWERS,
313 step: BASE30_STEP,
314 bias: BASE30_BIAS,
315 log2: BASE30_LOG2_MULT,
316 log2_shift: BASE30_LOG2_SHIFT,
317};
318
319pub const BASE31_POWERS: BellerophonPowers = BellerophonPowers {
320 small: &BASE31_SMALL_MANTISSA,
321 large: &BASE31_LARGE_MANTISSA,
322 small_int: &BASE31_SMALL_INT_POWERS,
323 step: BASE31_STEP,
324 bias: BASE31_BIAS,
325 log2: BASE31_LOG2_MULT,
326 log2_shift: BASE31_LOG2_SHIFT,
327};
328
329pub const BASE33_POWERS: BellerophonPowers = BellerophonPowers {
330 small: &BASE33_SMALL_MANTISSA,
331 large: &BASE33_LARGE_MANTISSA,
332 small_int: &BASE33_SMALL_INT_POWERS,
333 step: BASE33_STEP,
334 bias: BASE33_BIAS,
335 log2: BASE33_LOG2_MULT,
336 log2_shift: BASE33_LOG2_SHIFT,
337};
338
339pub const BASE34_POWERS: BellerophonPowers = BellerophonPowers {
340 small: &BASE34_SMALL_MANTISSA,
341 large: &BASE34_LARGE_MANTISSA,
342 small_int: &BASE34_SMALL_INT_POWERS,
343 step: BASE34_STEP,
344 bias: BASE34_BIAS,
345 log2: BASE34_LOG2_MULT,
346 log2_shift: BASE34_LOG2_SHIFT,
347};
348
349pub const BASE35_POWERS: BellerophonPowers = BellerophonPowers {
350 small: &BASE35_SMALL_MANTISSA,
351 large: &BASE35_LARGE_MANTISSA,
352 small_int: &BASE35_SMALL_INT_POWERS,
353 step: BASE35_STEP,
354 bias: BASE35_BIAS,
355 log2: BASE35_LOG2_MULT,
356 log2_shift: BASE35_LOG2_SHIFT,
357};
358
359pub const BASE36_POWERS: BellerophonPowers = BellerophonPowers {
360 small: &BASE36_SMALL_MANTISSA,
361 large: &BASE36_LARGE_MANTISSA,
362 small_int: &BASE36_SMALL_INT_POWERS,
363 step: BASE36_STEP,
364 bias: BASE36_BIAS,
365 log2: BASE36_LOG2_MULT,
366 log2_shift: BASE36_LOG2_SHIFT,
367};
368
369const BASE3_SMALL_MANTISSA: [u64; 20] = [
375 9223372036854775808, 13835058055282163712, 10376293541461622784, 15564440312192434176, 11673330234144325632, 17509995351216488448, 13132496513412366336, 9849372385059274752, 14774058577588912128, 11080543933191684096, 16620815899787526144, 12465611924840644608, 9349208943630483456, 14023813415445725184, 10517860061584293888, 15776790092376440832, 11832592569282330624, 17748888853923495936, 13311666640442621952, 9983749980331966464, ];
396const BASE3_LARGE_MANTISSA: [u64; 69] = [
397 16362187946641408838, 13283319235448605538, 10783800460320302292, 17509230984627012859, 14214523479040558273, 11539780240125690827, 9368342750761260524, 15211008194170796346, 12348756681875770872, 10025094302862174179, 16277349755993950451, 13214445025385558299, 10727886292707736997, 17418445358572088840, 14140820960965941427, 11479946305982273645, 9319767752666157840, 15132138887857638912, 12284728192712064755, 9973114038089604413, 16192951452641260116, 13145927929137795237, 10672262040895386089, 17328130457353990660, 14067500591556283265, 11420422611687500217, 9271444616666914905, 15053678520084183432, 12221031692227883264, 9921403291771844100, 16108990755761097026, 13077766095064811873, 10616926201665464118, 17238283840257358043, 13994560389365007134, 11361207548643088241, 9223372036854775808, 14975624970497949696, 12157665459056928801, 9869960666451650558, 16025465396357318008, 13009957681126887596, 10561877279594392463, 17148903079221976570, 13921998383219366688, 11302299516591361707, 18351097428184282358, 14897976129740516999, 12094627780758213915, 9818784771917617934, 15942373117198559022, 12942500854835305460, 10507113787012386253, 17059985758777160561, 13849812612167175924, 11243696923572004730, 18255946711954919292, 14820729899390519784, 12031916953769783440, 9767874225166607426, 15859711672757234610, 12875393793202830082, 10452634243963250834, 16971529475976476179, 13778001125423815423, 11185398185879039609, 18161289353620602647, 14743884191906938838, 11969531283362676572, ];
467const BASE3_SMALL_INT_POWERS: [u64; 20] = [
468 1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049, 177147, 531441, 1594323, 4782969,
469 14348907, 43046721, 129140163, 387420489, 1162261467,
470];
471const BASE3_STEP: i32 = 20;
472const BASE3_BIAS: i32 = 720;
473const BASE3_LOG2_MULT: i64 = 6807362106;
474const BASE3_LOG2_SHIFT: i32 = 32;
475
476const BASE5_SMALL_MANTISSA: [u64; 14] = [
479 9223372036854775808, 11529215046068469760, 14411518807585587200, 18014398509481984000, 11258999068426240000, 14073748835532800000, 17592186044416000000, 10995116277760000000, 13743895347200000000, 17179869184000000000, 10737418240000000000, 13421772800000000000, 16777216000000000000, 10485760000000000000, ];
494const BASE5_LARGE_MANTISSA: [u64; 68] = [
495 15492890949478498119, 11008361120075348168, 15643822052986917253, 11115604119273511155, 15796223521069679172, 11223891875338892399, 15950109677957715915, 11333234566249726012, 16105494987428025427, 11443642469137689536, 16262394054163123565, 11555125961253852697, 16420821625123739831, 11667695520944036383, 16580792590934885855, 11781361728633673532, 16742321987285426889, 11896135267822264502, 16905424996341287883, 12012026926087520367, 17070116948172426941, 12129047596099288555, 17236413322193710308, 12247208276643356092, 17404329748619824289, 12366520073655226703, 17573882009934360870, 12486994201263968925, 17745086042373215101, 12608641982846233347, 17917957937422433684, 12731474852090538039, 18092513943330655534, 12855504354071922204, 18268770466636286477, 12980742146337069071, 9223372036854775808, 13107200000000000000, 9313225746154785156, 13234889800848442797, 9403954806578300063, 13363823550460978230, 9495567745759798747, 13494013367335069727, 9588073174409622174, 13625471488026082303, 9681479787123295682, 13758210268297397763, 9775796363198734982, 13892242184281734271, 9871031767461413346, 14027579833653779454, 9967194951097567535, 14164235936814247246, 10064294952495520794, 14302223338085469768, 10162340898095201970, 14441555006918636608, 10261342003245940623, 14582244039112794984, 10361307573072618726, 14724303658045725350, 10462247003350260393, 14867747215916808149, 10564169781387141817, 15012588195001998509, 10667085486916504429, 15158840208921026870, ];
564const BASE5_SMALL_INT_POWERS: [u64; 14] = [
565 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625,
566 1220703125,
567];
568const BASE5_STEP: i32 = 14;
569const BASE5_BIAS: i32 = 504;
570const BASE5_LOG2_MULT: i64 = 152170;
571const BASE5_LOG2_SHIFT: i32 = 16;
572
573const BASE6_SMALL_MANTISSA: [u64; 12] = [
576 9223372036854775808, 13835058055282163712, 10376293541461622784, 15564440312192434176, 11673330234144325632, 17509995351216488448, 13132496513412366336, 9849372385059274752, 14774058577588912128, 11080543933191684096, 16620815899787526144, 12465611924840644608, ];
589const BASE6_LARGE_MANTISSA: [u64; 71] = [
590 11172994339528645078, 11325430459582219446, 11479946305982273645, 11636570252986002899, 11795331061968106016, 11956257886702331980, 12119380278715084095, 12284728192712064755, 12452331992078957377, 12622222454457155586, 12794430777395563548, 12968988584079505325, 13145927929137795237, 13325281304529035642, 13507081645508223020, 13691362336674758052, 13878157218102970303, 14067500591556283265, 14259427226786160917, 14453972367916992462, 14651171739918087751, 14851061555163971849, 15053678520084183432, 15259059841903798156, 15467243235475914756, 15678266930207358578, 15892169677078874302, 16108990755761097026, 16328769981827608423, 16551547714066402526, 16777364861891103792, 17006262892853298360, 17238283840257358043, 17473470310879155380, 17711865492790087155, 17953513163287843146, 18198457696935376453, 9223372036854775808, 9349208943630483456, 9476762676643233792, 9606056659007943744, 9737114633407288801, 9869960666451650558, 10004619153098548172, 10141114821132365302, 10279472735705195138, 10419718303939637392, 10561877279594392463, 10705975767793509530, 10852040229820157048, 11000097487975795902, 11150174730505647564, 11302299516591361707, 11456499781411800112, 11612803841272866179, 11771240398807322073, 11931838548245548344, 12094627780758213915, 12259637989871837542, 12426899476958235198, 12596442956798861450, 12768299563225066619, 12942500854835305460, 13119078820790347231, 13298065886687551351, 13479494920515287357, 13663399238688592583, 13849812612167175924, 14038769272656891137, 14230303918895818486, 14424451723026109070, ];
662const BASE6_SMALL_INT_POWERS: [u64; 12] =
663 [1, 6, 36, 216, 1296, 7776, 46656, 279936, 1679616, 10077696, 60466176, 362797056];
664const BASE6_STEP: i32 = 12;
665const BASE6_BIAS: i32 = 444;
666const BASE6_LOG2_MULT: i64 = 11102329402;
667const BASE6_LOG2_SHIFT: i32 = 32;
668
669const BASE7_SMALL_MANTISSA: [u64; 11] = [
672 9223372036854775808, 16140901064495857664, 14123288431433875456, 12357877377504641024, 10813142705316560896, 9461499867151990784, 16557624767515983872, 14487921671576485888, 12676931462629425152, 11092315029800747008, 9705775651075653632, ];
684const BASE7_LARGE_MANTISSA: [u64; 71] = [
685 12225664820028455743, 11256958357801915874, 10365007820408367996, 9543731415037814164, 17575058485347314089, 16182490230010039076, 14900262793588950961, 13719633267955538670, 12632551493533408059, 11631605169031861852, 10709969310436274791, 9861359714639799269, 18159980220813419398, 16721065408999761282, 15396163707909854531, 14176241233598532153, 13052979906282242272, 12018720733250263776, 11066411585781870352, 10189559113984709052, 9382184471684205580, 17277565098945522629, 15908568875896010079, 14648045730389016129, 13487400745686688174, 12418720027433908743, 11434716742520575143, 10528681433580712628, 9694436270346269630, 17852585851834022264, 16438027581449061548, 15135552519453149331, 13936279698645574929, 12832031839555071753, 11815279593402393441, 10879090202998704701, 10017080231522506848, 9223372036854775808, 16985107389382393856, 15639284194331952196, 14400097950748064600, 13259099228230139701, 12208508091080056405, 11241161050565762112, 10350462220447909415, 9530338342721952463, 17550394753834620135, 16159780741186857313, 14879352702091044991, 13700379997665963732, 12614823765422770599, 11615282106028126090, 10694939613220642893, 9847520902748803399, 18134495646931893353, 16697600117649658875, 15374557700263623520, 14156347188413069088, 13034662175384360011, 12001854416615353596, 11050881679899153397, 10175259727702178785, 9369018104186475301, 17253318850937371954, 15886243791070066478, 14627489584451796037, 13468473375910191470, 12401292376951646786, 11418669980349265042, 10513906144367477972, 9680831708316613461, ];
757const BASE7_SMALL_INT_POWERS: [u64; 11] =
758 [1, 7, 49, 343, 2401, 16807, 117649, 823543, 5764801, 40353607, 282475249];
759const BASE7_STEP: i32 = 11;
760const BASE7_BIAS: i32 = 407;
761const BASE7_LOG2_MULT: i64 = 183983;
762const BASE7_LOG2_SHIFT: i32 = 16;
763
764const BASE9_SMALL_MANTISSA: [u64; 10] = [
767 9223372036854775808, 10376293541461622784, 11673330234144325632, 13132496513412366336, 14774058577588912128, 16620815899787526144, 9349208943630483456, 10517860061584293888, 11832592569282330624, 13311666640442621952, ];
778const BASE9_LARGE_MANTISSA: [u64; 69] = [
779 16362187946641408838, 13283319235448605538, 10783800460320302292, 17509230984627012859, 14214523479040558273, 11539780240125690827, 9368342750761260524, 15211008194170796346, 12348756681875770872, 10025094302862174179, 16277349755993950451, 13214445025385558299, 10727886292707736997, 17418445358572088840, 14140820960965941427, 11479946305982273645, 9319767752666157840, 15132138887857638912, 12284728192712064755, 9973114038089604413, 16192951452641260116, 13145927929137795237, 10672262040895386089, 17328130457353990660, 14067500591556283265, 11420422611687500217, 9271444616666914905, 15053678520084183432, 12221031692227883264, 9921403291771844100, 16108990755761097026, 13077766095064811873, 10616926201665464118, 17238283840257358043, 13994560389365007134, 11361207548643088241, 9223372036854775808, 14975624970497949696, 12157665459056928801, 9869960666451650558, 16025465396357318008, 13009957681126887596, 10561877279594392463, 17148903079221976570, 13921998383219366688, 11302299516591361707, 18351097428184282358, 14897976129740516999, 12094627780758213915, 9818784771917617934, 15942373117198559022, 12942500854835305460, 10507113787012386253, 17059985758777160561, 13849812612167175924, 11243696923572004730, 18255946711954919292, 14820729899390519784, 12031916953769783440, 9767874225166607426, 15859711672757234610, 12875393793202830082, 10452634243963250834, 16971529475976476179, 13778001125423815423, 11185398185879039609, 18161289353620602647, 14743884191906938838, 11969531283362676572, ];
849const BASE9_SMALL_INT_POWERS: [u64; 10] =
850 [1, 9, 81, 729, 6561, 59049, 531441, 4782969, 43046721, 387420489];
851const BASE9_STEP: i32 = 10;
852const BASE9_BIAS: i32 = 360;
853const BASE9_LOG2_MULT: i64 = 13614724212;
854const BASE9_LOG2_SHIFT: i32 = 32;
855
856const BASE11_SMALL_MANTISSA: [u64; 9] = [
859 9223372036854775808, 12682136550675316736, 17437937757178560512, 11988582208060260352, 16484300536082857984, 11332956618556964864, 15582815350515826688, 10713185553479630848, 14730630136034492416, ];
869const BASE11_LARGE_MANTISSA: [u64; 70] = [
870 9282833781626869722, 10192597509046958613, 11191522591630754840, 12288347284174558846, 13492666233761944748, 14815014410453217040, 16266959263598494876, 17861201909926315464, 9805844119283264859, 10766865452458105492, 11822071640254585128, 12980693265318349774, 14252865553152120313, 15649717031600177225, 17183466879401827195, 9433765907692842627, 10358321731667433590, 11373488609595385666, 12488146873940825498, 13712047173770907127, 15055895770097238115, 16531448190583591098, 18151612062879235750, 9965280013064351107, 10941926854184612877, 12014289927163860584, 13191749897208336388, 14484606781216284322, 15904170048801172427, 17462857553661839031, 9587152080358667750, 10526740509619734750, 11558413262671798860, 12691195059726361470, 13934995088312952370, 15300693685460773821, 16800237515163846269, 9223372036854775808, 10127308218523713536, 11119834626984462962, 12209633543621683835, 13406238156435497652, 14720115953107913248, 16162760287003157808, 17746790917089950882, 9743032200637278641, 10697897654413860244, 11746344656115154606, 12897544661339799796, 14161567973799797658, 15549471836891389165, 17073397158676562691, 9373337358196117359, 10291970884763903381, 11300635050781198339, 12408153305213523269, 13624213838764580644, 14959454332853289890, 16425555014410689631, 18035340830508227153, 9901446818303059920, 10871837689903097542, 11937331677337075986, 13107249357401447067, 14391824769622635037, 15802294940132787091, 17350998179329134782, 9525741006595626773, 10459310846201225147, 11484375157976259923, ];
941const BASE11_SMALL_INT_POWERS: [u64; 9] =
942 [1, 11, 121, 1331, 14641, 161051, 1771561, 19487171, 214358881];
943const BASE11_STEP: i32 = 9;
944const BASE11_BIAS: i32 = 333;
945const BASE11_LOG2_MULT: i64 = 226718;
946const BASE11_LOG2_SHIFT: i32 = 16;
947
948const BASE12_SMALL_MANTISSA: [u64; 9] = [
951 9223372036854775808, 13835058055282163712, 10376293541461622784, 15564440312192434176, 11673330234144325632, 17509995351216488448, 13132496513412366336, 9849372385059274752, 14774058577588912128, ];
961const BASE12_LARGE_MANTISSA: [u64; 68] = [
962 12794430777395563548, 15370653136686821126, 9232805349408163458, 11091876690210014731, 13325281304529035642, 16008393061343079134, 9615881366772943927, 11552086971569327107, 13878157218102970303, 16672593293696335722, 10014851495355986817, 12031391722600823274, 14453972367916992462, 17364351691754770668, 10430375193750279268, 12530583187169601247, 15053678520084183432, 18084811664478575592, 10863139281980340679, 13050486479932803075, 15678266930207358578, 9417582030861555141, 11313859076748534537, 13591960950173425616, 16328769981827608423, 9808324571298608904, 11783279573783601017, 14155901602220618825, 17006262892853298360, 10215279312745101062, 12272176679245716810, 14743240574804287352, 17711865492790087155, 10639118911577981124, 12781358492223474271, 15354948681789223882, 9223372036854775808, 11080543933191684096, 13311666640442621952, 15992037016835457024, 9606056659007943744, 11540284009964194135, 13863977671394362375, 16655558624637160317, 10004619153098548172, 12019099047267988506, 14439204501182606065, 17346610241502516795, 10419718303939637392, 12517780479519279956, 15038297923484984581, 18066334108151547333, 10852040229820157048, 13037152578341684032, 15662248181121787524, 9407959928864140132, 11302299516591361707, 13578073815006577911, 16312086602830473207, 9798303241073980839, 11771240398807322073, 14141438279402131370, 16988887307951181138, 10204842190014742991, 12259637989871837542, 14728177157876426901, 17693768981840924725, 10628248744799039348, ];
1031const BASE12_SMALL_INT_POWERS: [u64; 9] =
1032 [1, 12, 144, 1728, 20736, 248832, 2985984, 35831808, 429981696];
1033const BASE12_STEP: i32 = 9;
1034const BASE12_BIAS: i32 = 324;
1035const BASE12_LOG2_MULT: i64 = 15397296698;
1036const BASE12_LOG2_SHIFT: i32 = 32;
1037
1038const BASE13_SMALL_MANTISSA: [u64; 8] = [
1041 9223372036854775808, 14987979559889010688, 12177733392409821184, 9894408381332979712, 16078413619666092032, 13063711065978699776, 10614265241107693568, 17248181016800002048, ];
1050const BASE13_LARGE_MANTISSA: [u64; 74] = [
1051 12711851154623003921, 9657300550123029827, 14673465379822171777, 11147555423761605318, 16937783776246970219, 12867777209673117558, 9775758889423702247, 14853452979012869128, 11284293521111612769, 17145545948207386966, 13025615884242430727, 9895670261906581517, 15035648341334079534, 11422708874734959378, 17355856571645749915, 13185390638896427802, 10017052490761162429, 15220078547640608376, 11562822058185475244, 17568746906366835671, 13347125221972482607, 10139923617799671626, 15406771010966328102, 11704653897376229735, 17784248595614306423, 13510843673109724761, 10264301906138736839, 15595753480598751694, 11848225473675019323, 18002393670774046392, 13676570326822204041, 10390205842913949994, 15787054046203585657, 11993558127037825287, 18223214556135190308, 13844329816115883890, 10517654142027727687, 15980701141999875583, 12140673459180707010, 9223372036854775808, 14014147076150001664, 10646665746930877456, 16176723550986364864, 12289593336790602348, 9336507724055083356, 14186047347943339851, 10777259833438283283, 16375150409219694755, 12440339894775512302, 9451031155744840189, 14360056182125959135, 10909455812579128852, 16576011210145081669, 12592935539554553092, 9566959354269653198, 14536199442736950948, 11043273333482082198, 16779335808980115413, 12747402952388364654, 9684309550774553205, 14714503311068774005, 11178732286295870598, 16985154427152329948, 12903765092750370582, 9803099187765169579, 14894994289558746218, 11315852805145679810, 17193497656791206265, 13062045201739390598, 9923345921700320715, 15077699205728270417, 11454655271125817073, 17404396465275275042, 13222266805534112801, ];
1126const BASE13_SMALL_INT_POWERS: [u64; 8] = [1, 13, 169, 2197, 28561, 371293, 4826809, 62748517];
1127const BASE13_STEP: i32 = 8;
1128const BASE13_BIAS: i32 = 312;
1129const BASE13_LOG2_MULT: i64 = 15893267571;
1130const BASE13_LOG2_SHIFT: i32 = 32;
1131
1132const BASE14_SMALL_MANTISSA: [u64; 8] = [
1135 9223372036854775808, 16140901064495857664, 14123288431433875456, 12357877377504641024, 10813142705316560896, 9461499867151990784, 16557624767515983872, 14487921671576485888, ];
1144const BASE14_LARGE_MANTISSA: [u64; 72] = [
1145 13636466802170654447, 9371223146631740442, 12880143300754023535, 17702928299982570560, 12165767999490239948, 16721065408999761282, 11491014312609104256, 15793659877858943182, 10853684694473876180, 14917691321465419740, 10251703482589146278, 14090306875260685218, 9683110137559136558, 13308811903980028150, 18292105715960495534, 12570661225733134820, 17277565098945522629, 11873450822826176619, 16319294256419936609, 11214910012329090474, 15414172280784786485, 10592894050889065017, 14559251360287507272, 10005377149705503250, 13751747178554400168, 9450445876917551117, 12989029846596759700, 17852585851834022264, 12268615337757900164, 16862422458582420498, 11588157397706317457, 15927176798452085633, 10945439903127358164, 15043802952525257461, 10338369644227094261, 14209423938610553080, 9764969507542378307, 13421322341453983785, 9223372036854775808, 12676931462629425152, 17423626702474969088, 11973826961285400900, 16457254800854930971, 11309718958523667683, 15544481077627229210, 10682444579695049354, 14682332800738954595, 10089960910324183248, 13868002115678253630, 9530338342721952463, 13098836900821174211, 18003508583233548621, 12372332129971187630, 17004974516675479989, 11686121713960805382, 16061822448435536582, 11037970794744924274, 15170980709914287138, 10425768466889213611, 14329547997401095751, 9847520902748803399, 13534783923074532648, 9301344858947275744, 12784100090075520076, 17570923086015569737, 12075051662586407952, 16596381640322157656, 11405329403461315009, 15675891482926176126, 10772752153475797540, 14806454750802381310, 10175259727702178785, ];
1218const BASE14_SMALL_INT_POWERS: [u64; 8] = [1, 14, 196, 2744, 38416, 537824, 7529536, 105413504];
1219const BASE14_STEP: i32 = 8;
1220const BASE14_BIAS: i32 = 304;
1221const BASE14_LOG2_MULT: i64 = 249519;
1222const BASE14_LOG2_SHIFT: i32 = 16;
1223
1224const BASE15_SMALL_MANTISSA: [u64; 8] = [
1227 9223372036854775808, 17293822569102704640, 16212958658533785600, 15199648742375424000, 14249670695976960000, 13359066277478400000, 12524124635136000000, 11741366845440000000, ];
1236const BASE15_LARGE_MANTISSA: [u64; 70] = [
1237 13601350414362439244, 16232381325359158633, 9686178043528474499, 11559862131178364723, 13795989697002596758, 16464671426007778306, 9824790070164184132, 11725287122380398084, 13993414324420480958, 16700285665596816319, 9965385675239368708, 11893079393347852255, 14193664155710441018, 16939271613521887687, 10107993244338750184, 12063272820543086702, 14396779620362065880, 17181677519910502131, 10252641569253028545, 12235901765210495847, 14602801726422706134, 17427552325363535592, 10399359853791807565, 12411001080313881072, 14811772068776803956, 17676945670836105047, 10548177719679705225, 12588606117573098524, 15023732837543702665, 17929907907659841510, 10699125212536839185, 12768752734601403407, 15238726826595631383, 18186490107708584674, 10852232807944894743, 12951477302144931748, 15456797442197584532, 9223372036854775808, 11007531417600000000, 13136816711425781250, 15677988711770840524, 9355361174851030653, 11165052395553650442, 13324808381590173768, 15902345292781888946, 9489239115822963265, 11324827544542942993, 13515490267263203164, 16129912481758560891, 9625032889090827484, 11486889122411397534, 13708900866211693796, 16360736223435182728, 9762769910772315950, 11651269848621662268, 13905079227116716745, 16594863120028599690, 9902477989317744010, 11818002910861417777, 14104064957457333009, 16832340440646942057, 10044185331124443731, 11987121971743813505, 14305898231507155361, 17073216130833033517, 10187920546231501512, 12158661175603789420, 14510619798445343328, 17317538822244368489, 10333712654095989060, ];
1308const BASE15_SMALL_INT_POWERS: [u64; 8] = [1, 15, 225, 3375, 50625, 759375, 11390625, 170859375];
1309const BASE15_STEP: i32 = 8;
1310const BASE15_BIAS: i32 = 296;
1311const BASE15_LOG2_MULT: i64 = 256042;
1312const BASE15_LOG2_SHIFT: i32 = 16;
1313
1314const BASE17_SMALL_MANTISSA: [u64; 8] = [
1317 9223372036854775808, 9799832789158199296, 10412322338480586752, 11063092484635623424, 11754535764925349888, 12489194250233184256, 13269768890872758272, 14099129446552305664, ];
1326const BASE17_LARGE_MANTISSA: [u64; 67] = [
1327 13138227451101932889, 10669358063439695630, 17328852299072967575, 14072501842077846052, 11428068326595325663, 9280563409615280245, 15073213554289220394, 12240731344920942400, 9940514895438007254, 16145087021687770276, 13111183760586542995, 10647396286743453217, 17293182638130712658, 14043535043777936273, 11404544822822581011, 9261460323937079649, 15042186893809203473, 12215535057871861844, 9920053367473418578, 16111854019870470980, 13084195736727816960, 10625479716106730764, 17257586399518441101, 14014627870654357169, 11381069739763987898, 9242396559996829853, 15011224098520048145, 12190390634789334486, 9899633957460570790, 16078689424770850259, 13057263264941664926, 10603608258477502216, 17222063432103834911, 13985780199974813110, 11357642977750484199, 9223372036854775808, 14980325036961824768, 12165297968916717120, 9879256578703990224, 16045593095580712414, 13030386230879856604, 10581781820995279550, 17186613585065666435, 13956991909259640275, 11334264437318166304, 18408773347475537258, 14949489577945200446, 12140256953717114113, 9858921144686656932, 16012564891781700940, 13003564520429535778, 10560000310990718510, 17151236707893158013, 13928262876281286641, 11310934019207866827, 18370880780077845311, 14918717590550882042, 12115267482872925081, 9838627569069637357, 15979604673144701925, 12976798019712735820, 10538263635985225157, 17115932650385342947, 13899592979063793037, 11287651624364733171, 18333066210634546428, 14888008944129060322, ];
1395const BASE17_SMALL_INT_POWERS: [u64; 8] = [1, 17, 289, 4913, 83521, 1419857, 24137569, 410338673];
1396const BASE17_STEP: i32 = 8;
1397const BASE17_BIAS: i32 = 280;
1398const BASE17_LOG2_MULT: i64 = 267876;
1399const BASE17_LOG2_SHIFT: i32 = 16;
1400
1401const BASE18_SMALL_MANTISSA: [u64; 7] = [
1404 9223372036854775808, 10376293541461622784, 11673330234144325632, 13132496513412366336, 14774058577588912128, 16620815899787526144, 9349208943630483456, ];
1412const BASE18_LARGE_MANTISSA: [u64; 75] = [
1413 14081888293732326968, 16058262627216485544, 18312018475493194258, 10441042983020688038, 11906429509033078491, 13577481089208229636, 15483062540952967857, 17656089820489710741, 10067049297406417285, 11479946305982273645, 13091141534609253262, 14928465875303384176, 17023656248839843776, 9706451905352742522, 11068739548514628780, 12622222454457155586, 14393734624570008992, 16413876176725623927, 9358770957364699929, 10672262040895386089, 12170099854822007158, 13878157218102970303, 15825938165500818674, 18047087583901234911, 10289986187706530766, 11734172092969064177, 13381047573408163051, 15259059841903798156, 17400648639910404101, 9921403291771844100, 11313859076748534537, 12901744183172431346, 14712486856947913357, 16777364861891103792, 9566022877229980327, 10908601492662859386, 12439609234991117453, 14185491882103974832, 16176406841720334625, 9223372036854775808, 10517860061584293888, 11994027762626592768, 13677373641439044901, 15596974880318657672, 17785989605508530085, 10141114821132365302, 11564406827668344530, 13187455978423603575, 15038297923484984581, 17148903079221976570, 9777864433756263024, 11150174730505647564, 12715086956165281921, 14499632535849309517, 16534636719312342666, 9427625519601420913, 10750780249562856814, 12259637989871837542, 13980261911578014597, 15942373117198559022, 18179864026545065558, 10365691907784965713, 11820503010388934534, 13479494920515287357, 15371324143524666656, 17528669087274082029, 9994397265397337538, 11397097657699641734, 12996665188491343910, 14820729899390519784, 16900799671687597041, 9636402237998480121, 10988858503312433354, 12531130210573617469, 14289857705148955482, ];
1489const BASE18_SMALL_INT_POWERS: [u64; 7] = [1, 18, 324, 5832, 104976, 1889568, 34012224];
1490const BASE18_STEP: i32 = 7;
1491const BASE18_BIAS: i32 = 273;
1492const BASE18_LOG2_MULT: i64 = 17909691508;
1493const BASE18_LOG2_SHIFT: i32 = 32;
1494
1495const BASE19_SMALL_MANTISSA: [u64; 7] = [
1498 9223372036854775808, 10952754293765046272, 13006395723845992448, 15445094922067116032, 18341050219954700288, 10889998568098103296, 12931873299616497664, ];
1506const BASE19_LARGE_MANTISSA: [u64; 74] = [
1507 11480257701232751935, 9557118560717499270, 15912276110980153383, 13246698229359450470, 11027650146079950824, 18360660994723606251, 15284936849533635885, 12724449003299523561, 10592886580523254223, 17636794501472422448, 14682330350779734844, 12222789379976654044, 10175263507767080823, 16941466343535111364, 14103481529006456400, 11740907617180962231, 9774105166278679843, 16273551401031031665, 13547453741119703900, 11278023975525727060, 9388762436329270793, 15631968911773566269, 13013347271048440836, 10833389456740556437, 18037223579289291900, 15015680722474235794, 12500297873901968386, 10406284591707172986, 17326108560931302042, 14423689608892845377, 12007475377523598784, 9996018276276719532, 16643029152771930644, 13855037662215477149, 11534082339177879647, 9601926652984804576, 15986880054797934009, 13308804739049304804, 11079352755197736707, 9223372036854775808, 15356599543294590976, 12784106972526145936, 10642550821503597582, 17719483767102098773, 14751167752856224795, 12280095342105548712, 10222969742988875833, 17020895596425699999, 14169605026128220038, 11795954299763191941, 9819930589845265884, 16349849166729084322, 13610970328610229813, 11330900450341615431, 9432781198977253334, 15705258648723927251, 13074359725955544955, 10884181283927938347, 18121790237456409263, 15086081021789818522, 12558904921302722743, 10455073958207408827, 17407341190420966318, 14491314386248513408, 12063771850272711708, 10042884128822494706, 16721059197198717605, 13919996342176535757, 11588159331358018389, 9646944825844903597, 16061833775630288054, 13371202432132867541, 11131297769520092558, 9266615374542536521, ];
1582const BASE19_SMALL_INT_POWERS: [u64; 7] = [1, 19, 361, 6859, 130321, 2476099, 47045881];
1583const BASE19_STEP: i32 = 7;
1584const BASE19_BIAS: i32 = 273;
1585const BASE19_LOG2_MULT: i64 = 18244709747;
1586const BASE19_LOG2_SHIFT: i32 = 32;
1587
1588const BASE20_SMALL_MANTISSA: [u64; 7] = [
1591 9223372036854775808, 11529215046068469760, 14411518807585587200, 18014398509481984000, 11258999068426240000, 14073748835532800000, 17592186044416000000, ];
1599const BASE20_LARGE_MANTISSA: [u64; 72] = [
1600 11896135267822264502, 14181298336770849826, 16905424996341287883, 10076418516839318205, 12012026926087520367, 14319451959237480602, 17070116948172426941, 10174582569701926077, 12129047596099288555, 14458951468586073584, 17236413322193710308, 10273702932711667006, 12247208276643356092, 14599809976391024699, 17404329748619824289, 10373788922202482396, 12366520073655226703, 14742040721959145907, 17573882009934360870, 10474849945267653984, 12486994201263968925, 14885657073574029118, 17745086042373215101, 10576895500643977583, 12608641982846233347, 15030672529752532658, 17917957937422433684, 10679935179604550411, 12731474852090538039, 15177100720513508366, 18092513943330655534, 10783978666860255917, 12855504354071922204, 15324955408658888583, 18268770466636286477, 10889035741470030830, 12980742146337069071, 15474250491067253436, 9223372036854775808, 10995116277760000000, 13107200000000000000, 15625000000000000000, 9313225746154785156, 11102230246251565404, 13234889800848442797, 15777218104420236108, 9403954806578300063, 11210387714598536567, 13363823550460978230, 15930919111324522770, 9495567745759798747, 11319598848533390459, 13494013367335069727, 16086117467087590369, 9588073174409622174, 11429873912822749822, 13625471488026082303, 16242827758820155028, 9681479787123295682, 11541223272232169725, 13758210268297397763, 16401064715739962772, 9775796363198734982, 11653657392500323036, 13892242184281734271, 16560843210556190337, 9871031767461413346, 11767186841322676356, 14027579833653779454, 16722178260867332761, 9967194951097567535, 11881822289344748896, ];
1673const BASE20_SMALL_INT_POWERS: [u64; 7] = [1, 20, 400, 8000, 160000, 3200000, 64000000];
1674const BASE20_STEP: i32 = 7;
1675const BASE20_BIAS: i32 = 266;
1676const BASE20_LOG2_MULT: i64 = 283242;
1677const BASE20_LOG2_SHIFT: i32 = 16;
1678
1679const BASE21_SMALL_MANTISSA: [u64; 7] = [
1682 9223372036854775808, 12105675798371893248, 15888699485363109888, 10426959037269540864, 13685383736416272384, 17962066154046357504, 11787605913592922112, ];
1690const BASE21_LARGE_MANTISSA: [u64; 72] = [
1691 14408615719666154271, 12084465783258517647, 10135207719324857823, 17000740844691866712, 14258473889848767691, 11958542249702993646, 10029596003240171126, 16823588341749525709, 14109896580142091329, 11833930874797054029, 9925084790952075138, 16648281817731599335, 13962867487806377083, 11710617985478380225, 9821662614901370847, 16474802037018309233, 13817370479981011975, 11588590051161810088, 9719318127024052612, 16303129964430447286, 13673389591914329770, 11467833682254685835, 9618040097506134632, 16133246763140728476, 13530909025211868449, 11348335628687672485, 9517817413551452467, 15965133792606908039, 13389913146102881332, 11230082778460885572, 9418639078162304415, 15798772606526436117, 13250386483724911652, 11113062156205168633, 9320494208932798947, 15634144950812425486, 13112313728426242332, 10997260921758362571, 9223372036854775808, 15471232761590710272, 12975679730086034724, 10882666368756410705, 18254523810272339491, 15310018163217775871, 12840469496451971963, 10769265923239144897, 18064306536063374465, 15150483466319342608, 12706668191495224563, 10657047142270599779, 17876071379371335714, 14992611165849387896, 12574261133782557711, 10545997712573703694, 17689797685974006860, 14836383939169393936, 12443233794865401683, 10436105449179196548, 17505465016871978304, 14681784644147610193, 12313571797685708585, 10327358294088626305, 17323053146045965028, 14528796317278122096, 12185260914998420522, 10219744314951277448, 17142542058237493769, 14377402171819519570, 12058287067810376090, 10113251703754886210, 16963911946752716066, 14227585595952961160, ];
1764const BASE21_SMALL_INT_POWERS: [u64; 7] = [1, 21, 441, 9261, 194481, 4084101, 85766121];
1765const BASE21_STEP: i32 = 7;
1766const BASE21_BIAS: i32 = 266;
1767const BASE21_LOG2_MULT: i64 = 287855;
1768const BASE21_LOG2_SHIFT: i32 = 16;
1769
1770const BASE22_SMALL_MANTISSA: [u64; 7] = [
1773 9223372036854775808, 12682136550675316736, 17437937757178560512, 11988582208060260352, 16484300536082857984, 11332956618556964864, 15582815350515826688, ];
1781const BASE22_LARGE_MANTISSA: [u64; 70] = [
1782 9269587019009961312, 10766865452458105492, 12505993140104023937, 14526035001637582317, 16872365953260472216, 9798845067792082715, 11381612386618310709, 13220037629231758864, 15355416173176400877, 17835713669231780592, 10358321731667433590, 12031459025026523680, 13974851334106036811, 16232151844936756579, 9427032431967498649, 10949742378252536811, 12718409426865212084, 14772762021382712235, 17158945778190527545, 9965280013064351107, 11574930887071326019, 13444582075449265201, 15616230364311619568, 18138656108661462534, 10534259477248206780, 12235815274209166465, 14212216411407346527, 16507857531195957209, 9587152080358667750, 11135725497779554116, 12934433638113158426, 15023679738882972932, 17450393207123747022, 10134541882409419905, 11771532933066741091, 13672940444874950532, 15881474526053323426, 9223372036854775808, 10713185553479630848, 12443642546855641088, 14453613172379218947, 16788246122479815273, 9749991386498543747, 11324867570234788254, 13154127055020322136, 15278859333807672616, 17746790917089950882, 10306678691583236909, 11971474296148943805, 13905177517602390611, 16151223902158337584, 9380032480974399852, 10895150717634104284, 12654999798852712250, 14699110095811391320, 17073397158676562691, 9915596544207462992, 11517222250937216925, 13377551999629643946, 15538373194824147716, 18048222989401488392, 10481739271897017716, 12174811695150892652, 14141359174025375600, 16425555014410689631, 9539353827706830891, 11080206589104387250, 12869946987462278079, 14948776823616759120, 17363391530672110525, ];
1853const BASE22_SMALL_INT_POWERS: [u64; 7] = [1, 22, 484, 10648, 234256, 5153632, 113379904];
1854const BASE22_STEP: i32 = 7;
1855const BASE22_BIAS: i32 = 259;
1856const BASE22_LOG2_MULT: i64 = 292254;
1857const BASE22_LOG2_SHIFT: i32 = 16;
1858
1859const BASE23_SMALL_MANTISSA: [u64; 7] = [
1862 9223372036854775808, 13258597302978740224, 9529616811515969536, 13698824166554206208, 9846029869710835712, 14153667937709326336, 10172948830228578304, ];
1870const BASE23_LARGE_MANTISSA: [u64; 69] = [
1871 9630971713765025029, 15269861356524917016, 12105147475110827234, 9596327823341159083, 15214933627595239789, 12061603644316153100, 9561808551614073801, 15160203481036150549, 12018216446491393101, 9527413450313687580, 15105670206117496642, 11974985318206853149, 9493142072782406120, 15051333094665716613, 11931909698059570948, 9458993973969322090, 14997191441054643808, 11888989026666025574, 9424968710424435661, 14943244542196343052, 11846222746654873270, 9391065840292895827, 14889491697531980297, 11803610302659709381, 9357284923309262442, 14835932209022725101, 11761151141311856318, 9323625520791788901, 14782565381140685845, 11718844711233177467, 9290087195636725377, 14729390520859877547, 11676690463028916948, 9256669512312642559, 14676406937647222172, 11634687849280565129, 9223372036854775808, 14623613943453581312, 11592836324538749809, 18380388673718779295, 14571010852704821123, 11551135345316152959, 18314271962956325083, 14518596982292909406, 11509584370080452960, 18248393082825183718, 14466371651567044709, 11468182859247292218, 18182751177816837937, 14414334182324817337, 11426930275173270071, 18117345395500148774, 14362483898803402166, 11385826082148960918, 18052174886510285819, 14310820127670783127, 11344869746391957446, 17987238804537697299, 14259342198017009262, 11304060736039938888, 17922536306317119829, 14208049441345482237, 11263398521143764220, 17858066551616627705, 14156941191564275184, 11222882573660590193, 17793828703226721580, 14106016784977482782, 11182512367447014130, ];
1941const BASE23_SMALL_INT_POWERS: [u64; 7] = [1, 23, 529, 12167, 279841, 6436343, 148035889];
1942const BASE23_STEP: i32 = 7;
1943const BASE23_BIAS: i32 = 252;
1944const BASE23_LOG2_MULT: i64 = 296457;
1945const BASE23_LOG2_SHIFT: i32 = 16;
1946
1947const BASE24_SMALL_MANTISSA: [u64; 7] = [
1950 9223372036854775808, 13835058055282163712, 10376293541461622784, 15564440312192434176, 11673330234144325632, 17509995351216488448, 13132496513412366336, ];
1958const BASE24_LARGE_MANTISSA: [u64; 68] = [
1959 13878157218102970303, 14820082927730076197, 15825938165500818674, 16900061898413227754, 18047087583901234911, 9635981578611328308, 10289986187706530766, 10988378804938565813, 11734172092969064177, 12530583187169601247, 13381047573408163051, 14289233907736158492, 15259059841903798156, 16294708922970511019, 17400648639910404101, 9290824847530286564, 9921403291771844100, 10594779784719249534, 11313859076748534537, 12081743066820822770, 12901744183172431346, 13777399672167044607, 14712486856947913357, 15711039431711468023, 16777364861891103792, 17916062965310470700, 9566022877229980327, 10215279312745101062, 10908601492662859386, 11648980207252770253, 12439609234991117453, 13283899119592565366, 14185491882103974832, 15148276731524117655, 16176406841720334625, 17274317267012876867, 9223372036854775808, 9849372385059274752, 10517860061584293888, 11231718727873462272, 11994027762626592768, 12808075545343924992, 13677373641439044901, 14605671950110933202, 15596974880318657672, 16655558624637160317, 17785989605508530085, 9496572086730262523, 10141114821132365302, 10829403375886954548, 11564406827668344530, 12349295767632162835, 13187455978423603575, 14082503039459189950, 15038297923484984581, 16058963651690264296, 17148903079221976570, 18312817887821515019, 9777864433756263024, 10441498787414525016, 11150174730505647564, 11906949284968677354, 12715086956165281921, 13578073815006577911, 14499632535849309517, 15483738455030488239, 16534636719312342666, 17656860598210983110, ];
2028const BASE24_SMALL_INT_POWERS: [u64; 7] = [1, 24, 576, 13824, 331776, 7962624, 191102976];
2029const BASE24_STEP: i32 = 7;
2030const BASE24_BIAS: i32 = 252;
2031const BASE24_LOG2_MULT: i64 = 300481;
2032const BASE24_LOG2_SHIFT: i32 = 16;
2033
2034const BASE25_SMALL_MANTISSA: [u64; 7] = [
2037 9223372036854775808, 14411518807585587200, 11258999068426240000, 17592186044416000000, 13743895347200000000, 10737418240000000000, 16777216000000000000, ];
2045const BASE25_LARGE_MANTISSA: [u64; 68] = [
2046 15492890949478498119, 11008361120075348168, 15643822052986917253, 11115604119273511155, 15796223521069679172, 11223891875338892399, 15950109677957715915, 11333234566249726012, 16105494987428025427, 11443642469137689536, 16262394054163123565, 11555125961253852697, 16420821625123739831, 11667695520944036383, 16580792590934885855, 11781361728633673532, 16742321987285426889, 11896135267822264502, 16905424996341287883, 12012026926087520367, 17070116948172426941, 12129047596099288555, 17236413322193710308, 12247208276643356092, 17404329748619824289, 12366520073655226703, 17573882009934360870, 12486994201263968925, 17745086042373215101, 12608641982846233347, 17917957937422433684, 12731474852090538039, 18092513943330655534, 12855504354071922204, 18268770466636286477, 12980742146337069071, 9223372036854775808, 13107200000000000000, 9313225746154785156, 13234889800848442797, 9403954806578300063, 13363823550460978230, 9495567745759798747, 13494013367335069727, 9588073174409622174, 13625471488026082303, 9681479787123295682, 13758210268297397763, 9775796363198734982, 13892242184281734271, 9871031767461413346, 14027579833653779454, 9967194951097567535, 14164235936814247246, 10064294952495520794, 14302223338085469768, 10162340898095201970, 14441555006918636608, 10261342003245940623, 14582244039112794984, 10361307573072618726, 14724303658045725350, 10462247003350260393, 14867747215916808149, 10564169781387141817, 15012588195001998509, 10667085486916504429, 15158840208921026870, ];
2115const BASE25_SMALL_INT_POWERS: [u64; 7] = [1, 25, 625, 15625, 390625, 9765625, 244140625];
2116const BASE25_STEP: i32 = 7;
2117const BASE25_BIAS: i32 = 252;
2118const BASE25_LOG2_MULT: i64 = 304340;
2119const BASE25_LOG2_SHIFT: i32 = 16;
2120
2121const BASE26_SMALL_MANTISSA: [u64; 7] = [
2124 9223372036854775808, 14987979559889010688, 12177733392409821184, 9894408381332979712, 16078413619666092032, 13063711065978699776, 10614265241107693568, ];
2132const BASE26_LARGE_MANTISSA: [u64; 67] = [
2133 12105269954044049440, 11318739317371282802, 10583312905946974966, 9895670261906581517, 9252706671590202790, 17303038295456506514, 16178786644847745028, 15127582383507515360, 14144679313308326113, 13225639616708097270, 12366313819957994305, 11562822058185475244, 10811536557764206566, 10109065256878566708, 9452236490329416245, 17676169338865748372, 16527673784713390059, 15453800848879553322, 14449701983936623969, 13510843673109724761, 12632986961401522264, 11812168316666510159, 11044681734222321153, 10327062004200202236, 9656069066086567364, 18057346759632441273, 16884084494735168740, 15787054046203585657, 14761302310200400353, 13802198007013635263, 12905410770780760221, 12066891597841972649, 11282854565446737172, 10549759738273355365, 9864297185584324446, 9223372036854775808, 17248181016800002048, 16127493675824287744, 15079622135830712445, 14099835245963182583, 13183709258266090507, 12327107854416477244, 11526163470203963629, 10777259833438283283, 10077015636442889080, 9422269269415772631, 17620129091456925542, 16475274709425560342, 15404806363345084091, 14403890877545881062, 13468009108242878856, 12592935539554553092, 11774719205254957782, 11009665850120294209, 10294321250328313309, 9625455617601982106, 18000098033363922638, 16830555460575262708, 15737003020008648959, 14714503311068774005, 13758439736979533044, 12864495660801764695, 12028634915772762381, 11247083581971537298, 10516312947031287874, 9833023573966516058, 18388260808361729691, ];
2201const BASE26_SMALL_INT_POWERS: [u64; 7] = [1, 26, 676, 17576, 456976, 11881376, 308915776];
2202const BASE26_STEP: i32 = 7;
2203const BASE26_BIAS: i32 = 245;
2204const BASE26_LOG2_MULT: i64 = 20188234867;
2205const BASE26_LOG2_SHIFT: i32 = 32;
2206
2207const BASE27_SMALL_MANTISSA: [u64; 6] = [
2210 9223372036854775808, 15564440312192434176, 13132496513412366336, 11080543933191684096, 9349208943630483456, 15776790092376440832, ];
2217const BASE27_LARGE_MANTISSA: [u64; 76] = [
2218 16362187946641408838, 11807394875954316034, 17041067394086403622, 12297292543386873229, 17748114058878258402, 12807516432401518638, 9242248309993244326, 13338909893173747895, 9625716122873707062, 13892351267110242231, 10025094302862174179, 14468755338661289290, 10441042983020688038, 15069074847369989965, 10874249685827050127, 15694302062657520659, 11325430459582219446, 16345470423947416967, 11795331061968106016, 17023656248839843776, 12284728192712064755, 17729980512159296735, 12794430777395563548, 9232805349408163458, 13325281304529035642, 9615881366772943927, 13878157218102970303, 10014851495355986817, 14453972367916992462, 10430375193750279268, 15053678520084183432, 10863139281980340679, 15678266930207358578, 11313859076748534537, 16328769981827608423, 11783279573783601017, 17006262892853298360, 12272176679245716810, 17711865492790087155, 12781358492223474271, 9223372036854775808, 13311666640442621952, 9606056659007943744, 13863977671394362375, 10004619153098548172, 14439204501182606065, 10419718303939637392, 15038297923484984581, 10852040229820157048, 15662248181121787524, 11302299516591361707, 16312086602830473207, 11771240398807322073, 16988887307951181138, 12259637989871837542, 17693768981840924725, 12768299563225066619, 18427896724951050158, 13298065886687551351, 9596241989312152815, 13849812612167175924, 9994397265397337538, 14424451723026109070, 10409072302452601000, 15022933041500086259, 10840952517748290136, 15646245798661648271, 11290751767031273467, 16295420269522331823, 11759213524458657188, 16971529475976476179, 12247112111487835932, 17675690960401445308, 12755253976754113245, 18409068632845853217, 13284479029051404288, ];
2295const BASE27_SMALL_INT_POWERS: [u64; 6] = [1, 27, 729, 19683, 531441, 14348907];
2296const BASE27_STEP: i32 = 6;
2297const BASE27_BIAS: i32 = 240;
2298const BASE27_LOG2_MULT: i64 = 311617;
2299const BASE27_LOG2_SHIFT: i32 = 16;
2300
2301const BASE28_SMALL_MANTISSA: [u64; 6] = [
2304 9223372036854775808, 16140901064495857664, 14123288431433875456, 12357877377504641024, 10813142705316560896, 9461499867151990784, ];
2311const BASE28_LARGE_MANTISSA: [u64; 76] = [
2312 10853684694473876180, 9742165760957008810, 17488953546307848045, 15697920957714630238, 14090306875260685218, 12647327526607851831, 11352122773573968201, 10189559113984709052, 18292105715960495534, 16418822825447359765, 14737381642082644874, 13228135778880165762, 11873450822826176619, 10657498289906897377, 9566070681070377880, 17172830956378919788, 15414172280784786485, 13835616719528574716, 12418720027433908743, 11146926822720122755, 10005377149705503250, 17961465702601665525, 16122043445170466212, 14470995249030000148, 12989029846596759700, 11658831576707932907, 10464858064026730335, 9393158617970892313, 16862422458582420498, 15135552519453149331, 13585530230416439557, 12194244736314878063, 10945439903127358164, 9824524377159351811, 17636802191900948811, 15830628517722738088, 14209423938610553080, 12754245887402290033, 11448091693168579255, 10275699917675706335, 9223372036854775808, 16557624767515983872, 14861968965709594624, 13339964194082398208, 11973826961285400900, 10747594971986893695, 9646940619348801089, 17318007155239366140, 15544481077627229210, 13952580675520064463, 12523705779222565186, 11241161050565762112, 10089960910324183248, 18113308885783841476, 16258336464718499495, 14593330587292989709, 13098836900821174211, 11757393360479052160, 10553326198326110898, 9472566787009190529, 17004974516675479989, 15263505912112072336, 13700379997665963732, 12297332812083457696, 11037970794744924274, 9907579239127697723, 17785900724855568076, 15964457964924108341, 14329547997401095751, 12862068117875988113, 11544871917724549298, 10362568941103939059, 9301344858947275744, 16697600117649658875, 14987609529429357277, 13452737987730670580, ];
2389const BASE28_SMALL_INT_POWERS: [u64; 6] = [1, 28, 784, 21952, 614656, 17210368];
2390const BASE28_STEP: i32 = 6;
2391const BASE28_BIAS: i32 = 240;
2392const BASE28_LOG2_MULT: i64 = 315055;
2393const BASE28_LOG2_SHIFT: i32 = 16;
2394
2395const BASE29_SMALL_MANTISSA: [u64; 6] = [
2398 9223372036854775808, 16717361816799281152, 15150109146474348544, 13729786413992378368, 12442618937680592896, 11276123412273037312, ];
2405const BASE29_LARGE_MANTISSA: [u64; 76] = [
2406 9780142334064946636, 10835857583212112985, 12005531775819627369, 13301466184228767173, 14737289938837575007, 16328103363438049788, 18090636782853846909, 10021713236516230810, 11103504802015131117, 12302070113036945059, 13630014285094069421, 15101303090037955289, 16731409831799452344, 9268739038298839376, 10269250974512215384, 11377762945074294339, 12605932989231929836, 13966677570638048918, 15474307417689145256, 17144678027117236568, 9497678206828984163, 10522902929736936910, 11658795303156142066, 12917301321555931503, 14311656487072982013, 15856525005124406387, 17568154005459773215, 9732272205284828726, 10782820124222926001, 11946769200332301461, 13236360495839591806, 14665156431661011058, 16248183421166822582, 18002089900515211938, 9972660708767378680, 11049157310268331325, 12241856093602695018, 13563300476969856592, 15027387875005778139, 16649515855621676607, 9223372036854775808, 10218986842372440064, 11322073062575009312, 12544231674979455490, 13898315921993315819, 15398566486364679514, 17060761258115507449, 9451190634016324153, 10471397266405980105, 11601729872662437745, 12854075976092328003, 14241606296013212103, 15778913262056350490, 17482164480364512070, 9684636382831873707, 10730042263704319491, 11888294245613666403, 13171573475377840424, 14593375990949121808, 16168654657039833397, 17913976421956996862, 9923848274745194421, 10995075829111145761, 12181936799210906401, 13496913207916061440, 14953834447230017102, 16568022719743769659, 18356454179736676324, 10168968734308426004, 11266655761164621625, 12482832365519782645, 13830288877980342143, 15323196278493163895, 16977255230225892037, 9404930600437880197, 10420143703980341466, ];
2483const BASE29_SMALL_INT_POWERS: [u64; 6] = [1, 29, 841, 24389, 707281, 20511149];
2484const BASE29_STEP: i32 = 6;
2485const BASE29_BIAS: i32 = 240;
2486const BASE29_LOG2_MULT: i64 = 318373;
2487const BASE29_LOG2_SHIFT: i32 = 16;
2488
2489const BASE30_SMALL_MANTISSA: [u64; 6] = [
2492 9223372036854775808, 17293822569102704640, 16212958658533785600, 15199648742375424000, 14249670695976960000, 13359066277478400000, ];
2499const BASE30_LARGE_MANTISSA: [u64; 74] = [
2500 15921395853562858335, 10809579470425214363, 14677985448278451843, 9965385675239368708, 13531681443098000788, 18374241463874359754, 12474900136854879801, 16939271613521887687, 11500650091336533543, 15616368347004676150, 10602485877430447296, 14396779620362065880, 9774465433549085656, 13272436896445757604, 18022221508452589239, 12235901765210495847, 16614743297618723424, 11280316732790367097, 15317184660964044954, 10399359853791807565, 14120961229157126909, 9587202906660312336, 13018159044823362852, 17676945670836105047, 12001482205502242389, 16296432405358431306, 11064204595523231124, 15023732837543702665, 10200125387468709836, 13850427060322257636, 9403528018831206315, 12768752734601403407, 17338284744926585040, 11771553735296689434, 15984219821228248249, 10852232807944894743, 14735903063773789011, 10004707922685045925, 13585075876931470780, 9223372036854775808, 12524124635136000000, 17006112000000000000, 11546030312776565551, 15677988711770840524, 10644322047830505987, 14453587630518598230, 9813034332029575584, 13324808381590173768, 18093335088676282534, 12284183203843431517, 16680303133282552614, 11324827544542942993, 15377624481863911156, 10440394512637323916, 14176680892170610158, 9625032889090827484, 13069527179276967861, 17746696832949127203, 12048838651943871501, 16360736223435182728, 11107862654034279481, 15083014731837417449, 10240373890390132852, 13905079227116716745, 9440633241616270046, 12819136740897336720, 17406699590597596894, 11818002910861417777, 16047291684929232224, 10895054450550498712, 14794049215412351417, 10044185331124443731, 13638680998961850032, 9259766385185707988, ];
2575const BASE30_SMALL_INT_POWERS: [u64; 6] = [1, 30, 900, 27000, 810000, 24300000];
2576const BASE30_STEP: i32 = 6;
2577const BASE30_BIAS: i32 = 234;
2578const BASE30_LOG2_MULT: i64 = 321578;
2579const BASE30_LOG2_SHIFT: i32 = 16;
2580
2581const BASE31_SMALL_MANTISSA: [u64; 6] = [
2584 9223372036854775808, 17870283321406128128, 17311836967612186624, 16770842062374305792, 16246753247925108736, 15739042208927449088, ];
2591const BASE31_LARGE_MANTISSA: [u64; 74] = [
2592 15172192345302428421, 12540609161645107233, 10365468257053156090, 17135201456813756829, 14163138687236953263, 11706573627364173290, 9676094340331131706, 15995594383677739926, 13221193938792609146, 10928007110853986174, 18065136926019727780, 14931778907414090897, 12341894902482781431, 10201220546354171409, 16863682839241173595, 13938714372965575021, 11521075213714088050, 9522770215989197442, 15742133595063495983, 13011695363011784957, 10754845599386459585, 17778882864941161542, 14695174979700806287, 12146329402386737855, 10039575449430160254, 16596466614020050649, 13717846210614220387, 11338516145303865769, 9371875613960541536, 15492689060539222513, 12805516430937677459, 10584427946771654325, 17497164689077279120, 14462320197950402007, 11953862767183809017, 9880491726141866768, 16333484606893641287, 13500477850600094178, 11158849846261135900, 9223372036854775808, 15247197139898466304, 12602604540616796176, 10416710674748495795, 17219910524322248562, 14233155154461633068, 11764445893307051548, 9723928789827359386, 16074669723871456105, 13286553836236866995, 10982030478739077827, 18154443194596327488, 15005595201356001156, 12402907923608447627, 10251650993997756459, 16947049635463054782, 14007621382887632827, 11578030455268066882, 9569846696947249770, 15819955934111728582, 13076019589586139267, 10808012931221917147, 17866774016535005152, 14767821605568725557, 12206375631777172937, 10089206793225315915, 16678512408132988469, 13785661343319529298, 11394568893327831301, 9418206136893990095, 15569278253075119325, 12868821397533098208, 10636752807015729117, 17583663147154342787, 14533815689909759814, ];
2667const BASE31_SMALL_INT_POWERS: [u64; 6] = [1, 31, 961, 29791, 923521, 28629151];
2668const BASE31_STEP: i32 = 6;
2669const BASE31_BIAS: i32 = 234;
2670const BASE31_LOG2_MULT: i64 = 21278111132;
2671const BASE31_LOG2_SHIFT: i32 = 32;
2672
2673const BASE33_SMALL_MANTISSA: [u64; 6] = [
2676 9223372036854775808, 9511602413006487552, 9808839988412940288, 10115366238050844672, 10431471432989933568, 10757454915270868992, ];
2683const BASE33_LARGE_MANTISSA: [u64; 72] = [
2684 16952605037124200569, 10195070131008495069, 12262357879342609130, 14748836332546310936, 17739506162243888511, 10668301952265249182, 12831548466319904021, 15433443558330863109, 9281466718275888268, 11163500111543439891, 13427159577595330562, 16149828684624228128, 9712291160146516482, 11681684235978010467, 14050417593436164695, 16899466768835551431, 10163113486548439647, 12223921281461810852, 14702605819874780450, 17683901337162836029, 10634861953510936381, 12791327729538214791, 15385067131072375518, 9252373781378705800, 11128507904583594948, 13385071886268464065, 16099206734335173177, 9681847795705762071, 11645067770860388376, 14006376287807173243, 16846495063476347823, 10131257010808365886, 12185605163840289543, 14656520217639143557, 17628470806481188820, 10601526773079323099, 12751233065433685927, 15336842340660548274, 9223372036854775808, 11093625381373083648, 13343116119623879688, 16048743459528137878, 9651499856579507665, 11608566080760702539, 13962473030502269494, 16793689398951866695, 10099500389807484117, 12147409148830342864, 14610579071614836924, 17573214023869781748, 10568296082415350040, 12711264078829073096, 15288768711786753433, 18388922397719682024, 11058852198106072831, 13301291864141109889, 15998438362831755651, 9621247043655259795, 11572178805914439916, 13918707388806312258, 16741049254803901004, 10067843310549183526, 12109332859968012500, 14564781929001072895, 17518130444711929011, 10535169553993820096, 12671420375785822681, 15240845770632227134, 18331281964891256972, 11024188012054395372, 13259598707595875029, 15948290948433680084, ];
2757const BASE33_SMALL_INT_POWERS: [u64; 6] = [1, 33, 1089, 35937, 1185921, 39135393];
2758const BASE33_STEP: i32 = 6;
2759const BASE33_BIAS: i32 = 228;
2760const BASE33_LOG2_MULT: i64 = 330590;
2761const BASE33_LOG2_SHIFT: i32 = 16;
2762
2763const BASE34_SMALL_MANTISSA: [u64; 6] = [
2766 9223372036854775808, 9799832789158199296, 10412322338480586752, 11063092484635623424, 11754535764925349888, 12489194250233184256, ];
2773const BASE34_LARGE_MANTISSA: [u64; 72] = [
2774 9604872659818954289, 13818638119852157632, 9940514895438007254, 14301530372152488549, 10287886147601198282, 14801297292224652053, 10647396286743453217, 15318528565264575918, 11019469506220361724, 15853834483014935870, 11404544822822581011, 16407846663860846991, 11803076594780713339, 16981218798089296108, 12215535057871861844, 17574627419191661979, 12642406880260427750, 18188772702119398880, 13084195736727816960, 9412189644717380884, 13541422902968601381, 9741098573165682574, 14014627870654357169, 10081501222766715924, 14504368983990906269, 10433799241558921201, 15011224098520048145, 10798408313169791102, 15535791262943115320, 11175758647289472494, 16078689424770850259, 11566295487283966163, 16640559160632214299, 11970479635546867736, 17222063432103834911, 12388787997209523031, 17823888367951909878, 12821714142851132552, 9223372036854775808, 13269768890872758272, 9545682734772404224, 13733480910222387686, 9879256578703990224, 14213397344182222761, 10224487159240697338, 14710084455954213119, 10581781820995279550, 15224128296805573036, 10951562143236309252, 15756135397562640779, 11334264437318166304, 16306733484268988021, 11730340261493716029, 16876572218852198941, 12140256953717114113, 17466323965673246884, 12564498183065403345, 18076684584862935827, 13003564520429535778, 9354187126690740272, 13457974029148190318, 9681069157385005207, 13928262876281286641, 10019374079298318020, 14414985965244449544, 10369501065317377529, 14918717590550882042, 10731863237423767546, 15440052115433190547, 11106888154145020298, 15979604673144701925, 11495018315039655259, ];
2847const BASE34_SMALL_INT_POWERS: [u64; 6] = [1, 34, 1156, 39304, 1336336, 45435424];
2848const BASE34_STEP: i32 = 6;
2849const BASE34_BIAS: i32 = 228;
2850const BASE34_LOG2_MULT: i64 = 333412;
2851const BASE34_LOG2_SHIFT: i32 = 16;
2852
2853const BASE35_SMALL_MANTISSA: [u64; 6] = [
2856 9223372036854775808, 10088063165309911040, 11033819087057715200, 12068239626469376000, 13199637091450880000, 14437103068774400000, ];
2863const BASE35_LARGE_MANTISSA: [u64; 71] = [
2864 11348773864264802781, 9714654125541636184, 16631665395337738380, 14236857547774631404, 12186880148060573338, 10432080762542161338, 17859912908640730010, 15288248642090717076, 13086880531724678972, 11202489314578100722, 9589433214356533221, 16417284907013989533, 14053345890899718904, 12029792492965214691, 10297612294415481616, 17629700433836653197, 15091184660126225295, 12918191962520288360, 11058090357972464737, 9465826388078148767, 16205667761547463659, 13872199680760223069, 11874729681889289960, 10164877111271147984, 17402455374597619654, 14896660812999728329, 12751677771947325078, 10915552689343391453, 9343812841314943660, 15996778339727633381, 13693388426986467236, 11721665614797754707, 10033852871240677221, 17178139481236495112, 14704644358629538426, 12587309932484688516, 10774852316876721446, 9223372036854775808, 15790581481472000000, 13516882032226562500, 11570574528082381959, 9904517520440015906, 16956714997100751955, 14515102976976096155, 12425060777883196253, 10635965558010358334, 18208967404416189641, 15587042479907979542, 13342650787080448100, 11421430990225254489, 9776849289257450184, 16738144652217302890, 14328004764601889967, 12264902998508825496, 10498869035448040891, 17974255652391389054, 15386127075531072702, 13170665365099231511, 11274209897518154234, 9650826688689364000, 16522391657019252092, 14143318229301497845, 12106809636745979660, 10363539673224497244, 17742569311160898016, 15187801450438335382, 13000896817848986534, 11128886469837128365, 9526428506723229038, 16309419696153507876, 13961012284800847178, ];
2936const BASE35_SMALL_INT_POWERS: [u64; 6] = [1, 35, 1225, 42875, 1500625, 52521875];
2937const BASE35_STEP: i32 = 6;
2938const BASE35_BIAS: i32 = 222;
2939const BASE35_LOG2_MULT: i64 = 336153;
2940const BASE35_LOG2_SHIFT: i32 = 16;
2941
2942const BASE36_SMALL_MANTISSA: [u64; 6] = [
2945 9223372036854775808, 10376293541461622784, 11673330234144325632, 13132496513412366336, 14774058577588912128, 16620815899787526144, ];
2952const BASE36_LARGE_MANTISSA: [u64; 71] = [
2953 11172994339528645078, 11325430459582219446, 11479946305982273645, 11636570252986002899, 11795331061968106016, 11956257886702331980, 12119380278715084095, 12284728192712064755, 12452331992078957377, 12622222454457155586, 12794430777395563548, 12968988584079505325, 13145927929137795237, 13325281304529035642, 13507081645508223020, 13691362336674758052, 13878157218102970303, 14067500591556283265, 14259427226786160917, 14453972367916992462, 14651171739918087751, 14851061555163971849, 15053678520084183432, 15259059841903798156, 15467243235475914756, 15678266930207358578, 15892169677078874302, 16108990755761097026, 16328769981827608423, 16551547714066402526, 16777364861891103792, 17006262892853298360, 17238283840257358043, 17473470310879155380, 17711865492790087155, 17953513163287843146, 18198457696935376453, 9223372036854775808, 9349208943630483456, 9476762676643233792, 9606056659007943744, 9737114633407288801, 9869960666451650558, 10004619153098548172, 10141114821132365302, 10279472735705195138, 10419718303939637392, 10561877279594392463, 10705975767793509530, 10852040229820157048, 11000097487975795902, 11150174730505647564, 11302299516591361707, 11456499781411800112, 11612803841272866179, 11771240398807322073, 11931838548245548344, 12094627780758213915, 12259637989871837542, 12426899476958235198, 12596442956798861450, 12768299563225066619, 12942500854835305460, 13119078820790347231, 13298065886687551351, 13479494920515287357, 13663399238688592583, 13849812612167175924, 14038769272656891137, 14230303918895818486, 14424451723026109070, ];
3025const BASE36_SMALL_INT_POWERS: [u64; 6] = [1, 36, 1296, 46656, 1679616, 60466176];
3026const BASE36_STEP: i32 = 6;
3027const BASE36_BIAS: i32 = 222;
3028const BASE36_LOG2_MULT: i64 = 22204658804;
3029const BASE36_LOG2_SHIFT: i32 = 32;