pxfm/
pow_tables.rs

1/*
2 * // Copyright (c) Radzivon Bartoshyk 7/2025. All rights reserved.
3 * //
4 * // Redistribution and use in source and binary forms, with or without modification,
5 * // are permitted provided that the following conditions are met:
6 * //
7 * // 1.  Redistributions of source code must retain the above copyright notice, this
8 * // list of conditions and the following disclaimer.
9 * //
10 * // 2.  Redistributions in binary form must reproduce the above copyright notice,
11 * // this list of conditions and the following disclaimer in the documentation
12 * // and/or other materials provided with the distribution.
13 * //
14 * // 3.  Neither the name of the copyright holder nor the names of its
15 * // contributors may be used to endorse or promote products derived from
16 * // this software without specific prior written permission.
17 * //
18 * // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 * // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 * // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 * // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 * // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 * // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 * // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 * // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29use crate::dyadic_float::{DyadicFloat128, DyadicSign};
30
31pub(crate) static POW_INVERSE: [u64; 182] = [
32    0x3ff6900000000000,
33    0x3ff6700000000000,
34    0x3ff6500000000000,
35    0x3ff6300000000000,
36    0x3ff6100000000000,
37    0x3ff5f00000000000,
38    0x3ff5e00000000000,
39    0x3ff5c00000000000,
40    0x3ff5a00000000000,
41    0x3ff5800000000000,
42    0x3ff5600000000000,
43    0x3ff5400000000000,
44    0x3ff5300000000000,
45    0x3ff5100000000000,
46    0x3ff4f00000000000,
47    0x3ff4e00000000000,
48    0x3ff4c00000000000,
49    0x3ff4a00000000000,
50    0x3ff4800000000000,
51    0x3ff4700000000000,
52    0x3ff4500000000000,
53    0x3ff4400000000000,
54    0x3ff4200000000000,
55    0x3ff4000000000000,
56    0x3ff3f00000000000,
57    0x3ff3d00000000000,
58    0x3ff3c00000000000,
59    0x3ff3a00000000000,
60    0x3ff3900000000000,
61    0x3ff3700000000000,
62    0x3ff3600000000000,
63    0x3ff3400000000000,
64    0x3ff3300000000000,
65    0x3ff3200000000000,
66    0x3ff3000000000000,
67    0x3ff2f00000000000,
68    0x3ff2d00000000000,
69    0x3ff2c00000000000,
70    0x3ff2b00000000000,
71    0x3ff2900000000000,
72    0x3ff2800000000000,
73    0x3ff2700000000000,
74    0x3ff2500000000000,
75    0x3ff2400000000000,
76    0x3ff2300000000000,
77    0x3ff2100000000000,
78    0x3ff2000000000000,
79    0x3ff1f00000000000,
80    0x3ff1e00000000000,
81    0x3ff1c00000000000,
82    0x3ff1b00000000000,
83    0x3ff1a00000000000,
84    0x3ff1900000000000,
85    0x3ff1700000000000,
86    0x3ff1600000000000,
87    0x3ff1500000000000,
88    0x3ff1400000000000,
89    0x3ff1300000000000,
90    0x3ff1200000000000,
91    0x3ff1000000000000,
92    0x3ff0f00000000000,
93    0x3ff0e00000000000,
94    0x3ff0d00000000000,
95    0x3ff0c00000000000,
96    0x3ff0b00000000000,
97    0x3ff0a00000000000,
98    0x3ff0900000000000,
99    0x3ff0800000000000,
100    0x3ff0700000000000,
101    0x3ff0600000000000,
102    0x3ff0500000000000,
103    0x3ff0400000000000,
104    0x3ff0300000000000,
105    0x3ff0200000000000,
106    0x3ff0000000000000,
107    0x3ff0000000000000,
108    0x3fefd00000000000,
109    0x3fefb00000000000,
110    0x3fef900000000000,
111    0x3fef700000000000,
112    0x3fef500000000000,
113    0x3fef300000000000,
114    0x3fef100000000000,
115    0x3fef000000000000,
116    0x3feee00000000000,
117    0x3feec00000000000,
118    0x3feea00000000000,
119    0x3fee800000000000,
120    0x3fee600000000000,
121    0x3fee500000000000,
122    0x3fee300000000000,
123    0x3fee100000000000,
124    0x3fedf00000000000,
125    0x3fedd00000000000,
126    0x3fedc00000000000,
127    0x3feda00000000000,
128    0x3fed800000000000,
129    0x3fed700000000000,
130    0x3fed500000000000,
131    0x3fed300000000000,
132    0x3fed200000000000,
133    0x3fed000000000000,
134    0x3fece00000000000,
135    0x3fecd00000000000,
136    0x3fecb00000000000,
137    0x3fec900000000000,
138    0x3fec800000000000,
139    0x3fec600000000000,
140    0x3fec500000000000,
141    0x3fec300000000000,
142    0x3fec200000000000,
143    0x3fec000000000000,
144    0x3febf00000000000,
145    0x3febd00000000000,
146    0x3febc00000000000,
147    0x3feba00000000000,
148    0x3feb900000000000,
149    0x3feb700000000000,
150    0x3feb600000000000,
151    0x3feb400000000000,
152    0x3feb300000000000,
153    0x3feb100000000000,
154    0x3feb000000000000,
155    0x3feae00000000000,
156    0x3fead00000000000,
157    0x3feac00000000000,
158    0x3feaa00000000000,
159    0x3fea900000000000,
160    0x3fea700000000000,
161    0x3fea600000000000,
162    0x3fea500000000000,
163    0x3fea300000000000,
164    0x3fea200000000000,
165    0x3fea100000000000,
166    0x3fe9f00000000000,
167    0x3fe9e00000000000,
168    0x3fe9d00000000000,
169    0x3fe9c00000000000,
170    0x3fe9a00000000000,
171    0x3fe9900000000000,
172    0x3fe9800000000000,
173    0x3fe9600000000000,
174    0x3fe9500000000000,
175    0x3fe9400000000000,
176    0x3fe9300000000000,
177    0x3fe9100000000000,
178    0x3fe9000000000000,
179    0x3fe8f00000000000,
180    0x3fe8e00000000000,
181    0x3fe8d00000000000,
182    0x3fe8b00000000000,
183    0x3fe8a00000000000,
184    0x3fe8900000000000,
185    0x3fe8800000000000,
186    0x3fe8700000000000,
187    0x3fe8600000000000,
188    0x3fe8400000000000,
189    0x3fe8300000000000,
190    0x3fe8200000000000,
191    0x3fe8100000000000,
192    0x3fe8000000000000,
193    0x3fe7f00000000000,
194    0x3fe7e00000000000,
195    0x3fe7c00000000000,
196    0x3fe7b00000000000,
197    0x3fe7a00000000000,
198    0x3fe7900000000000,
199    0x3fe7800000000000,
200    0x3fe7700000000000,
201    0x3fe7600000000000,
202    0x3fe7500000000000,
203    0x3fe7400000000000,
204    0x3fe7300000000000,
205    0x3fe7200000000000,
206    0x3fe7100000000000,
207    0x3fe7000000000000,
208    0x3fe6f00000000000,
209    0x3fe6e00000000000,
210    0x3fe6d00000000000,
211    0x3fe6c00000000000,
212    0x3fe6b00000000000,
213    0x3fe6a00000000000,
214];
215
216pub(crate) static POW_LOG_INV: [(u64, u64); 182] = [
217    (0xbd2e9e439f105039, 0xbfd5ff3070a79000),
218    (0x3cde63af2df7ba69, 0xbfd5a42ab0f4d000),
219    (0xbd23167e63081cf7, 0xbfd548a2c3add000),
220    (0xbd234d7aaf04d104, 0xbfd4ec9732600000),
221    (0x3d38bccffe1a0f8c, 0xbfd4900680401000),
222    (0x3d3fb129931715ad, 0xbfd432ef2a04f000),
223    (0xbd3f8ef43049f7d3, 0xbfd404308686a000),
224    (0xbd37a71cbcd735d0, 0xbfd3a64c55694000),
225    (0x3d25594dd4c58092, 0xbfd347dd9a988000),
226    (0x3d267b1e99b72bd8, 0xbfd2e8e2bae12000),
227    (0xbd3a8d7ad24c13f0, 0xbfd2895a13de8000),
228    (0x3d3a6976f5eb0963, 0xbfd22941fbcf8000),
229    (0xbd27946c040cbe77, 0xbfd1f8ff9e48a000),
230    (0xbd2b7b3a7a361c9a, 0xbfd1980d2dd42000),
231    (0x3d3d3e8499d67123, 0xbfd136870293b000),
232    (0x3d34ab9d817d52cd, 0xbfd1058bf9ae5000),
233    (0xbd0c6bee7ef4030e, 0xbfd0a324e2739000),
234    (0xbcf036b89ef42d7f, 0xbfd0402594b4d000),
235    (0x3d0d572aab993c87, 0xbfcfb9186d5e4000),
236    (0x3d2323e3a09202fe, 0xbfcf550a564b8000),
237    (0x3d26805b80e8e6ff, 0xbfce8c0252aa6000),
238    (0x3d3a342c2af0003c, 0xbfce27076e2b0000),
239    (0x3d21ba91bbca681b, 0xbfcd5c216b4fc000),
240    (0x3d27794f689f8434, 0xbfcc8ff7c79aa000),
241    (0x3d2cfd73dee38a40, 0xbfcc2968558c2000),
242    (0x3d34b722ec011f31, 0xbfcb5b519e8fc000),
243    (0x3cba4e633fcd9066, 0xbfcaf3c94e80c000),
244    (0x3d3539cd91dc9f0b, 0xbfca23bc1fe2c000),
245    (0x3d21f2a8a1ce0ffc, 0xbfc9bb362e7e0000),
246    (0xbd3a8154b13d72d5, 0xbfc8e928de886000),
247    (0xbd322120401202fc, 0xbfc87fa06520c000),
248    (0x3d2bdb9072534a58, 0xbfc7ab890210e000),
249    (0x3d30b66c99018aa1, 0xbfc740f8f5404000),
250    (0x3d3bc6e557134767, 0xbfc6d60fe719e000),
251    (0x3d38586f183bebf2, 0xbfc5ff3070a7a000),
252    (0xbcf0ba68b7555d4a, 0xbfc59338d9982000),
253    (0x3d34354bb3f219e5, 0xbfc4ba36f39a6000),
254    (0x3d170cc16135783c, 0xbfc44d2b6ccb8000),
255    (0xbd28a72a62b8c13f, 0xbfc3dfc2b0ecc000),
256    (0x3cd680b5ce3ecb05, 0xbfc303d718e48000),
257    (0x3d35b967f4471dfc, 0xbfc29552f8200000),
258    (0x3d24d20ab840e7f6, 0xbfc2266f190a6000),
259    (0xbd1563451027c750, 0xbfc1478584674000),
260    (0xbd3cb2cd2ee2f482, 0xbfc0d77e7cd08000),
261    (0x3d2a47579cdc0a3d, 0xbfc0671512ca6000),
262    (0x3d3d599e83368e91, 0xbfbf0a30c0118000),
263    (0x3d2a342c2af0003c, 0xbfbe27076e2b0000),
264    (0x3d29454379135713, 0xbfbd4313d66cc000),
265    (0xbd1d0c57585fbe06, 0xbfbc5e548f5bc000),
266    (0xbd3563650bd22a9c, 0xbfba926d3a4ac000),
267    (0x3d28a64826787061, 0xbfb9ab4246204000),
268    (0xbd3b20f5acb42a66, 0xbfb8c345d6318000),
269    (0xbd32cc844480c89b, 0xbfb7da766d7b0000),
270    (0xbd30c3b1dee9c4f8, 0xbfb60658a9374000),
271    (0xbd383f69278e686a, 0xbfb51b073f060000),
272    (0xbd1bc0eeea7c9acd, 0xbfb42edcbea64000),
273    (0xbd31d09299837610, 0xbfb341d7961bc000),
274    (0xbd3416f8fb69a701, 0xbfb253f62f0a0000),
275    (0x3d147c5e768fa309, 0xbfb16536eea38000),
276    (0x3d2d599e83368e91, 0xbfaf0a30c0118000),
277    (0xbd16a423c78a64b0, 0xbfad276b8adb0000),
278    (0x3d1c827ae5d6704c, 0xbfab42dd71198000),
279    (0x3d2c148297c5feb8, 0xbfa95c830ec90000),
280    (0x3d3181dce586af09, 0xbfa77458f6330000),
281    (0x3d2b2b739570ad39, 0xbfa58a5bafc90000),
282    (0xbd3eafd480ad9015, 0xbfa39e87b9fe8000),
283    (0x3d33401e9ae889bb, 0xbfa1b0d989240000),
284    (0xbd2980267c7e09e4, 0xbf9f829b0e780000),
285    (0x3d3b9a010ae6922a, 0xbf9b9fc027b00000),
286    (0x3d33b955b602ace4, 0xbf97b91b07d60000),
287    (0x3d36a2c432d6a40b, 0xbf93cea443470000),
288    (0xbcdf1e7cf6d3a69c, 0xbf8fc0a8b0fc0000),
289    (0x3d3eb1245b5da1f5, 0xbf87dc475f820000),
290    (0xbd19e23f0dda40e4, 0xbf7fe02a6b100000),
291    (0x0000000000000000, 0x0000000000000000),
292    (0x0000000000000000, 0x0000000000000000),
293    (0x3d1ad50382973f27, 0x3f78121214580000),
294    (0x3d1977c755d01368, 0x3f841929f9680000),
295    (0xbd341f33fcefb9fe, 0x3f8c317384c80000),
296    (0x3d2713e3284991fe, 0x3f9228fb1fea0000),
297    (0x3d07abf389596542, 0x3f963d6178690000),
298    (0xbd2de0709f2d03c9, 0x3f9a55f548c60000),
299    (0xbd28d75149774d47, 0x3f9e72bf28140000),
300    (0xbd3dddc7f461c516, 0x3fa0415d89e78000),
301    (0x3d283e9ae021b67b, 0x3fa252f32f8d0000),
302    (0xbd2c167375bdfd28, 0x3fa466aed42e0000),
303    (0x3d3dac20827cca0c, 0x3fa67c94f2d48000),
304    (0x3d39a19a8be97661, 0x3fa894aa149f8000),
305    (0x3d20fc1a353bb42e, 0x3faaaef2d0fb0000),
306    (0xbd17bf868c317c2a, 0x3fabbcebfc690000),
307    (0xbd21b1ac64d9e42f, 0x3fadda8adc680000),
308    (0x3d23008c98381a8f, 0x3faffa6911ab8000),
309    (0xbd37cf69284a3465, 0x3fb10e45b3cb0000),
310    (0x3d349d8cfc10c7bf, 0x3fb2207b5c784000),
311    (0x3d37a48ba8b1cb41, 0x3fb2aa04a4470000),
312    (0xbd319bd0ad125895, 0x3fb3bdf5a7d20000),
313    (0xbcf53a2582f4e1ef, 0x3fb4d3115d208000),
314    (0x3d0c1d740c53c72e, 0x3fb55e10050e0000),
315    (0x3d3a79994c9d3302, 0x3fb674f089364000),
316    (0x3d069b5794b69fb7, 0x3fb78d02263d8000),
317    (0xbd3c0fe460d20041, 0x3fb8197e2f410000),
318    (0x3d23115c3abd47da, 0x3fb9335e5d594000),
319    (0xbd0e42b6b94407c8, 0x3fba4e7640b1c000),
320    (0xbd3573b209c31904, 0x3fbadc77ee5b0000),
321    (0x3d24218c8d824283, 0x3fbbf968769fc000),
322    (0x3d336433b5efbeed, 0x3fbd179788218000),
323    (0x3d1a89401fa71733, 0x3fbda72763844000),
324    (0x3d311fcba80cdd10, 0x3fbec739830a0000),
325    (0x3d176a6c9ea8b04e, 0x3fbf57bc7d900000),
326    (0x3d381a9cf169fc5c, 0x3fc03cdc0a51e000),
327    (0xbd27e5dd7009902c, 0x3fc08598b59e4000),
328    (0x3d21ef78ce2d07f2, 0x3fc1178e8227e000),
329    (0x3d2ec2d2a9009e3d, 0x3fc160c8024b2000),
330    (0xbd15f74e9b083633, 0x3fc1f3b925f26000),
331    (0x3d100d238fd3df5c, 0x3fc23d712a49c000),
332    (0x3d039d6ccb81b4a1, 0x3fc2d1610c868000),
333    (0x3d3f098ee3a50810, 0x3fc31b994d3a4000),
334    (0xbd3aade8f29320fb, 0x3fc3b08b67580000),
335    (0x3d319713c0cae559, 0x3fc3fb45a5992000),
336    (0xbd353e43558124c4, 0x3fc4913d8333c000),
337    (0x3d0c79b60ae1ff0f, 0x3fc4dc7b897bc000),
338    (0x3d39baa7a6b887f6, 0x3fc5737cc9018000),
339    (0xbd127023eb68981c, 0x3fc5bf406b544000),
340    (0xbd398c1d34f0f462, 0x3fc6574ebe8c2000),
341    (0xbd38f934e66a15a6, 0x3fc6a399dabbe000),
342    (0x3d3577390d31ef0f, 0x3fc6f0128b756000),
343    (0x3d38e67be3dbaf3f, 0x3fc7898d85444000),
344    (0xbd24c06b17c301d7, 0x3fc7d6903caf6000),
345    (0x3d3328eb42f9af75, 0x3fc871213750e000),
346    (0xbd073d54aae92cd1, 0x3fc8beafeb390000),
347    (0xbd1935f57718d7ca, 0x3fc90c6db9fcc000),
348    (0x3d3470fa3efec390, 0x3fc9a8778deba000),
349    (0xbd3337d94bcd3f43, 0x3fc9f6c40708a000),
350    (0x3d360a77c81f7171, 0x3fca454082e6a000),
351    (0x3d37a8d5ae54f550, 0x3fcae2ca6f672000),
352    (0x3d3c794e562a63cb, 0x3fcb31d8575bc000),
353    (0x3d1e90683b9cd768, 0x3fcb811730b82000),
354    (0xbd2d4bc4595412b6, 0x3fcbd087383be000),
355    (0x3d3ee138d3a69d43, 0x3fcc6ffbc6f00000),
356    (0xbd1d6d585d57aff9, 0x3fccc000c9db4000),
357    (0xbd084a7e75b6f6e4, 0x3fcd1037f2656000),
358    (0x3d32806a847527e6, 0x3fcdb13db0d48000),
359    (0xbd252b00adb91424, 0x3fce020cc6236000),
360    (0xbd3fdbdbb13f7c18, 0x3fce530effe72000),
361    (0x3d35e91663732a36, 0x3fcea4449f04a000),
362    (0xbd3bae49f1df7b5e, 0x3fcf474b134e0000),
363    (0xbd390d04cd7cc834, 0x3fcf991c6cb3c000),
364    (0x3d2f3418de00938b, 0x3fcfeb2233ea0000),
365    (0x3d3a43dcfade85ae, 0x3fd01eae5626c000),
366    (0x3d2dbdf10d397f3c, 0x3fd047e60cde8000),
367    (0x3d3b50a1e1734342, 0x3fd09aa572e6c000),
368    (0x3d27188b163ceae9, 0x3fd0c42d67616000),
369    (0x3d0019b52d8435f5, 0x3fd0edd060b78000),
370    (0x3d31ef78ce2d07f2, 0x3fd1178e8227e000),
371    (0x3d3e0c07824daaf5, 0x3fd14167ef367000),
372    (0xbd323299042d74bf, 0x3fd16b5ccbad0000),
373    (0xbd31ac89575c2125, 0x3fd1bf99635a7000),
374    (0xbd382eaed3c8b65e, 0x3fd1e9e16788a000),
375    (0xbd3caf0428b728a3, 0x3fd214456d0ec000),
376    (0xbd36dbe448a2e522, 0x3fd23ec5991ec000),
377    (0xbd31b61f10522625, 0x3fd269621134e000),
378    (0xbd3210c2b730e28b, 0x3fd2941afb187000),
379    (0x3d2a9cfa4a5004f4, 0x3fd2bef07cdc9000),
380    (0xbd28e27ad3213cb8, 0x3fd314f1e1d36000),
381    (0xbd317c73556e291d, 0x3fd3401e12aed000),
382    (0x3d116ecdb0f177c8, 0x3fd36b6776be1000),
383    (0xbd05839c5663663d, 0x3fd396ce359bc000),
384    (0x3d183b54b606bd5c, 0x3fd3c25277333000),
385    (0xbd3f067c297f2c3f, 0x3fd3edf463c17000),
386    (0xbd3ce379226de3ec, 0x3fd419b423d5f000),
387    (0xbd06e95892923d88, 0x3fd44591e053a000),
388    (0x3d306c18fb4c14c5, 0x3fd4718dc271c000),
389    (0x3d307b334daf4b9a, 0x3fd49da7f3bcc000),
390    (0xbd2e20891b0ad8a4, 0x3fd4c9e09e173000),
391    (0xbd3fc158cb3124b9, 0x3fd4f637ebbaa000),
392    (0x3d2ebe708164c759, 0x3fd522ae0738a000),
393    (0x3d1a8954c0910952, 0x3fd54f431b7be000),
394    (0x3d1fadedee5d40ef, 0x3fd57bf753c8d000),
395    (0xbcf7c79b0af7ecf8, 0x3fd5a8cadbbee000),
396    (0xbd0a0b2a08a465dc, 0x3fd5d5bddf596000),
397    (0x3d1ebe9176df3f65, 0x3fd602d08af09000),
398    (0xbd2db623e731ae00, 0x3fd630030b3ab000),
399];
400
401pub(crate) static EXP2_MID1: [(u64, u64); 64] = [
402    (0x0000000000000000, 0x3ff0000000000000),
403    (0xbc719083535b085d, 0x3ff02c9a3e778061),
404    (0x3c8d73e2a475b465, 0x3ff059b0d3158574),
405    (0x3c6186be4bb284ff, 0x3ff0874518759bc8),
406    (0x3c98a62e4adc610b, 0x3ff0b5586cf9890f),
407    (0x3c403a1727c57b53, 0x3ff0e3ec32d3d1a2),
408    (0xbc96c51039449b3a, 0x3ff11301d0125b51),
409    (0xbc932fbf9af1369e, 0x3ff1429aaea92de0),
410    (0xbc819041b9d78a76, 0x3ff172b83c7d517b),
411    (0x3c8e5b4c7b4968e4, 0x3ff1a35beb6fcb75),
412    (0x3c9e016e00a2643c, 0x3ff1d4873168b9aa),
413    (0x3c8dc775814a8495, 0x3ff2063b88628cd6),
414    (0x3c99b07eb6c70573, 0x3ff2387a6e756238),
415    (0x3c82bd339940e9d9, 0x3ff26b4565e27cdd),
416    (0x3c8612e8afad1255, 0x3ff29e9df51fdee1),
417    (0x3c90024754db41d5, 0x3ff2d285a6e4030b),
418    (0x3c86f46ad23182e4, 0x3ff306fe0a31b715),
419    (0x3c932721843659a6, 0x3ff33c08b26416ff),
420    (0xbc963aeabf42eae2, 0x3ff371a7373aa9cb),
421    (0xbc75e436d661f5e3, 0x3ff3a7db34e59ff7),
422    (0x3c8ada0911f09ebc, 0x3ff3dea64c123422),
423    (0xbc5ef3691c309278, 0x3ff4160a21f72e2a),
424    (0x3c489b7a04ef80d0, 0x3ff44e086061892d),
425    (0x3c73c1a3b69062f0, 0x3ff486a2b5c13cd0),
426    (0x3c7d4397afec42e2, 0x3ff4bfdad5362a27),
427    (0xbc94b309d25957e3, 0x3ff4f9b2769d2ca7),
428    (0xbc807abe1db13cad, 0x3ff5342b569d4f82),
429    (0x3c99bb2c011d93ad, 0x3ff56f4736b527da),
430    (0x3c96324c054647ad, 0x3ff5ab07dd485429),
431    (0x3c9ba6f93080e65e, 0x3ff5e76f15ad2148),
432    (0xbc9383c17e40b497, 0x3ff6247eb03a5585),
433    (0xbc9bb60987591c34, 0x3ff6623882552225),
434    (0xbc9bdd3413b26456, 0x3ff6a09e667f3bcd),
435    (0xbc6bbe3a683c88ab, 0x3ff6dfb23c651a2f),
436    (0xbc816e4786887a99, 0x3ff71f75e8ec5f74),
437    (0xbc90245957316dd3, 0x3ff75feb564267c9),
438    (0xbc841577ee04992f, 0x3ff7a11473eb0187),
439    (0x3c705d02ba15797e, 0x3ff7e2f336cf4e62),
440    (0xbc9d4c1dd41532d8, 0x3ff82589994cce13),
441    (0xbc9fc6f89bd4f6ba, 0x3ff868d99b4492ed),
442    (0x3c96e9f156864b27, 0x3ff8ace5422aa0db),
443    (0x3c85cc13a2e3976c, 0x3ff8f1ae99157736),
444    (0xbc675fc781b57ebc, 0x3ff93737b0cdc5e5),
445    (0xbc9d185b7c1b85d1, 0x3ff97d829fde4e50),
446    (0x3c7c7c46b071f2be, 0x3ff9c49182a3f090),
447    (0xbc9359495d1cd533, 0x3ffa0c667b5de565),
448    (0xbc9d2f6edb8d41e1, 0x3ffa5503b23e255d),
449    (0x3c90fac90ef7fd31, 0x3ffa9e6b5579fdbf),
450    (0x3c97a1cd345dcc81, 0x3ffae89f995ad3ad),
451    (0xbc62805e3084d708, 0x3ffb33a2b84f15fb),
452    (0xbc75584f7e54ac3b, 0x3ffb7f76f2fb5e47),
453    (0x3c823dd07a2d9e84, 0x3ffbcc1e904bc1d2),
454    (0x3c811065895048dd, 0x3ffc199bdd85529c),
455    (0x3c92884dff483cad, 0x3ffc67f12e57d14b),
456    (0x3c7503cbd1e949db, 0x3ffcb720dcef9069),
457    (0xbc9cbc3743797a9c, 0x3ffd072d4a07897c),
458    (0x3c82ed02d75b3707, 0x3ffd5818dcfba487),
459    (0x3c9c2300696db532, 0x3ffda9e603db3285),
460    (0xbc91a5cd4f184b5c, 0x3ffdfc97337b9b5f),
461    (0x3c839e8980a9cc8f, 0x3ffe502ee78b3ff6),
462    (0xbc9e9c23179c2893, 0x3ffea4afa2a490da),
463    (0x3c9dc7f486a4b6b0, 0x3ffefa1bee615a27),
464    (0x3c99d3e12dd8a18b, 0x3fff50765b6e4540),
465    (0x3c874853f3a5931e, 0x3fffa7c1819e90d8),
466];
467
468/* for 0 <= i < 64, T1_2[i] is a 128-bit nearest approximation of 2^(i/64),
469with error bounded by 2^-128 (both absolutely and relatively). */
470#[rustfmt::skip]
471pub(crate) static EXP_T1_2_DYADIC: [DyadicFloat128; 64] = [
472    DyadicFloat128 {
473        sign: DyadicSign::Pos,
474        exponent: -127,
475        mantissa: 0x8000_0000_0000_0000_0000_0000_0000_0000_u128,
476    },
477    DyadicFloat128 {
478        sign: DyadicSign::Pos,
479        exponent: -127,
480        mantissa: 0x8164_d1f3_bc03_0773_7be5_6527_bd14_def5_u128,
481    },
482    DyadicFloat128 {
483        sign: DyadicSign::Pos,
484        exponent: -127,
485        mantissa: 0x82cd_8698_ac2b_a1d7_3e2a_475b_4652_0bff_u128,
486    },
487    DyadicFloat128 {
488        sign: DyadicSign::Pos,
489        exponent: -127,
490        mantissa: 0x843a_28c3_acde_4046_1af9_2eca_13fd_1582_u128,
491    },
492    DyadicFloat128 {
493        sign: DyadicSign::Pos,
494        exponent: -127,
495        mantissa: 0x85aa_c367_cc48_7b14_c5c9_5b8c_2154_c1b2_u128,
496    },
497    DyadicFloat128 {
498        sign: DyadicSign::Pos,
499        exponent: -127,
500        mantissa: 0x871f_6196_9e8d_1010_3a17_27c5_7b52_a956_u128,
501    },
502    DyadicFloat128 {
503        sign: DyadicSign::Pos,
504        exponent: -127,
505        mantissa: 0x8898_0e80_92da_8527_5df8_d76c_98c6_7563_u128,
506    },
507    DyadicFloat128 {
508        sign: DyadicSign::Pos,
509        exponent: -127,
510        mantissa: 0x8a14_d575_496e_fd9a_080c_a1d9_2c36_80c2_u128,
511    },
512    DyadicFloat128 {
513        sign: DyadicSign::Pos,
514        exponent: -127,
515        mantissa: 0x8b95_c1e3_ea8b_d6e6_fbe4_6287_58a5_3c90_u128,
516    },
517    DyadicFloat128 {
518        sign: DyadicSign::Pos,
519        exponent: -127,
520        mantissa: 0x8d1a_df5b_7e5b_a9e5_b4c7_b496_8e41_ad36_u128,
521    },
522    DyadicFloat128 {
523        sign: DyadicSign::Pos,
524        exponent: -127,
525        mantissa: 0x8ea4_398b_45cd_53c0_2dc0_144c_8783_d4c6_u128,
526    },
527    DyadicFloat128 {
528        sign: DyadicSign::Pos,
529        exponent: -127,
530        mantissa: 0x9031_dc43_1466_b1dc_7758_14a8_494e_87e2_u128,
531    },
532    DyadicFloat128 {
533        sign: DyadicSign::Pos,
534        exponent: -127,
535        mantissa: 0x91c3_d373_ab11_c336_0fd6_d8e0_ae5a_c9d8_u128,
536    },
537    DyadicFloat128 {
538        sign: DyadicSign::Pos,
539        exponent: -127,
540        mantissa: 0x935a_2b2f_13e6_e92b_d339_940e_9d92_4ee7_u128,
541    },
542    DyadicFloat128 {
543        sign: DyadicSign::Pos,
544        exponent: -127,
545        mantissa: 0x94f4_efa8_fef7_0961_2e8a_fad1_2551_de54_u128,
546    },
547    DyadicFloat128 {
548        sign: DyadicSign::Pos,
549        exponent: -127,
550        mantissa: 0x9694_2d37_2018_5a00_48ea_9b68_3a9c_22c5_u128,
551    },
552    DyadicFloat128 {
553        sign: DyadicSign::Pos,
554        exponent: -127,
555        mantissa: 0x9837_f051_8db8_a96f_46ad_2318_2e42_f6f6_u128,
556    },
557    DyadicFloat128 {
558        sign: DyadicSign::Pos,
559        exponent: -127,
560        mantissa: 0x99e0_4593_20b7_fa64_e430_86cb_34b5_fcaf_u128,
561    },
562    DyadicFloat128 {
563        sign: DyadicSign::Pos,
564        exponent: -127,
565        mantissa: 0x9b8d_39b9_d54e_5538_a2a8_17a2_a3cc_3f1f_u128,
566    },
567    DyadicFloat128 {
568        sign: DyadicSign::Pos,
569        exponent: -127,
570        mantissa: 0x9d3e_d9a7_2cff_b750_de49_4cf0_50e9_9b0b_u128,
571    },
572    DyadicFloat128 {
573        sign: DyadicSign::Pos,
574        exponent: -127,
575        mantissa: 0x9ef5_3260_91a1_11ad_a091_1f09_ebb9_fdd1_u128,
576    },
577    DyadicFloat128 {
578        sign: DyadicSign::Pos,
579        exponent: -127,
580        mantissa: 0xa0b0_510f_b971_4fc2_192d_c79e_db0f_d9a9_u128,
581    },
582    DyadicFloat128 {
583        sign: DyadicSign::Pos,
584        exponent: -127,
585        mantissa: 0xa270_4303_0c49_6818_9b7a_04ef_80cf_dea8_u128,
586    },
587    DyadicFloat128 {
588        sign: DyadicSign::Pos,
589        exponent: -127,
590        mantissa: 0xa435_15ae_09e6_809e_0d1d_b483_1781_e1ef_u128,
591    },
592    DyadicFloat128 {
593        sign: DyadicSign::Pos,
594        exponent: -127,
595        mantissa: 0xa5fe_d6a9_b151_38ea_1cbd_7f62_1710_701b_u128,
596    },
597    DyadicFloat128 {
598        sign: DyadicSign::Pos,
599        exponent: -127,
600        mantissa: 0xa7cd_93b4_e965_3569_9ec5_b4d5_039f_72af_u128,
601    },
602    DyadicFloat128 {
603        sign: DyadicSign::Pos,
604        exponent: -127,
605        mantissa: 0xa9a1_5ab4_ea7c_0ef8_541e_24ec_3531_fa73_u128,
606    },
607    DyadicFloat128 {
608        sign: DyadicSign::Pos,
609        exponent: -127,
610        mantissa: 0xab7a_39b5_a93e_d337_6580_23b2_759e_0079_u128,
611    },
612    DyadicFloat128 {
613        sign: DyadicSign::Pos,
614        exponent: -127,
615        mantissa: 0xad58_3eea_42a1_4ac6_4980_a8c8_f59a_2ec4_u128,
616    },
617    DyadicFloat128 {
618        sign: DyadicSign::Pos,
619        exponent: -127,
620        mantissa: 0xaf3b_78ad_690a_4374_df26_101c_cbb3_5033_u128,
621    },
622    DyadicFloat128 {
623        sign: DyadicSign::Pos,
624        exponent: -127,
625        mantissa: 0xb123_f581_d2ac_258f_87d0_37e9_6d21_5d8e_u128,
626    },
627    DyadicFloat128 {
628        sign: DyadicSign::Pos,
629        exponent: -127,
630        mantissa: 0xb311_c412_a911_2489_3ecf_14dc_798a_519c_u128,
631    },
632    DyadicFloat128 {
633        sign: DyadicSign::Pos,
634        exponent: -127,
635        mantissa: 0xb504_f333_f9de_6484_597d_89b3_754a_be9f_u128,
636    },
637    DyadicFloat128 {
638        sign: DyadicSign::Pos,
639        exponent: -127,
640        mantissa: 0xb6fd_91e3_28d1_7791_0716_5f0d_dd54_1a5a_u128,
641    },
642    DyadicFloat128 {
643        sign: DyadicSign::Pos,
644        exponent: -127,
645        mantissa: 0xb8fb_af47_62fb_9ee9_1b87_9778_566b_65a2_u128,
646    },
647    DyadicFloat128 {
648        sign: DyadicSign::Pos,
649        exponent: -127,
650        mantissa: 0xbaff_5ab2_133e_45fb_74d5_19d2_4593_838c_u128,
651    },
652    DyadicFloat128 {
653        sign: DyadicSign::Pos,
654        exponent: -127,
655        mantissa: 0xbd08_a39f_580c_36be_a881_1fb6_6d0f_af7a_u128,
656    },
657    DyadicFloat128 {
658        sign: DyadicSign::Pos,
659        exponent: -127,
660        mantissa: 0xbf17_99b6_7a73_1082_e815_d0ab_cbf0_b851_u128,
661    },
662    DyadicFloat128 {
663        sign: DyadicSign::Pos,
664        exponent: -127,
665        mantissa: 0xc12c_4cca_6670_9456_7c45_7d59_a500_87b5_u128,
666    },
667    DyadicFloat128 {
668        sign: DyadicSign::Pos,
669        exponent: -127,
670        mantissa: 0xc346_ccda_2497_6407_20ec_8561_28b8_3a42_u128,
671    },
672    DyadicFloat128 {
673        sign: DyadicSign::Pos,
674        exponent: -127,
675        mantissa: 0xc567_2a11_5506_dadd_3e2a_d0c9_64dd_9f37_u128,
676    },
677    DyadicFloat128 {
678        sign: DyadicSign::Pos,
679        exponent: -127,
680        mantissa: 0xc78d_74c8_abb9_b15c_c13a_2e39_76c0_277e_u128,
681    },
682    DyadicFloat128 {
683        sign: DyadicSign::Pos,
684        exponent: -127,
685        mantissa: 0xc9b9_bd86_6e2f_27a2_80e1_f92a_0511_697e_u128,
686    },
687    DyadicFloat128 {
688        sign: DyadicSign::Pos,
689        exponent: -127,
690        mantissa: 0xcbec_14fe_f272_7c5c_f490_7c8f_45eb_f6dd_u128,
691    },
692    DyadicFloat128 {
693        sign: DyadicSign::Pos,
694        exponent: -127,
695        mantissa: 0xce24_8c15_1f84_80e3_e235_838f_95f2_c6ed_u128,
696    },
697    DyadicFloat128 {
698        sign: DyadicSign::Pos,
699        exponent: -127,
700        mantissa: 0xd063_33da_ef2b_2594_d6d4_5c65_59a4_d502_u128,
701    },
702    DyadicFloat128 {
703        sign: DyadicSign::Pos,
704        exponent: -127,
705        mantissa: 0xd2a8_1d91_f12a_e45a_1224_8e57_c3de_4028_u128,
706    },
707    DyadicFloat128 {
708        sign: DyadicSign::Pos,
709        exponent: -127,
710        mantissa: 0xd4f3_5aab_cfed_fa1f_5921_deff_a626_2c5b_u128,
711    },
712    DyadicFloat128 {
713        sign: DyadicSign::Pos,
714        exponent: -127,
715        mantissa: 0xd744_fcca_d69d_6af4_39a6_8bb9_902d_3fde_u128,
716    },
717    DyadicFloat128 {
718        sign: DyadicSign::Pos,
719        exponent: -127,
720        mantissa: 0xd99d_15c2_78af_d7b5_fe87_3dec_a3e1_2bac_u128,
721    },
722    DyadicFloat128 {
723        sign: DyadicSign::Pos,
724        exponent: -127,
725        mantissa: 0xdbfb_b797_daf2_3755_3d84_0d5a_9e29_aa64_u128,
726    },
727    DyadicFloat128 {
728        sign: DyadicSign::Pos,
729        exponent: -127,
730        mantissa: 0xde60_f482_5e0e_9123_dd07_a2d9_e846_6859_u128,
731    },
732    DyadicFloat128 {
733        sign: DyadicSign::Pos,
734        exponent: -127,
735        mantissa: 0xe0cc_deec_2a94_e111_0658_9504_8dd3_33ca_u128,
736    },
737    DyadicFloat128 {
738        sign: DyadicSign::Pos,
739        exponent: -127,
740        mantissa: 0xe33f_8972_be8a_5a51_09bf_e907_9598_0eed_u128,
741    },
742    DyadicFloat128 {
743        sign: DyadicSign::Pos,
744        exponent: -127,
745        mantissa: 0xe5b9_06e7_7c83_48a8_1e5e_8f4a_4edb_b0ed_u128,
746    },
747    DyadicFloat128 {
748        sign: DyadicSign::Pos,
749        exponent: -127,
750        mantissa: 0xe839_6a50_3c4b_dc68_7917_90d0_ac70_c7de_u128,
751    },
752    DyadicFloat128 {
753        sign: DyadicSign::Pos,
754        exponent: -127,
755        mantissa: 0xeac0_c6e7_dd24_392e_d02d_75b3_706e_54fb_u128,
756    },
757    DyadicFloat128 {
758        sign: DyadicSign::Pos,
759        exponent: -127,
760        mantissa: 0xed4f_301e_d994_2b84_600d_2db6_a64b_fb12_u128,
761    },
762    DyadicFloat128 {
763        sign: DyadicSign::Pos,
764        exponent: -127,
765        mantissa: 0xefe4_b99b_dcda_f5cb_4656_1cf6_948d_b913_u128,
766    },
767    DyadicFloat128 {
768        sign: DyadicSign::Pos,
769        exponent: -127,
770        mantissa: 0xf281_773c_59ff_b139_e898_0a9c_c8f4_7a4b_u128,
771    },
772    DyadicFloat128 {
773        sign: DyadicSign::Pos,
774        exponent: -127,
775        mantissa: 0xf525_7d15_2486_cc2c_7b9d_0c7a_ed98_0fc3_u128,
776    },
777    DyadicFloat128 {
778        sign: DyadicSign::Pos,
779        exponent: -127,
780        mantissa: 0xf7d0_df73_0ad1_3bb8_fe90_d496_d60f_b6eb_u128,
781    },
782    DyadicFloat128 {
783        sign: DyadicSign::Pos,
784        exponent: -127,
785        mantissa: 0xfa83_b2db_722a_033a_7c25_bb14_315d_7fcd_u128,
786    },
787    DyadicFloat128 {
788        sign: DyadicSign::Pos,
789        exponent: -127,
790        mantissa: 0xfd3e_0c0c_f486_c174_853f_3a59_31e0_ee03_u128,
791    },
792];
793
794/* for 0 <= i < 64, T2_2[i] is a 128-bit nearest approximation of 2^(i/2^12),
795with error bounded by 2^-128 (both absolutely and relatively). */
796#[rustfmt::skip]
797pub(crate) static EXP_T2_2_DYADIC: [DyadicFloat128; 64] = [
798    DyadicFloat128 {
799        sign: DyadicSign::Pos,
800        exponent: -127,
801        mantissa: 0x8000_0000_0000_0000_0000_0000_0000_0000_u128,
802    },
803    DyadicFloat128 {
804        sign: DyadicSign::Pos,
805        exponent: -127,
806        mantissa: 0x8005_8baf_7fee_3b5d_1c71_8b38_e549_cb93_u128,
807    },
808    DyadicFloat128 {
809        sign: DyadicSign::Pos,
810        exponent: -127,
811        mantissa: 0x800b_179c_8202_8fd0_945e_54e2_ae18_f2f0_u128,
812    },
813    DyadicFloat128 {
814        sign: DyadicSign::Pos,
815        exponent: -127,
816        mantissa: 0x8010_a3c7_08e7_3282_2b96_d62d_51c1_5a07_u128,
817    },
818    DyadicFloat128 {
819        sign: DyadicSign::Pos,
820        exponent: -127,
821        mantissa: 0x8016_302f_1746_7628_3690_dfe4_4d11_d008_u128,
822    },
823    DyadicFloat128 {
824        sign: DyadicSign::Pos,
825        exponent: -127,
826        mantissa: 0x801b_bcd4_afca_cb08_e23a_986b_d3e6_26f0_u128,
827    },
828    DyadicFloat128 {
829        sign: DyadicSign::Pos,
830        exponent: -127,
831        mantissa: 0x8021_49b7_d51e_befb_7bdb_adbc_888a_eb29_u128,
832    },
833    DyadicFloat128 {
834        sign: DyadicSign::Pos,
835        exponent: -127,
836        mantissa: 0x8026_d6d8_89ec_fd69_b904_bbfb_40d3_a2b7_u128,
837    },
838    DyadicFloat128 {
839        sign: DyadicSign::Pos,
840        exponent: -127,
841        mantissa: 0x802c_6436_d0e0_4f50_ff8c_e94a_6797_b3ce_u128,
842    },
843    DyadicFloat128 {
844        sign: DyadicSign::Pos,
845        exponent: -127,
846        mantissa: 0x8031_f1d2_aca3_9b43_ad9d_b772_901d_96b6_u128,
847    },
848    DyadicFloat128 {
849        sign: DyadicSign::Pos,
850        exponent: -127,
851        mantissa: 0x8037_7fac_1fe1_e56a_61cd_0bff_d7cf_c683_u128,
852    },
853    DyadicFloat128 {
854        sign: DyadicSign::Pos,
855        exponent: -127,
856        mantissa: 0x803d_0dc3_2d46_4f85_4345_6f71_b96a_ffd4_u128,
857    },
858    DyadicFloat128 {
859        sign: DyadicSign::Pos,
860        exponent: -127,
861        mantissa: 0x8042_9c17_d77c_18ed_49fc_841a_fba9_c3c6_u128,
862    },
863    DyadicFloat128 {
864        sign: DyadicSign::Pos,
865        exponent: -127,
866        mantissa: 0x8048_2aaa_212e_9e95_86f7_b54f_6c45_c85e_u128,
867    },
868    DyadicFloat128 {
869        sign: DyadicSign::Pos,
870        exponent: -127,
871        mantissa: 0x804d_b97a_0d09_5b0c_6c9f_1f7d_1efc_fe68_u128,
872    },
873    DyadicFloat128 {
874        sign: DyadicSign::Pos,
875        exponent: -127,
876        mantissa: 0x8053_4887_9db7_e67d_171e_b1ce_ef1d_1f28_u128,
877    },
878    DyadicFloat128 {
879        sign: DyadicSign::Pos,
880        exponent: -127,
881        mantissa: 0x8058_d7d2_d5e5_f6b0_94d5_89f6_08ee_4aa2_u128,
882    },
883    DyadicFloat128 {
884        sign: DyadicSign::Pos,
885        exponent: -127,
886        mantissa: 0x805e_675b_b83f_5f0f_2ed3_8ab8_472b_2144_u128,
887    },
888    DyadicFloat128 {
889        sign: DyadicSign::Pos,
890        exponent: -127,
891        mantissa: 0x8063_f722_4770_10a1_b165_2de1_378a_f1a1_u128,
892    },
893    DyadicFloat128 {
894        sign: DyadicSign::Pos,
895        exponent: -127,
896        mantissa: 0x8069_8726_8624_1a12_b4ad_9233_a039_0cad_u128,
897    },
898    DyadicFloat128 {
899        sign: DyadicSign::Pos,
900        exponent: -127,
901        mantissa: 0x806f_1768_7707_a7af_e54e_c5f9_66eb_1872_u128,
902    },
903    DyadicFloat128 {
904        sign: DyadicSign::Pos,
905        exponent: -127,
906        mantissa: 0x8074_a7e8_1cc7_036b_4d20_4ecf_c11f_4aab_u128,
907    },
908    DyadicFloat128 {
909        sign: DyadicSign::Pos,
910        exponent: -127,
911        mantissa: 0x807a_38a5_7a0e_94dc_9bf3_ef4d_9be2_d1e4_u128,
912    },
913    DyadicFloat128 {
914        sign: DyadicSign::Pos,
915        exponent: -127,
916        mantissa: 0x807f_c9a0_918a_e142_7068_ab22_3058_5d13_u128,
917    },
918    DyadicFloat128 {
919        sign: DyadicSign::Pos,
920        exponent: -127,
921        mantissa: 0x8085_5ad9_65e8_8b83_a0cc_0a49_c10e_a66b_u128,
922    },
923    DyadicFloat128 {
924        sign: DyadicSign::Pos,
925        exponent: -127,
926        mantissa: 0x808a_ec4f_f9d4_5430_8409_9bf6_830f_2768_u128,
927    },
928    DyadicFloat128 {
929        sign: DyadicSign::Pos,
930        exponent: -127,
931        mantissa: 0x8090_7e04_4ffb_1984_3aa8_b9cb_bc65_a8ab_u128,
932    },
933    DyadicFloat128 {
934        sign: DyadicSign::Pos,
935        exponent: -127,
936        mantissa: 0x8096_0ff6_6b09_d765_f7d8_8c09_28ba_3947_u128,
937    },
938    DyadicFloat128 {
939        sign: DyadicSign::Pos,
940        exponent: -127,
941        mantissa: 0x809b_a226_4dad_a76a_4a8a_4f44_bb70_3db6_u128,
942    },
943    DyadicFloat128 {
944        sign: DyadicSign::Pos,
945        exponent: -127,
946        mantissa: 0x80a1_3493_fa93_c0d4_6699_dc50_dd96_b774_u128,
947    },
948    DyadicFloat128 {
949        sign: DyadicSign::Pos,
950        exponent: -127,
951        mantissa: 0x80a6_c73f_7469_7897_6e04_72ed_4ccf_a2e0_u128,
952    },
953    DyadicFloat128 {
954        sign: DyadicSign::Pos,
955        exponent: -127,
956        mantissa: 0x80ac_5a28_bddc_4157_ba2d_c7e0_c72e_51ba_u128,
957    },
958    DyadicFloat128 {
959        sign: DyadicSign::Pos,
960        exponent: -127,
961        mantissa: 0x80b1_ed4f_d999_ab6c_2533_5719_b6e6_fd20_u128,
962    },
963    DyadicFloat128 {
964        sign: DyadicSign::Pos,
965        exponent: -127,
966        mantissa: 0x80b7_80b4_ca4f_64df_534d_fa74_1784_6aa4_u128,
967    },
968    DyadicFloat128 {
969        sign: DyadicSign::Pos,
970        exponent: -127,
971        mantissa: 0x80bd_1457_92ab_3970_fc41_c5c2_d533_6ccc_u128,
972    },
973    DyadicFloat128 {
974        sign: DyadicSign::Pos,
975        exponent: -127,
976        mantissa: 0x80c2_a838_355b_1297_34dc_28ba_ed8f_3fde_u128,
977    },
978    DyadicFloat128 {
979        sign: DyadicSign::Pos,
980        exponent: -127,
981        mantissa: 0x80c8_3c56_b50c_f77f_b880_575e_a035_48c1_u128,
982    },
983    DyadicFloat128 {
984        sign: DyadicSign::Pos,
985        exponent: -127,
986        mantissa: 0x80cd_d0b3_146f_0d11_32c1_f987_0442_8c71_u128,
987    },
988    DyadicFloat128 {
989        sign: DyadicSign::Pos,
990        exponent: -127,
991        mantissa: 0x80d3_654d_562f_95ec_890e_222a_5eb9_5372_u128,
992    },
993    DyadicFloat128 {
994        sign: DyadicSign::Pos,
995        exponent: -127,
996        mantissa: 0x80d8_fa25_7cfc_f26e_2462_8efd_9ca9_d59b_u128,
997    },
998    DyadicFloat128 {
999        sign: DyadicSign::Pos,
1000        exponent: -127,
1001        mantissa: 0x80de_8f3b_8b85_a0af_3b13_310f_5ad5_7fb1_u128,
1002    },
1003    DyadicFloat128 {
1004        sign: DyadicSign::Pos,
1005        exponent: -127,
1006        mantissa: 0x80e4_248f_8478_3c87_1a9d_fefa_eb61_6564_u128,
1007    },
1008    DyadicFloat128 {
1009        sign: DyadicSign::Pos,
1010        exponent: -127,
1011        mantissa: 0x80e9_ba21_6a83_7f8c_718d_1151_d109_bf98_u128,
1012    },
1013    DyadicFloat128 {
1014        sign: DyadicSign::Pos,
1015        exponent: -127,
1016        mantissa: 0x80ef_4ff1_4056_4116_9967_09da_2e25_f04c_u128,
1017    },
1018    DyadicFloat128 {
1019        sign: DyadicSign::Pos,
1020        exponent: -127,
1021        mantissa: 0x80f4_e5ff_089f_763e_e0ad_c640_acaa_6b0b_u128,
1022    },
1023    DyadicFloat128 {
1024        sign: DyadicSign::Pos,
1025        exponent: -127,
1026        mantissa: 0x80fa_7c4a_c60e_31e1_d4eb_5edc_6b34_1283_u128,
1027    },
1028    DyadicFloat128 {
1029        sign: DyadicSign::Pos,
1030        exponent: -127,
1031        mantissa: 0x8100_12d4_7b51_a4a0_8ccd_7223_8207_19e3_u128,
1032    },
1033    DyadicFloat128 {
1034        sign: DyadicSign::Pos,
1035        exponent: -127,
1036        mantissa: 0x8105_a99c_2b19_1ce1_f24e_bd6e_b9ca_4292_u128,
1037    },
1038    DyadicFloat128 {
1039        sign: DyadicSign::Pos,
1040        exponent: -127,
1041        mantissa: 0x810b_40a1_d814_06d4_0cef_03ab_14a6_6550_u128,
1042    },
1043    DyadicFloat128 {
1044        sign: DyadicSign::Pos,
1045        exponent: -127,
1046        mantissa: 0x8110_d7e5_84f1_ec6d_4bf9_4297_d151_9822_u128,
1047    },
1048    DyadicFloat128 {
1049        sign: DyadicSign::Pos,
1050        exponent: -127,
1051        mantissa: 0x8116_6f67_3462_756d_d0d8_372f_966c_f15e_u128,
1052    },
1053    DyadicFloat128 {
1054        sign: DyadicSign::Pos,
1055        exponent: -127,
1056        mantissa: 0x811c_0726_e915_6760_b979_31db_7b7b_e2ec_u128,
1057    },
1058    DyadicFloat128 {
1059        sign: DyadicSign::Pos,
1060        exponent: -127,
1061        mantissa: 0x8121_9f24_a5ba_a59d_6abd_3b0e_ab9c_7048_u128,
1062    },
1063    DyadicFloat128 {
1064        sign: DyadicSign::Pos,
1065        exponent: -127,
1066        mantissa: 0x8127_3760_6d02_3148_daf8_88e9_6508_151a_u128,
1067    },
1068    DyadicFloat128 {
1069        sign: DyadicSign::Pos,
1070        exponent: -127,
1071        mantissa: 0x812c_cfda_419c_2956_dc80_4682_1f46_122e_u128,
1072    },
1073    DyadicFloat128 {
1074        sign: DyadicSign::Pos,
1075        exponent: -127,
1076        mantissa: 0x8132_6892_2638_ca8b_6846_ad73_a8d9_027f_u128,
1077    },
1078    DyadicFloat128 {
1079        sign: DyadicSign::Pos,
1080        exponent: -127,
1081        mantissa: 0x8138_0188_1d88_6f7b_e885_724f_1413_1287_u128,
1082    },
1083    DyadicFloat128 {
1084        sign: DyadicSign::Pos,
1085        exponent: -127,
1086        mantissa: 0x813d_9abc_2a3b_9090_8376_8490_519d_f895_u128,
1087    },
1088    DyadicFloat128 {
1089        sign: DyadicSign::Pos,
1090        exponent: -127,
1091        mantissa: 0x8143_342e_4f02_c405_661b_22b4_5e25_de18_u128,
1092    },
1093    DyadicFloat128 {
1094        sign: DyadicSign::Pos,
1095        exponent: -127,
1096        mantissa: 0x8148_cdde_8e8e_bdec_0f11_430f_ef78_c6ee_u128,
1097    },
1098    DyadicFloat128 {
1099        sign: DyadicSign::Pos,
1100        exponent: -127,
1101        mantissa: 0x814e_67cc_eb90_502c_9977_5205_944e_adc4_u128,
1102    },
1103    DyadicFloat128 {
1104        sign: DyadicSign::Pos,
1105        exponent: -127,
1106        mantissa: 0x8154_01f9_68b8_6a87_07de_463a_40d1_8261_u128,
1107    },
1108    DyadicFloat128 {
1109        sign: DyadicSign::Pos,
1110        exponent: -127,
1111        mantissa: 0x8159_9c64_08b8_1a94_8f4a_0b67_48df_7960_u128,
1112    },
1113    DyadicFloat128 {
1114        sign: DyadicSign::Pos,
1115        exponent: -127,
1116        mantissa: 0x815f_370c_ce40_8bc8_e240_4468_cfe5_ab9f_u128,
1117    },
1118];