1//! Pre-computed small tables for parsing decimal strings.
2
3#![doc(hidden)]
4#![cfg(not(feature = "compact"))]
5
6/// Pre-computed, small powers-of-5.
7pub const SMALL_INT_POW5: [u64; 28] = [
8 1,
9 5,
10 25,
11 125,
12 625,
13 3125,
14 15625,
15 78125,
16 390625,
17 1953125,
18 9765625,
19 48828125,
20 244140625,
21 1220703125,
22 6103515625,
23 30517578125,
24 152587890625,
25 762939453125,
26 3814697265625,
27 19073486328125,
28 95367431640625,
29 476837158203125,
30 2384185791015625,
31 11920928955078125,
32 59604644775390625,
33 298023223876953125,
34 1490116119384765625,
35 7450580596923828125,
36];
37
38/// Pre-computed, small powers-of-10.
39pub const SMALL_INT_POW10: [u64; 20] = [
40 1,
41 10,
42 100,
43 1000,
44 10000,
45 100000,
46 1000000,
47 10000000,
48 100000000,
49 1000000000,
50 10000000000,
51 100000000000,
52 1000000000000,
53 10000000000000,
54 100000000000000,
55 1000000000000000,
56 10000000000000000,
57 100000000000000000,
58 1000000000000000000,
59 10000000000000000000,
60];
61
62/// Pre-computed, small powers-of-10.
63pub const SMALL_F32_POW10: [f32; 16] =
64 [1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 0., 0., 0., 0., 0.];
65
66/// Pre-computed, small powers-of-10.
67pub const SMALL_F64_POW10: [f64; 32] = [
68 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
69 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, 0., 0., 0., 0., 0., 0., 0., 0., 0.,
70];
71
72/// Pre-computed large power-of-5 for 32-bit limbs.
73#[cfg(not(all(target_pointer_width = "64", not(target_arch = "sparc"))))]
74pub const LARGE_POW5: [u32; 10] = [
75 4279965485, 329373468, 4020270615, 2137533757, 4287402176, 1057042919, 1071430142, 2440757623,
76 381945767, 46164893,
77];
78
79/// Pre-computed large power-of-5 for 64-bit limbs.
80#[cfg(all(target_pointer_width = "64", not(target_arch = "sparc")))]
81pub const LARGE_POW5: [u64; 5] = [
82 1414648277510068013,
83 9180637584431281687,
84 4539964771860779200,
85 10482974169319127550,
86 198276706040285095,
87];
88
89/// Step for large power-of-5 for 32-bit limbs.
90pub const LARGE_POW5_STEP: u32 = 135;
91