1#![allow(clippy::approx_constant)]
7
8#[macro_use]
9mod macros;
10#[cfg(feature = "special")]
11mod bernoulli;
12
13use core::marker::PhantomData;
14
15use thermite::{
16 Vector,
17 math::FloatConsts,
18 vector::{SplatConst, const_splat},
19};
20
21use super::{Compensated, ScalarValue};
22
23use self::macros::{Ln2Extended, LogTableError, LogTableValue};
24
25pub const LOG_TABLE_SIZE: usize = 30;
26
27pub trait CompensatedLogTable<T = Self>: FloatConsts {
29 const LOG_TABLE: [Compensated<T>; LOG_TABLE_SIZE];
31
32 const LN_2_EXTENDED: [T; 3];
34}
35
36impl<R: thermite::register::FloatRegister> CompensatedLogTable<Self> for Vector<R>
37where
38 R::Element: CompensatedLogTable<R::Element>,
39{
40 #[rustfmt::skip]
41 const LOG_TABLE: [Compensated<Self>; LOG_TABLE_SIZE] = log_table!(
42 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
43 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
44 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
45 );
46
47 const LN_2_EXTENDED: [Self; 3] = [
48 const_splat::<Self, Ln2Extended<R::Element, 0>>(),
49 const_splat::<Self, Ln2Extended<R::Element, 1>>(),
50 const_splat::<Self, Ln2Extended<R::Element, 2>>(),
51 ];
52}
53
54thermite::for_each_float_const!(impl_consts);
55
56impl_consts!(f32 {
57 NEG_ZERO = ("-0x0.0p+0", "0x0.0p+0"),
58 E = ("0x1.5bf0a80000000p+1", "0x1.628aee0000000p-24"),
59 EULER_GAMMA = ("0x1.2788d00000000p-1", "-0x1.c824f40000000p-28"),
60 PI_SQUARED = ("0x1.3bd3cc0000000p+3", "0x1.37c8bc0000000p-22"),
61 PI_CUBED = ("0x1.f019b60000000p+4", "-0x1.b1d8a00000000p-22"),
62 PI_FOURTH = ("0x1.85a2e80000000p+6", "0x1.8521040000000p-19"),
63 FRAC_1_PI = ("0x1.45f3060000000p-2", "0x1.b939100000000p-27"),
64 FRAC_1_SQRT_2 = ("0x1.6a09e60000000p-1", "0x1.9fcef40000000p-27"),
65 FRAC_1_SQRT_3 = ("0x1.279a740000000p-1", "0x1.640cc80000000p-27"),
66 FRAC_1_SQRT_5 = ("0x1.c9f25c0000000p-2", "0x1.6ffb760000000p-28"),
67 FRAC_2_PI = ("0x1.45f3060000000p-1", "0x1.b939100000000p-26"),
68 FRAC_1_SQRT_PI = ("0x1.20dd760000000p-1", "-0x1.f7ac920000000p-26"),
69 FRAC_1_SQRT_SQRT_PI = ("0x1.8093880000000p-1", "-0x1.fd54de0000000p-26"),
70 FRAC_2_SQRT_PI = ("0x1.20dd760000000p+0", "-0x1.f7ac920000000p-25"),
71 FRAC_SQRT_PI_2 = ("0x1.c5bf8a0000000p-1", "-0x1.c962120000000p-26"),
72 FRAC_1_SQRT_TAU = ("0x1.9884540000000p-2", "-0x1.8579360000000p-27"),
73 FRAC_PI_2 = ("0x1.921fb60000000p+0", "-0x1.777a5c0000000p-25"),
74 FRAC_PI_3 = ("0x1.0c15240000000p+0", "-0x1.f4a3260000000p-26"),
75 FRAC_PI_4 = ("0x1.921fb60000000p-1", "-0x1.777a5c0000000p-26"),
76 FRAC_PI_6 = ("0x1.0c15240000000p-1", "-0x1.f4a3260000000p-27"),
77 FRAC_PI_8 = ("0x1.921fb60000000p-2", "-0x1.777a5c0000000p-27"),
78 FRAC_PI_180 = ("0x1.1df46a0000000p-6", "0x1.294e9c0000000p-33"),
79 FRAC_180_PI = ("0x1.ca5dc20000000p+5", "-0x1.670f820000000p-21"),
80 LN_2 = ("0x1.62e4300000000p-1", "-0x1.05c6100000000p-29"),
81 LN_10 = ("0x1.26bb1c0000000p+1", "-0x1.12aaba0000000p-25"),
82 LN_PI = ("0x1.250d040000000p+0", "0x1.1cf4380000000p-25"),
83 LN_TAU = ("0x1.d67f1c0000000p+0", "0x1.0c97d60000000p-25"),
84 LN_9 = ("0x1.193ea80000000p+1", "-0x1.54bf3e0000000p-25"),
85 NINE_LN_9_HI = ("0x1.3c667c0000000p+4", "0x1.40546e0000000p-21"),
86 NINE_LN_9_LO = ("-0x1.5a87640000000p-52", "0x1.7dff4c0000000p-77"),
87 FRAC_LN_PI_2 = ("0x1.250d040000000p-1", "0x1.1cf4380000000p-26"),
88 FRAC_LN_TAU_2 = ("0x1.d67f1c0000000p-1", "0x1.0c97d60000000p-26"),
89 LOG2_10 = ("0x1.a934f00000000p+1", "0x1.2f346e0000000p-24"),
90 LOG2_E = ("0x1.7154760000000p+0", "0x1.4ae0c00000000p-26"),
91 LOG2_PI = ("0x1.a6c8740000000p+0", "-0x1.6ce4420000000p-25"),
92 LOG10_2 = ("0x1.3441360000000p-2", "-0x1.ec10c00000000p-27"),
93 LOG10_E = ("0x1.bcb7b20000000p-2", "-0x1.5b235e0000000p-27"),
94 PI = ("0x1.921fb60000000p+1", "-0x1.777a5c0000000p-24"),
95 SQRT_2 = ("0x1.6a09e60000000p+0", "0x1.9fcef40000000p-26"),
96 SQRT_3 = ("0x1.bb67ae0000000p+0", "0x1.0b09960000000p-25"),
97 SQRT_5 = ("0x1.1e377a0000000p+1", "-0x1.1a02d60000000p-25"),
98 SQRT_E = ("0x1.a612980000000p+0", "0x1.c3c0d40000000p-25"),
99 EPSILON = ("0x1.0000000000000p-47", "0x0.0p+0"),
100 SQRT_EPSILON = ("0x1.6a09e60000000p-24", "0x1.9fcef40000000p-50"),
101 FOURTH_ROOT_EPSILON = ("0x1.306fe00000000p-12", "0x1.4636e20000000p-37"),
102 TAU = ("0x1.921fb60000000p+2", "-0x1.777a5c0000000p-23"),
103 SQRT_FRAC_PI_2 = ("0x1.40d9320000000p+0", "-0x1.3b1f4e0000000p-33"),
104 SQRT_TAU = ("0x1.40d9320000000p+1", "-0x1.3b1f4e0000000p-32"),
105 PHI = ("0x1.9e377a0000000p+0", "-0x1.1a02d60000000p-26"),
106 FRAC_1_PHI = ("0x1.3c6ef40000000p-1", "-0x1.1a02d60000000p-26"),
107 FRAC_1_PHI_SQUARED = ("0x1.87221a0000000p-2", "-0x1.cbfa540000000p-27"),
108 GOLDEN_ANGLE = ("0x1.3331fe0000000p+1", "0x1.7f49800000000p-24"),
109 FRAC_1_3 = ("0x1.5555560000000p-2", "-0x1.5555560000000p-27"),
110 FRAC_2_3 = ("0x1.5555560000000p-1", "-0x1.5555560000000p-26"),
111 FRAC_1_4 = ("0x1.0000000000000p-2", "0x0.0p+0"),
112 FRAC_1_6 = ("0x1.5555560000000p-3", "-0x1.5555560000000p-28"),
113 FRAC_1_E = ("0x1.78b5640000000p-2", "-0x1.3a621a0000000p-27"),
114 FRAC_NEG_1_E = ("-0x1.78b5640000000p-2", "0x1.3a621a0000000p-27"),
115 FRAC_1_2 = ("0x1.0000000000000p-1", "0x0.0p+0"),
116 FRAC_3_4 = ("0x1.8000000000000p-1", "0x0.0p+0"),
117 LN_LN_2 = ("-0x1.774f2a0000000p-2", "0x1.08a5180000000p-28"),
118 SQRT_LN_4 = ("0x1.2d6abe0000000p+0", "0x1.12bf100000000p-26"),
119 FRAC_2PI_3 = ("0x1.0c15240000000p+1", "-0x1.f4a3260000000p-25"),
120 FRAC_3PI_4 = ("0x1.2d97c80000000p+1", "-0x1.99bc5c0000000p-28"),
121 FRAC_4PI_3 = ("0x1.0c15240000000p+2", "-0x1.f4a3260000000p-24"),
122 FOUR_PI = ("0x1.921fb60000000p+3", "-0x1.777a5c0000000p-22"),
123 FRAC_1_4PI = ("0x1.45f3060000000p-4", "0x1.b939100000000p-29"),
124 FRAC_1_TAU = ("0x1.45f3060000000p-3", "0x1.b939100000000p-28"),
125 SQRT_PI = ("0x1.c5bf8a0000000p+0", "-0x1.c962120000000p-25"),
126 PI_MINUS_3 = ("0x1.21fb540000000p-3", "0x1.10b4620000000p-29"),
127 FOUR_MINUS_PI = ("0x1.b7812a0000000p-1", "0x1.dde9740000000p-26"),
128 PI_POW_E = ("0x1.6758b60000000p+4", "-0x1.e3f7780000000p-23"),
129 CBRT_2 = ("0x1.428a300000000p+0", "-0x1.9ca35e0000000p-26"),
130 CBRT_3 = ("0x1.7137440000000p+0", "0x1.2247de0000000p-25"),
131 CBRT_PI = ("0x1.76ef7e0000000p+0", "0x1.cc412e0000000p-26"),
132 FRAC_1_CBRT_PI = ("0x1.5d95e00000000p-1", "-0x1.285aa20000000p-26"),
133 FRAC_1_SQRT_E = ("0x1.368b300000000p-1", "-0x1.c834fc0000000p-28"),
134 E_POW_PI = ("0x1.7240460000000p+4", "0x1.d612680000000p-21"),
135 GELFOND_SCHNEIDER = ("0x1.5523720000000p+1", "-0x1.0c05000000000p-24"),
136 SIN_1 = ("0x1.aed5480000000p-1", "0x1.e1219e0000000p-26"),
137 COS_1 = ("0x1.14a2800000000p-1", "0x1.f6a0d20000000p-26"),
138 TAN_1 = ("0x1.8eb2460000000p+0", "-0x1.a08e2e0000000p-27"),
139 SINH_1 = ("0x1.2cd9fc0000000p+0", "0x1.13ae600000000p-26"),
140 COSH_1 = ("0x1.8b07560000000p+0", "-0x1.c4c1560000000p-25"),
141 TANH_1 = ("0x1.85efac0000000p-1", "-0x1.5d618e0000000p-26"),
142 LN_PHI = ("0x1.ecc2ca0000000p-2", "0x1.d8a2c20000000p-27"),
143 FRAC_1_LN_PHI = ("0x1.09fec00000000p+1", "0x1.24f3240000000p-24"),
144 FRAC_1_EULER_GAMMA = ("0x1.bb82260000000p+0", "0x1.ea057e0000000p-25"),
145 EULER_GAMMA_SQUARED = ("0x1.552c980000000p-2", "-0x1.7f25aa0000000p-32"),
146 ZETA_2 = ("0x1.a51a660000000p+0", "0x1.2983ea0000000p-27"),
147 ZETA_3 = ("0x1.33ba000000000p+0", "0x1.3c01880000000p-26"),
148 ZETA_4 = ("0x1.1513220000000p+0", "0x1.58fb0a0000000p-25"),
149 CATALAN = ("0x1.d4f9720000000p-1", "-0x1.82fd940000000p-26"),
150 GLAISHER = ("0x1.484d240000000p+0", "0x1.e5fb0e0000000p-25"),
151 KHINCHIN = ("0x1.57bce40000000p+1", "0x1.1e36860000000p-26"),
152 LEVY = ("0x1.a34e2a0000000p+1", "0x1.5ecb7e0000000p-25"),
153 EXTREME_VALUE_SKEWNESS = ("0x1.23b95c0000000p+0", "-0x1.5e71680000000p-27"),
154 RAYLEIGH_SKEWNESS = ("0x1.4320f00000000p-1", "-0x1.6415c00000000p-27"),
155 RAYLEIGH_KURTOSIS_EXCESS = ("0x1.f5f1620000000p-3", "-0x1.cf27420000000p-28"),
156 RAYLEIGH_KURTOSIS = ("0x1.9f5f160000000p+1", "0x1.186c600000000p-27"),
157 FEIGENBAUM_DELTA = ("0x1.2ad4320000000p+2", "0x1.f8c3920000000p-23"),
158 PLASTIC_RATIO = ("0x1.5320b80000000p+0", "-0x1.626b760000000p-25"),
159 FRAC_1_PLASTIC_RATIO = ("0x1.827f540000000p-1", "-0x1.5bf5680000000p-26"),
160 FRAC_1_PLASTIC_RATIO_SQUARED = ("0x1.23c21c0000000p-1", "-0x1.68e1860000000p-26"),
161 GAUSS = ("0x1.ab54360000000p-1", "-0x1.952b300000000p-27"),
162 LEMNISCATE = ("0x1.4f9f940000000p+1", "0x1.f3ea160000000p-24"),
163 DOTTIE = ("0x1.7a695e0000000p-1", "-0x1.3e18ea0000000p-28"),
164 OMEGA = ("0x1.22609a0000000p-1", "0x1.f1d2ca0000000p-26"),
165 PSI = ("0x1.ae10bc0000000p+1", "-0x1.c4beda0000000p-26"),
166 LAPLACE_LIMIT = ("0x1.53531a0000000p-1", "0x1.fef9ce0000000p-26"),
167 ERDOS_BORWEIN = ("0x1.9b50600000000p+0", "-0x1.86f0380000000p-26"),
168 NIVEN = ("0x1.b488b80000000p+0", "-0x1.81e3ea0000000p-26"),
169 SOLDNER = ("0x1.738cf00000000p+0", "-0x1.b382bc0000000p-25"),
170 FRANSEN_ROBINSON = ("0x1.6765040000000p+1", "-0x1.5e71ac0000000p-27"),
171 GOLOMB_DICKMAN = ("0x1.3fa82e0000000p-1", "0x1.2b4e420000000p-28"),
172 TWIN_PRIME = ("0x1.5200ba0000000p-1", "0x1.8485680000000p-26"),
173 MERTENS = ("0x1.0bc5ec0000000p-2", "0x1.c967fe0000000p-27"),
174 ARTIN = ("0x1.7eee460000000p-2", "-0x1.4b68140000000p-29"),
175});
176
177impl_consts!(f64 {
178 NEG_ZERO = ("-0x0.0p+0", "0x0.0p+0"),
179 E = ("0x1.5bf0a8b145769p+1", "0x1.4d57ee2b1013ap-53"),
180 EULER_GAMMA = ("0x1.2788cfc6fb619p-1", "-0x1.6cb90701fbfabp-58"),
181 PI_SQUARED = ("0x1.3bd3cc9be45dep+3", "0x1.692b71366cc04p-51"),
182 PI_CUBED = ("0x1.f019b59389d7cp+4", "0x1.e019558e5380dp-52"),
183 PI_FOURTH = ("0x1.85a2e8c290826p+6", "-0x1.cc0cdf4bfa1e7p-48"),
184 FRAC_1_PI = ("0x1.45f306dc9c883p-2", "-0x1.6b01ec5417056p-56"),
185 FRAC_1_SQRT_2 = ("0x1.6a09e667f3bcdp-1", "-0x1.bdd3413b26456p-55"),
186 FRAC_1_SQRT_3 = ("0x1.279a74590331cp-1", "0x1.34863e0792bedp-55"),
187 FRAC_1_SQRT_5 = ("0x1.c9f25c5bfedd9p-2", "0x1.ab294a33804a5p-57"),
188 FRAC_2_PI = ("0x1.45f306dc9c883p-1", "-0x1.6b01ec5417056p-55"),
189 FRAC_1_SQRT_PI = ("0x1.20dd750429b6dp-1", "0x1.1ae3a914fed80p-57"),
190 FRAC_1_SQRT_SQRT_PI = ("0x1.8093870155910p-1", "-0x1.c225764e553cap-56"),
191 FRAC_2_SQRT_PI = ("0x1.20dd750429b6dp+0", "0x1.1ae3a914fed80p-56"),
192 FRAC_SQRT_PI_2 = ("0x1.c5bf891b4ef6bp-1", "-0x1.618f13eb7ca89p-55"),
193 FRAC_1_SQRT_TAU = ("0x1.9884533d43651p-2", "-0x1.cbc0d30ebfd15p-56"),
194 FRAC_PI_2 = ("0x1.921fb54442d18p+0", "0x1.1a62633145c07p-54"),
195 FRAC_PI_3 = ("0x1.0c152382d7366p+0", "-0x1.ee6913347c2a6p-54"),
196 FRAC_PI_4 = ("0x1.921fb54442d18p-1", "0x1.1a62633145c07p-55"),
197 FRAC_PI_6 = ("0x1.0c152382d7366p-1", "-0x1.ee6913347c2a6p-55"),
198 FRAC_PI_8 = ("0x1.921fb54442d18p-2", "0x1.1a62633145c07p-56"),
199 FRAC_PI_180 = ("0x1.1df46a2529d39p-6", "0x1.5c1d8becdd291p-62"),
200 FRAC_180_PI = ("0x1.ca5dc1a63c1f8p+5", "-0x1.1e7ab456405f9p-49"),
201 LN_2 = ("0x1.62e42fefa39efp-1", "0x1.abc9e3b39803fp-56"),
202 LN_10 = ("0x1.26bb1bbb55516p+1", "-0x1.f48ad494ea3e9p-53"),
203 LN_PI = ("0x1.250d048e7a1bdp+0", "0x1.7abf2ad8d5088p-57"),
204 LN_TAU = ("0x1.d67f1c864beb5p+0", "-0x1.65b5a1b7ff5dfp-54"),
205 LN_9 = ("0x1.193ea7aad030bp+1", "-0x1.a256f99caabebp-53"),
206 NINE_LN_9_HI = ("0x1.3c667ca02a36cp+4", "-0x1.5a876341005a2p-52"),
207 NINE_LN_9_LO = ("-0x1.5a876341005a2p-52", "0x1.76263aeb659a7p-107"),
208 FRAC_LN_PI_2 = ("0x1.250d048e7a1bdp-1", "0x1.7abf2ad8d5088p-58"),
209 FRAC_LN_TAU_2 = ("0x1.d67f1c864beb5p-1", "-0x1.65b5a1b7ff5dfp-55"),
210 LOG2_10 = ("0x1.a934f0979a371p+1", "0x1.7f2495fb7fa6dp-53"),
211 LOG2_E = ("0x1.71547652b82fep+0", "0x1.777d0ffda0d24p-56"),
212 LOG2_PI = ("0x1.a6c873498ddf7p+0", "0x1.6c36cb93c202ap-54"),
213 LOG10_2 = ("0x1.34413509f79ffp-2", "-0x1.9dc1da994fd21p-59"),
214 LOG10_E = ("0x1.bcb7b1526e50ep-2", "0x1.95355baaafad3p-57"),
215 PI = ("0x1.921fb54442d18p+1", "0x1.1a62633145c07p-53"),
216 SQRT_2 = ("0x1.6a09e667f3bcdp+0", "-0x1.bdd3413b26456p-54"),
217 SQRT_3 = ("0x1.bb67ae8584caap+0", "0x1.cec95d0b5c1e3p-54"),
218 SQRT_5 = ("0x1.1e3779b97f4a8p+1", "-0x1.f506319fcfd19p-54"),
219 SQRT_E = ("0x1.a61298e1e069cp+0", "-0x1.b4690082a4906p-55"),
220 EPSILON = ("0x1.0000000000000p-105", "0x0.0p+0"),
221 SQRT_EPSILON = ("0x1.6a09e667f3bcdp-53", "-0x1.bdd3413b26456p-107"),
222 FOURTH_ROOT_EPSILON = ("0x1.ae89f995ad3adp-27", "0x1.7a1cd345dcc81p-81"),
223 TAU = ("0x1.921fb54442d18p+2", "0x1.1a62633145c07p-52"),
224 SQRT_FRAC_PI_2 = ("0x1.40d931ff62706p+0", "-0x1.a6a0d6f814637p-54"),
225 SQRT_TAU = ("0x1.40d931ff62706p+1", "-0x1.a6a0d6f814637p-53"),
226 PHI = ("0x1.9e3779b97f4a8p+0", "-0x1.f506319fcfd19p-55"),
227 FRAC_1_PHI = ("0x1.3c6ef372fe950p-1", "-0x1.f506319fcfd19p-55"),
228 FRAC_1_PHI_SQUARED = ("0x1.8722191a02d61p-2", "-0x1.5f39cc0605ceep-60"),
229 GOLDEN_ANGLE = ("0x1.3331febfa4bfcp+1", "-0x1.9ebb7adf6e3c9p-53"),
230 FRAC_1_3 = ("0x1.5555555555555p-2", "0x1.5555555555555p-56"),
231 FRAC_2_3 = ("0x1.5555555555555p-1", "0x1.5555555555555p-55"),
232 FRAC_1_4 = ("0x1.0000000000000p-2", "0x0.0p+0"),
233 FRAC_1_6 = ("0x1.5555555555555p-3", "0x1.5555555555555p-57"),
234 FRAC_1_E = ("0x1.78b56362cef38p-2", "-0x1.ca8a4270fadf5p-57"),
235 FRAC_NEG_1_E = ("-0x1.78b56362cef38p-2", "0x1.ca8a4270fadf5p-57"),
236 FRAC_1_2 = ("0x1.0000000000000p-1", "0x0.0p+0"),
237 FRAC_3_4 = ("0x1.8000000000000p-1", "0x0.0p+0"),
238 LN_LN_2 = ("-0x1.774f29bdd6b9fp-2", "0x1.7c1fc8982991dp-56"),
239 SQRT_LN_4 = ("0x1.2d6abe44afc43p+0", "0x1.fb5e9fb2b55bbp-56"),
240 FRAC_2PI_3 = ("0x1.0c152382d7366p+1", "-0x1.ee6913347c2a6p-53"),
241 FRAC_3PI_4 = ("0x1.2d97c7f3321d2p+1", "0x1.a79394c9e8a0ap-54"),
242 FRAC_4PI_3 = ("0x1.0c152382d7366p+2", "-0x1.ee6913347c2a6p-52"),
243 FOUR_PI = ("0x1.921fb54442d18p+3", "0x1.1a62633145c07p-51"),
244 FRAC_1_4PI = ("0x1.45f306dc9c883p-4", "-0x1.6b01ec5417056p-58"),
245 FRAC_1_TAU = ("0x1.45f306dc9c883p-3", "-0x1.6b01ec5417056p-57"),
246 SQRT_PI = ("0x1.c5bf891b4ef6bp+0", "-0x1.618f13eb7ca89p-54"),
247 PI_MINUS_3 = ("0x1.21fb54442d184p-3", "0x1.a62633145c06ep-57"),
248 FOUR_MINUS_PI = ("0x1.b7812aeef4b9fp-1", "-0x1.a62633145c06ep-57"),
249 PI_POW_E = ("0x1.6758b5c381111p+4", "0x1.c590b3b71e332p-51"),
250 CBRT_2 = ("0x1.428a2f98d728bp+0", "-0x1.ddc22548ea41ep-56"),
251 CBRT_3 = ("0x1.7137449123ef6p+0", "0x1.73779fc5b15b9p-54"),
252 CBRT_PI = ("0x1.76ef7e73104b8p+0", "-0x1.d41ba28e4f999p-54"),
253 FRAC_1_CBRT_PI = ("0x1.5d95df6bd2aeep-1", "-0x1.9749756e80c72p-55"),
254 FRAC_1_SQRT_E = ("0x1.368b2fc6f960ap-1", "-0x1.85314b9559e64p-61"),
255 E_POW_PI = ("0x1.724046eb0933ap+4", "-0x1.84c962dd81952p-50"),
256 GELFOND_SCHNEIDER = ("0x1.55237179fd803p+1", "0x1.718b63176f20ep-55"),
257 SIN_1 = ("0x1.aed548f090ceep-1", "0x1.06374f484e288p-59"),
258 COS_1 = ("0x1.14a280fb5068cp-1", "-0x1.b71edcc9344bcp-55"),
259 TAN_1 = ("0x1.8eb245cbee3a6p+0", "-0x1.1d4ce0afb373bp-54"),
260 SINH_1 = ("0x1.2cd9fc44eb982p+0", "0x1.6a0092521fc19p-54"),
261 COSH_1 = ("0x1.8b07551d9f550p+0", "0x1.30af4a040065bp-54"),
262 TANH_1 = ("0x1.85efab514f394p-1", "0x1.5618caf8a4f11p-55"),
263 LN_PHI = ("0x1.ecc2caec5160ap-2", "-0x1.ad07ef7ed5a5dp-56"),
264 FRAC_1_LN_PHI = ("0x1.09fec09279922p+1", "-0x1.6bb3871417f12p-53"),
265 FRAC_1_EULER_GAMMA = ("0x1.bb8226f502bf8p+0", "-0x1.7abec73926687p-56"),
266 EULER_GAMMA_SQUARED = ("0x1.552c97fa03695p-2", "0x1.456320745c86bp-56"),
267 ZETA_2 = ("0x1.a51a6625307d3p+0", "0x1.1873d8912200cp-55"),
268 ZETA_3 = ("0x1.33ba004f00621p+0", "0x1.c1b8b8ae2cf35p-55"),
269 ZETA_4 = ("0x1.151322ac7d848p+0", "0x1.b5f91211196e5p-55"),
270 CATALAN = ("0x1.d4f9713e8135dp-1", "0x1.1485608b8df4dp-58"),
271 GLAISHER = ("0x1.484d24f2fd873p+0", "0x1.313ed56e343dap-56"),
272 KHINCHIN = ("0x1.57bce423c6d0dp+1", "0x1.de5fbe7c728cdp-53"),
273 LEVY = ("0x1.a34e2a57b2df8p+1", "-0x1.4fd4e0ab83370p-53"),
274 EXTREME_VALUE_SKEWNESS = ("0x1.23b95bd431d31p+0", "0x1.08492b4c8dae6p-54"),
275 RAYLEIGH_SKEWNESS = ("0x1.4320efa6fa904p-1", "-0x1.8bc4ccb8fa389p-56"),
276 RAYLEIGH_KURTOSIS_EXCESS = ("0x1.f5f161186c5f2p-3", "-0x1.59a3e3c6197d7p-58"),
277 RAYLEIGH_KURTOSIS = ("0x1.9f5f161186c5fp+1", "0x1.d4cb83873cd05p-55"),
278 FEIGENBAUM_DELTA = ("0x1.2ad432fc61c97p+2", "0x1.1d1c04ed45ae2p-52"),
279 PLASTIC_RATIO = ("0x1.5320b74eca44bp+0", "-0x1.29f43bb41df5dp-55"),
280 FRAC_1_PLASTIC_RATIO = ("0x1.827f5352054c6p-1", "0x1.47a1a7fb8d96dp-55"),
281 FRAC_1_PLASTIC_RATIO_SQUARED = ("0x1.23c21b4b8f3cfp-1", "0x1.8e6a1c5054736p-55"),
282 GAUSS = ("0x1.ab54359ab5344p-1", "-0x1.29db2257d3fd6p-57"),
283 LEMNISCATE = ("0x1.4f9f94f9f50b0p+1", "0x1.b9e61ddaeb023p-53"),
284 DOTTIE = ("0x1.7a695dd83ce2ep-1", "-0x1.1a9573fe3c5bdp-55"),
285 OMEGA = ("0x1.22609af8e9657p-1", "0x1.2f57eed531437p-55"),
286 PSI = ("0x1.ae10bbc76824bp+1", "-0x1.c2c8f175467e3p-53"),
287 LAPLACE_LIMIT = ("0x1.53531aff7ce6dp-1", "0x1.2ce0dafecc8fbp-57"),
288 ERDOS_BORWEIN = ("0x1.9b505f9e43f22p+0", "0x1.0dfcdcb14a049p-54"),
289 NIVEN = ("0x1.b488b79f87059p+0", "-0x1.6e8abc567bd64p-56"),
290 SOLDNER = ("0x1.738cef263ea25p+0", "-0x1.bd39894e88b11p-55"),
291 FRANSEN_ROBINSON = ("0x1.676503ea18e54p+1", "-0x1.a3c17cf5296e0p-53"),
292 GOLOMB_DICKMAN = ("0x1.3fa82e2569c83p-1", "0x1.ea135cf9792a6p-55"),
293 TWIN_PRIME = ("0x1.5200bac242b40p-1", "-0x1.7c24cb5afd011p-55"),
294 MERTENS = ("0x1.0bc5ece4b3fedp-2", "0x1.1f379936e0b34p-56"),
295 ARTIN = ("0x1.7eee45d692fd8p-2", "0x1.3e0716e745b46p-56"),
296});
297
298impl_consts!(LOG f32 [
299 ("0x1.d20ae00000000p-1", "0x1.de60aa0000000p-28"), ("0x1.7154760000000p-1", "0x1.4ae0c00000000p-27"), ("0x1.3e1f9c0000000p-1", "0x1.9f2eee0000000p-26"), ("0x1.1dc0ae0000000p-1", "-0x1.dda6380000000p-26"), ("0x1.071dae0000000p-1", "0x1.f7c96a0000000p-26"), ("0x1.ec709e0000000p-2", "-0x1.e2fe020000000p-29"), ("0x1.d20ae00000000p-2", "0x1.de60aa0000000p-29"), ("0x1.bcb7b20000000p-2", "-0x1.5b235e0000000p-27"), ("0x1.ab0a8a0000000p-2", "0x1.4518740000000p-31"), ("0x1.9c16820000000p-2", "-0x1.a3cddc0000000p-28"), ("0x1.8f3a680000000p-2", "0x1.8014a80000000p-28"), ("0x1.8404700000000p-2", "0x1.10dfaa0000000p-28"), ("0x1.7a21c00000000p-2", "0x1.17d8500000000p-29"), ("0x1.7154760000000p-2", "0x1.4ae0c00000000p-28"), ("0x1.696d540000000p-2", "0x1.0760680000000p-27"), ("0x1.62479a0000000p-2", "-0x1.e2a68a0000000p-28"), ("0x1.5bc6340000000p-2", "-0x1.1fffc20000000p-31"), ("0x1.55d1d20000000p-2", "-0x1.b703f60000000p-27"), ("0x1.50577c0000000p-2", "0x1.a83cf40000000p-27"), ("0x1.4b47a20000000p-2", "0x1.1831800000000p-27"), ("0x1.4695520000000p-2", "0x1.22d24e0000000p-29"), ("0x1.4235b40000000p-2", "-0x1.8912be0000000p-28"), ("0x1.3e1f9c0000000p-2", "0x1.9f2eee0000000p-27"), ("0x1.3a4b400000000p-2", "-0x1.37ecc00000000p-28"), ("0x1.36b1ea0000000p-2", "0x1.a5101c0000000p-27"), ("0x1.334dd80000000p-2", "-0x1.40ea420000000p-27"), ("0x1.301a020000000p-2", "-0x1.03afa00000000p-27"), ("0x1.2d12080000000p-2", "0x1.02e7c00000000p-27"), ("0x1.2a32160000000p-2", "-0x1.8a11340000000p-27"), ("0x1.2776c60000000p-2", "-0x1.e20c800000000p-27"), ],
330["0x1.62e4000000000p-1", "0x1.7f7e000000000p-20", "-0x1.c610ca0000000p-37"]);
346
347impl_consts!(LOG f64 [
348 ("0x1.d20ae03bcc153p-1", "-0x1.3a34bf2f1ab83p-55"), ("0x1.71547652b82fep-1", "0x1.777d0ffda0d24p-57"), ("0x1.3e1f9ccf97777p-1", "-0x1.db618df721f98p-55"), ("0x1.1dc0ad112ce3ep-1", "0x1.769f645267d4ap-55"), ("0x1.071daefbe4b4ap-1", "-0x1.9ea6c1f1794eep-55"), ("0x1.ec709dc3a03fdp-2", "0x1.d27f05548af0cp-56"), ("0x1.d20ae03bcc153p-2", "-0x1.3a34bf2f1ab83p-56"), ("0x1.bcb7b1526e50ep-2", "0x1.95355baaafad3p-57"), ("0x1.ab0a8a0a28c3ap-2", "0x1.b6455c79fed99p-56"), ("0x1.9c1681970c88fp-2", "0x1.e3221f6298af5p-59"), ("0x1.8f3a6860052a1p-2", "-0x1.afe7dc91a78f0p-56"), ("0x1.8404704437eabp-2", "0x1.ac5dd927e6112p-56"), ("0x1.7a21c022fb0a1p-2", "0x1.a9f5bd6a60428p-56"), ("0x1.71547652b82fep-2", "0x1.777d0ffda0d24p-58"), ("0x1.696d5483b0344p-2", "0x1.78ec9931dd399p-58"), ("0x1.62479987565dap-2", "0x1.2708bb7e5784cp-56"), ("0x1.5bc633f70001fp-2", "-0x1.1e2e054e1a1f4p-57"), ("0x1.55d1d1247e049p-2", "-0x1.09a5cb7ff50e7p-56"), ("0x1.50577cd41e7a0p-2", "-0x1.795d4f1c45fa7p-56"), ("0x1.4b47a28c18bfbp-2", "-0x1.a4ad57d5c1ac2p-58"), ("0x1.469552245a49dp-2", "-0x1.5b806338b1165p-59"), ("0x1.4235b39dbb506p-2", "0x1.15529d613d714p-56"), ("0x1.3e1f9ccf97777p-2", "-0x1.db618df721f98p-56"), ("0x1.3a4b3fb204cfep-2", "-0x1.431b7d1b937b5p-60"), ("0x1.36b1ead2880e2p-2", "-0x1.a2f0fee978f59p-57"), ("0x1.334dd75f8adeep-2", "-0x1.c3950ba6ceb12p-56"), ("0x1.301a017e282fcp-2", "0x1.dbdacfa0d9b0fp-57"), ("0x1.2d12088173e01p-2", "0x1.bffac2f932436p-57"), ("0x1.2a32153af765ep-2", "0x1.c22c8956209efp-56"), ("0x1.2776c50ef9bfep-2", "0x1.e4b29ccc535d4p-56"), ],
379["0x1.62e42fefa3800p-1", "0x1.ef35793c76800p-45", "-0x1.9ff0342542fc3p-90"]);