1/* mpfr_get_str -- output a floating-point number to a string 2 3Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. 4Contributed by the AriC and Caramel projects, INRIA. 5 6This file is part of the GNU MPFR Library. 7 8The GNU MPFR Library is free software; you can redistribute it and/or modify 9it under the terms of the GNU Lesser General Public License as published by 10the Free Software Foundation; either version 3 of the License, or (at your 11option) any later version. 12 13The GNU MPFR Library is distributed in the hope that it will be useful, but 14WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 15or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 16License for more details. 17 18You should have received a copy of the GNU Lesser General Public License 19along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see 20http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., 2151 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ 22 23#define MPFR_NEED_LONGLONG_H 24#include "mpfr-impl.h" 25 26static int mpfr_get_str_aux (char *const, mpfr_exp_t *const, mp_limb_t *const, 27 mp_size_t, mpfr_exp_t, long, int, size_t, mpfr_rnd_t); 28 29/* The implicit \0 is useless, but we do not write num_to_text[62] otherwise 30 g++ complains. */ 31static const char num_to_text36[] = "0123456789abcdefghijklmnopqrstuvwxyz"; 32static const char num_to_text62[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 33 "abcdefghijklmnopqrstuvwxyz"; 34 35/* copy most important limbs of {op, n2} in {rp, n1} */ 36/* if n1 > n2 put 0 in low limbs of {rp, n1} */ 37#define MPN_COPY2(rp, n1, op, n2) \ 38 if ((n1) <= (n2)) \ 39 { \ 40 MPN_COPY ((rp), (op) + (n2) - (n1), (n1)); \ 41 } \ 42 else \ 43 { \ 44 MPN_COPY ((rp) + (n1) - (n2), (op), (n2)); \ 45 MPN_ZERO ((rp), (n1) - (n2)); \ 46 } 47 48#define MPFR_ROUND_FAILED 3 49 50/* Input: an approximation r*2^f of a real Y, with |r*2^f-Y| <= 2^(e+f). 51 Returns if possible in the string s the mantissa corresponding to 52 the integer nearest to Y, within the direction rnd, and returns the 53 exponent in exp. 54 n is the number of limbs of r. 55 e represents the maximal error in the approximation of Y 56 (e < 0 iff the approximation is exact, i.e., r*2^f = Y). 57 b is the wanted base (2 <= b <= 62). 58 m is the number of wanted digits in the mantissa. 59 rnd is the rounding mode. 60 It is assumed that b^(m-1) <= Y < b^(m+1), thus the returned value 61 satisfies b^(m-1) <= rnd(Y) < b^(m+1). 62 63 Rounding may fail for two reasons: 64 - the error is too large to determine the integer N nearest to Y 65 - either the number of digits of N in base b is too large (m+1), 66 N=2*N1+(b/2) and the rounding mode is to nearest. This can 67 only happen when b is even. 68 69 Return value: 70 - the direction of rounding (-1, 0, 1) if rounding is possible 71 - -MPFR_ROUND_FAILED if rounding not possible because m+1 digits 72 - MPFR_ROUND_FAILED otherwise (too large error) 73*/ 74static int 75mpfr_get_str_aux (char *const str, mpfr_exp_t *const exp, mp_limb_t *const r, 76 mp_size_t n, mpfr_exp_t f, long e, int b, size_t m, 77 mpfr_rnd_t rnd) 78{ 79 const char *num_to_text; 80 int dir; /* direction of the rounded result */ 81 mp_limb_t ret = 0; /* possible carry in addition */ 82 mp_size_t i0, j0; /* number of limbs and bits of Y */ 83 unsigned char *str1; /* string of m+2 characters */ 84 size_t size_s1; /* length of str1 */ 85 mpfr_rnd_t rnd1; 86 size_t i; 87 int exact = (e < 0); 88 MPFR_TMP_DECL(marker); 89 90 /* if f > 0, then the maximal error 2^(e+f) is larger than 2 so we can't 91 determine the integer Y */ 92 MPFR_ASSERTN(f <= 0); 93 /* if f is too small, then r*2^f is smaller than 1 */ 94 MPFR_ASSERTN(f > (-n * GMP_NUMB_BITS)); 95 96 MPFR_TMP_MARK(marker); 97 98 num_to_text = b < 37 ? num_to_text36 : num_to_text62; 99 100 /* R = 2^f sum r[i]K^(i) 101 r[i] = (r_(i,k-1)...r_(i,0))_2 102 R = sum r(i,j)2^(j+ki+f) 103 the bits from R are referenced by pairs (i,j) */ 104 105 /* check if is possible to round r with rnd mode 106 where |r*2^f-Y| <= 2^(e+f) 107 the exponent of R is: f + n*GMP_NUMB_BITS 108 we must have e + f == f + n*GMP_NUMB_BITS - err 109 err = n*GMP_NUMB_BITS - e 110 R contains exactly -f bits after the integer point: 111 to determine the nearest integer, we thus need a precision of 112 n * GMP_NUMB_BITS + f */ 113 114 if (exact || mpfr_can_round_raw (r, n, (mp_size_t) 1, 115 n * GMP_NUMB_BITS - e, MPFR_RNDN, rnd, n * GMP_NUMB_BITS + f)) 116 { 117 /* compute the nearest integer to R */ 118 119 /* bit of weight 0 in R has position j0 in limb r[i0] */ 120 i0 = (-f) / GMP_NUMB_BITS; 121 j0 = (-f) % GMP_NUMB_BITS; 122 123 ret = mpfr_round_raw (r + i0, r, n * GMP_NUMB_BITS, 0, 124 n * GMP_NUMB_BITS + f, rnd, &dir); 125 MPFR_ASSERTD(dir != MPFR_ROUND_FAILED); 126 127 /* warning: mpfr_round_raw_generic returns MPFR_EVEN_INEX (2) or 128 -MPFR_EVEN_INEX (-2) in case of even rounding */ 129 130 if (ret) /* Y is a power of 2 */ 131 { 132 if (j0) 133 r[n - 1] = MPFR_LIMB_HIGHBIT >> (j0 - 1); 134 else /* j0=0, necessarily i0 >= 1 otherwise f=0 and r is exact */ 135 { 136 r[n - 1] = ret; 137 r[--i0] = 0; /* set to zero the new low limb */ 138 } 139 } 140 else /* shift r to the right by (-f) bits (i0 already done) */ 141 { 142 if (j0) 143 mpn_rshift (r + i0, r + i0, n - i0, j0); 144 } 145 146 /* now the rounded value Y is in {r+i0, n-i0} */ 147 148 /* convert r+i0 into base b */ 149 str1 = (unsigned char*) MPFR_TMP_ALLOC (m + 3); /* need one extra character for mpn_get_str */ 150 size_s1 = mpn_get_str (str1, b, r + i0, n - i0); 151 152 /* round str1 */ 153 MPFR_ASSERTN(size_s1 >= m); 154 *exp = size_s1 - m; /* number of superfluous characters */ 155 156 /* if size_s1 = m + 2, necessarily we have b^(m+1) as result, 157 and the result will not change */ 158 159 /* so we have to double-round only when size_s1 = m + 1 and 160 (i) the result is inexact 161 (ii) or the last digit is non-zero */ 162 if ((size_s1 == m + 1) && ((dir != 0) || (str1[size_s1 - 1] != 0))) 163 { 164 /* rounding mode */ 165 rnd1 = rnd; 166 167 /* round to nearest case */ 168 if (rnd == MPFR_RNDN) 169 { 170 if (2 * str1[size_s1 - 1] == b) 171 { 172 if (dir == 0 && exact) /* exact: even rounding */ 173 { 174 rnd1 = ((str1[size_s1 - 2] & 1) == 0) 175 ? MPFR_RNDD : MPFR_RNDU; 176 } 177 else 178 { 179 /* otherwise we cannot round correctly: for example 180 if b=10, we might have a mantissa of 181 xxxxxxx5.00000000 which can be rounded to nearest 182 to 8 digits but not to 7 */ 183 dir = -MPFR_ROUND_FAILED; 184 MPFR_ASSERTD(dir != MPFR_EVEN_INEX); 185 goto free_and_return; 186 } 187 } 188 else if (2 * str1[size_s1 - 1] < b) 189 rnd1 = MPFR_RNDD; 190 else 191 rnd1 = MPFR_RNDU; 192 } 193 194 /* now rnd1 is either 195 MPFR_RNDD or MPFR_RNDZ -> truncate, or 196 MPFR_RNDU or MPFR_RNDA -> round toward infinity */ 197 198 /* round away from zero */ 199 if (rnd1 == MPFR_RNDU || rnd1 == MPFR_RNDA) 200 { 201 if (str1[size_s1 - 1] != 0) 202 { 203 /* the carry cannot propagate to the whole string, since 204 Y = x*b^(m-g) < 2*b^m <= b^(m+1)-b 205 where x is the input float */ 206 MPFR_ASSERTN(size_s1 >= 2); 207 i = size_s1 - 2; 208 while (str1[i] == b - 1) 209 { 210 MPFR_ASSERTD(i > 0); 211 str1[i--] = 0; 212 } 213 str1[i]++; 214 } 215 dir = 1; 216 } 217 /* round toward zero (truncate) */ 218 else 219 dir = -1; 220 } 221 222 /* copy str1 into str and convert to characters (digits and 223 lowercase letters from the source character set) */ 224 for (i = 0; i < m; i++) 225 str[i] = num_to_text[(int) str1[i]]; /* str1[i] is an unsigned char */ 226 str[m] = 0; 227 } 228 /* mpfr_can_round_raw failed: rounding is not possible */ 229 else 230 { 231 dir = MPFR_ROUND_FAILED; /* should be different from MPFR_EVEN_INEX */ 232 MPFR_ASSERTD(dir != MPFR_EVEN_INEX); 233 } 234 235 free_and_return: 236 MPFR_TMP_FREE(marker); 237 238 return dir; 239} 240 241/*************************************************************************** 242 * __gmpfr_l2b[b-2][0] is a 23-bit upper approximation to log(b)/log(2), * 243 * __gmpfr_l2b[b-2][1] is a 76-bit upper approximation to log(2)/log(b). * 244 * The following code is generated by tests/tl2b (with an argument). * 245 ***************************************************************************/ 246 247#if 0 248#elif GMP_NUMB_BITS == 16 249const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x0000, 0x8000 }; 250#elif GMP_NUMB_BITS == 32 251const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x80000000 }; 252#elif GMP_NUMB_BITS == 64 253const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x8000000000000000 }; 254#elif GMP_NUMB_BITS == 96 255const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x800000000000000000000000 }; 256#elif GMP_NUMB_BITS == 128 257const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x80000000000000000000000000000000 }; 258#elif GMP_NUMB_BITS == 256 259const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 260#endif 261 262#if 0 263#elif GMP_NUMB_BITS == 16 264const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 }; 265#elif GMP_NUMB_BITS == 32 266const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 }; 267#elif GMP_NUMB_BITS == 64 268const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x0000000000000000, 0x8000000000000000 }; 269#elif GMP_NUMB_BITS == 96 270const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x800000000000000000000000 }; 271#elif GMP_NUMB_BITS == 128 272const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x80000000000000000000000000000000 }; 273#elif GMP_NUMB_BITS == 256 274const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 275#endif 276 277#if 0 278#elif GMP_NUMB_BITS == 16 279const mp_limb_t mpfr_l2b_3_0__tab[] = { 0x0e00, 0xcae0 }; 280#elif GMP_NUMB_BITS == 32 281const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e00 }; 282#elif GMP_NUMB_BITS == 64 283const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e0000000000 }; 284#elif GMP_NUMB_BITS == 96 285const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e000000000000000000 }; 286#elif GMP_NUMB_BITS == 128 287const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e00000000000000000000000000 }; 288#elif GMP_NUMB_BITS == 256 289const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e0000000000000000000000000000000000000000000000000000000000 }; 290#endif 291 292#if 0 293#elif GMP_NUMB_BITS == 16 294const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x0448, 0xe94e, 0xa9a9, 0x9cc1, 0xa184 }; 295#elif GMP_NUMB_BITS == 32 296const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x04480000, 0xa9a9e94e, 0xa1849cc1 }; 297#elif GMP_NUMB_BITS == 64 298const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x0448000000000000, 0xa1849cc1a9a9e94e }; 299#elif GMP_NUMB_BITS == 96 300const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e04480000 }; 301#elif GMP_NUMB_BITS == 128 302const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e0448000000000000 }; 303#elif GMP_NUMB_BITS == 256 304const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e044800000000000000000000000000000000000000000000 }; 305#endif 306 307#if 0 308#elif GMP_NUMB_BITS == 16 309const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x0000, 0x8000 }; 310#elif GMP_NUMB_BITS == 32 311const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x80000000 }; 312#elif GMP_NUMB_BITS == 64 313const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x8000000000000000 }; 314#elif GMP_NUMB_BITS == 96 315const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x800000000000000000000000 }; 316#elif GMP_NUMB_BITS == 128 317const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x80000000000000000000000000000000 }; 318#elif GMP_NUMB_BITS == 256 319const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 320#endif 321 322#if 0 323#elif GMP_NUMB_BITS == 16 324const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 }; 325#elif GMP_NUMB_BITS == 32 326const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 }; 327#elif GMP_NUMB_BITS == 64 328const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x0000000000000000, 0x8000000000000000 }; 329#elif GMP_NUMB_BITS == 96 330const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x800000000000000000000000 }; 331#elif GMP_NUMB_BITS == 128 332const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x80000000000000000000000000000000 }; 333#elif GMP_NUMB_BITS == 256 334const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 335#endif 336 337#if 0 338#elif GMP_NUMB_BITS == 16 339const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x7a00, 0x949a }; 340#elif GMP_NUMB_BITS == 32 341const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a00 }; 342#elif GMP_NUMB_BITS == 64 343const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a0000000000 }; 344#elif GMP_NUMB_BITS == 96 345const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a000000000000000000 }; 346#elif GMP_NUMB_BITS == 128 347const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a00000000000000000000000000 }; 348#elif GMP_NUMB_BITS == 256 349const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a0000000000000000000000000000000000000000000000000000000000 }; 350#endif 351 352#if 0 353#elif GMP_NUMB_BITS == 16 354const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b8, 0x9728, 0x287b, 0xa348, 0xdc81 }; 355#elif GMP_NUMB_BITS == 32 356const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b80000, 0x287b9728, 0xdc81a348 }; 357#elif GMP_NUMB_BITS == 64 358const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b8000000000000, 0xdc81a348287b9728 }; 359#elif GMP_NUMB_BITS == 96 360const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b80000 }; 361#elif GMP_NUMB_BITS == 128 362const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b8000000000000 }; 363#elif GMP_NUMB_BITS == 256 364const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b800000000000000000000000000000000000000000000 }; 365#endif 366 367#if 0 368#elif GMP_NUMB_BITS == 16 369const mp_limb_t mpfr_l2b_6_0__tab[] = { 0x0800, 0xa570 }; 370#elif GMP_NUMB_BITS == 32 371const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa5700800 }; 372#elif GMP_NUMB_BITS == 64 373const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa570080000000000 }; 374#elif GMP_NUMB_BITS == 96 375const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa57008000000000000000000 }; 376#elif GMP_NUMB_BITS == 128 377const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa5700800000000000000000000000000 }; 378#elif GMP_NUMB_BITS == 256 379const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa570080000000000000000000000000000000000000000000000000000000000 }; 380#endif 381 382#if 0 383#elif GMP_NUMB_BITS == 16 384const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff10, 0xf9e9, 0xe054, 0x9236, 0xc611 }; 385#elif GMP_NUMB_BITS == 32 386const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff100000, 0xe054f9e9, 0xc6119236 }; 387#elif GMP_NUMB_BITS == 64 388const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff10000000000000, 0xc6119236e054f9e9 }; 389#elif GMP_NUMB_BITS == 96 390const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff100000 }; 391#elif GMP_NUMB_BITS == 128 392const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff10000000000000 }; 393#elif GMP_NUMB_BITS == 256 394const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff1000000000000000000000000000000000000000000000 }; 395#endif 396 397#if 0 398#elif GMP_NUMB_BITS == 16 399const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb400, 0xb3ab }; 400#elif GMP_NUMB_BITS == 32 401const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb400 }; 402#elif GMP_NUMB_BITS == 64 403const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb40000000000 }; 404#elif GMP_NUMB_BITS == 96 405const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb4000000000000000000 }; 406#elif GMP_NUMB_BITS == 128 407const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb400000000000000000000000000 }; 408#elif GMP_NUMB_BITS == 256 409const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb40000000000000000000000000000000000000000000000000000000000 }; 410#endif 411 412#if 0 413#elif GMP_NUMB_BITS == 16 414const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b8, 0xa711, 0x754d, 0xc9d6, 0xb660 }; 415#elif GMP_NUMB_BITS == 32 416const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b80000, 0x754da711, 0xb660c9d6 }; 417#elif GMP_NUMB_BITS == 64 418const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b8000000000000, 0xb660c9d6754da711 }; 419#elif GMP_NUMB_BITS == 96 420const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b80000 }; 421#elif GMP_NUMB_BITS == 128 422const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b8000000000000 }; 423#elif GMP_NUMB_BITS == 256 424const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b800000000000000000000000000000000000000000000 }; 425#endif 426 427#if 0 428#elif GMP_NUMB_BITS == 16 429const mp_limb_t mpfr_l2b_8_0__tab[] = { 0x0000, 0xc000 }; 430#elif GMP_NUMB_BITS == 32 431const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc0000000 }; 432#elif GMP_NUMB_BITS == 64 433const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc000000000000000 }; 434#elif GMP_NUMB_BITS == 96 435const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc00000000000000000000000 }; 436#elif GMP_NUMB_BITS == 128 437const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc0000000000000000000000000000000 }; 438#elif GMP_NUMB_BITS == 256 439const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc000000000000000000000000000000000000000000000000000000000000000 }; 440#endif 441 442#if 0 443#elif GMP_NUMB_BITS == 16 444const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab0, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa }; 445#elif GMP_NUMB_BITS == 32 446const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab00000, 0xaaaaaaaa, 0xaaaaaaaa }; 447#elif GMP_NUMB_BITS == 64 448const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab0000000000000, 0xaaaaaaaaaaaaaaaa }; 449#elif GMP_NUMB_BITS == 96 450const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab00000 }; 451#elif GMP_NUMB_BITS == 128 452const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab0000000000000 }; 453#elif GMP_NUMB_BITS == 256 454const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab000000000000000000000000000000000000000000000 }; 455#endif 456 457#if 0 458#elif GMP_NUMB_BITS == 16 459const mp_limb_t mpfr_l2b_9_0__tab[] = { 0x0e00, 0xcae0 }; 460#elif GMP_NUMB_BITS == 32 461const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e00 }; 462#elif GMP_NUMB_BITS == 64 463const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e0000000000 }; 464#elif GMP_NUMB_BITS == 96 465const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e000000000000000000 }; 466#elif GMP_NUMB_BITS == 128 467const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e00000000000000000000000000 }; 468#elif GMP_NUMB_BITS == 256 469const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e0000000000000000000000000000000000000000000000000000000000 }; 470#endif 471 472#if 0 473#elif GMP_NUMB_BITS == 16 474const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x0448, 0xe94e, 0xa9a9, 0x9cc1, 0xa184 }; 475#elif GMP_NUMB_BITS == 32 476const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x04480000, 0xa9a9e94e, 0xa1849cc1 }; 477#elif GMP_NUMB_BITS == 64 478const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x0448000000000000, 0xa1849cc1a9a9e94e }; 479#elif GMP_NUMB_BITS == 96 480const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e04480000 }; 481#elif GMP_NUMB_BITS == 128 482const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e0448000000000000 }; 483#elif GMP_NUMB_BITS == 256 484const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e044800000000000000000000000000000000000000000000 }; 485#endif 486 487#if 0 488#elif GMP_NUMB_BITS == 16 489const mp_limb_t mpfr_l2b_10_0__tab[] = { 0x7a00, 0xd49a }; 490#elif GMP_NUMB_BITS == 32 491const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a00 }; 492#elif GMP_NUMB_BITS == 64 493const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a0000000000 }; 494#elif GMP_NUMB_BITS == 96 495const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a000000000000000000 }; 496#elif GMP_NUMB_BITS == 128 497const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a00000000000000000000000000 }; 498#elif GMP_NUMB_BITS == 256 499const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a0000000000000000000000000000000000000000000000000000000000 }; 500#endif 501 502#if 0 503#elif GMP_NUMB_BITS == 16 504const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f90, 0xf798, 0xfbcf, 0x9a84, 0x9a20 }; 505#elif GMP_NUMB_BITS == 32 506const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f900000, 0xfbcff798, 0x9a209a84 }; 507#elif GMP_NUMB_BITS == 64 508const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f90000000000000, 0x9a209a84fbcff798 }; 509#elif GMP_NUMB_BITS == 96 510const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f900000 }; 511#elif GMP_NUMB_BITS == 128 512const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f90000000000000 }; 513#elif GMP_NUMB_BITS == 256 514const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f9000000000000000000000000000000000000000000000 }; 515#endif 516 517#if 0 518#elif GMP_NUMB_BITS == 16 519const mp_limb_t mpfr_l2b_11_0__tab[] = { 0x5400, 0xdd67 }; 520#elif GMP_NUMB_BITS == 32 521const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd675400 }; 522#elif GMP_NUMB_BITS == 64 523const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd67540000000000 }; 524#elif GMP_NUMB_BITS == 96 525const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd6754000000000000000000 }; 526#elif GMP_NUMB_BITS == 128 527const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd675400000000000000000000000000 }; 528#elif GMP_NUMB_BITS == 256 529const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd67540000000000000000000000000000000000000000000000000000000000 }; 530#endif 531 532#if 0 533#elif GMP_NUMB_BITS == 16 534const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe170, 0x9d10, 0xeb22, 0x4e0e, 0x9400 }; 535#elif GMP_NUMB_BITS == 32 536const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe1700000, 0xeb229d10, 0x94004e0e }; 537#elif GMP_NUMB_BITS == 64 538const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe170000000000000, 0x94004e0eeb229d10 }; 539#elif GMP_NUMB_BITS == 96 540const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e1700000 }; 541#elif GMP_NUMB_BITS == 128 542const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e170000000000000 }; 543#elif GMP_NUMB_BITS == 256 544const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e17000000000000000000000000000000000000000000000 }; 545#endif 546 547#if 0 548#elif GMP_NUMB_BITS == 16 549const mp_limb_t mpfr_l2b_12_0__tab[] = { 0x0800, 0xe570 }; 550#elif GMP_NUMB_BITS == 32 551const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe5700800 }; 552#elif GMP_NUMB_BITS == 64 553const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe570080000000000 }; 554#elif GMP_NUMB_BITS == 96 555const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe57008000000000000000000 }; 556#elif GMP_NUMB_BITS == 128 557const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe5700800000000000000000000000000 }; 558#elif GMP_NUMB_BITS == 256 559const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe570080000000000000000000000000000000000000000000000000000000000 }; 560#endif 561 562#if 0 563#elif GMP_NUMB_BITS == 16 564const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe28, 0x1c24, 0x0b03, 0x9c1a, 0x8ed1 }; 565#elif GMP_NUMB_BITS == 32 566const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe280000, 0x0b031c24, 0x8ed19c1a }; 567#elif GMP_NUMB_BITS == 64 568const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe28000000000000, 0x8ed19c1a0b031c24 }; 569#elif GMP_NUMB_BITS == 96 570const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe280000 }; 571#elif GMP_NUMB_BITS == 128 572const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe28000000000000 }; 573#elif GMP_NUMB_BITS == 256 574const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe2800000000000000000000000000000000000000000000 }; 575#endif 576 577#if 0 578#elif GMP_NUMB_BITS == 16 579const mp_limb_t mpfr_l2b_13_0__tab[] = { 0x0200, 0xecd4 }; 580#elif GMP_NUMB_BITS == 32 581const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd40200 }; 582#elif GMP_NUMB_BITS == 64 583const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd4020000000000 }; 584#elif GMP_NUMB_BITS == 96 585const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd402000000000000000000 }; 586#elif GMP_NUMB_BITS == 128 587const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd40200000000000000000000000000 }; 588#elif GMP_NUMB_BITS == 256 589const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd4020000000000000000000000000000000000000000000000000000000000 }; 590#endif 591 592#if 0 593#elif GMP_NUMB_BITS == 16 594const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f8, 0xf7b4, 0xcb20, 0xa7c6, 0x8a5c }; 595#elif GMP_NUMB_BITS == 32 596const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f80000, 0xcb20f7b4, 0x8a5ca7c6 }; 597#elif GMP_NUMB_BITS == 64 598const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f8000000000000, 0x8a5ca7c6cb20f7b4 }; 599#elif GMP_NUMB_BITS == 96 600const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f80000 }; 601#elif GMP_NUMB_BITS == 128 602const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f8000000000000 }; 603#elif GMP_NUMB_BITS == 256 604const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f800000000000000000000000000000000000000000000 }; 605#endif 606 607#if 0 608#elif GMP_NUMB_BITS == 16 609const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xb400, 0xf3ab }; 610#elif GMP_NUMB_BITS == 32 611const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb400 }; 612#elif GMP_NUMB_BITS == 64 613const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb40000000000 }; 614#elif GMP_NUMB_BITS == 96 615const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb4000000000000000000 }; 616#elif GMP_NUMB_BITS == 128 617const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb400000000000000000000000000 }; 618#elif GMP_NUMB_BITS == 256 619const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb40000000000000000000000000000000000000000000000000000000000 }; 620#endif 621 622#if 0 623#elif GMP_NUMB_BITS == 16 624const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a8, 0x5cab, 0x96b5, 0xfff6, 0x8679 }; 625#elif GMP_NUMB_BITS == 32 626const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a80000, 0x96b55cab, 0x8679fff6 }; 627#elif GMP_NUMB_BITS == 64 628const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a8000000000000, 0x8679fff696b55cab }; 629#elif GMP_NUMB_BITS == 96 630const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a80000 }; 631#elif GMP_NUMB_BITS == 128 632const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a8000000000000 }; 633#elif GMP_NUMB_BITS == 256 634const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a800000000000000000000000000000000000000000000 }; 635#endif 636 637#if 0 638#elif GMP_NUMB_BITS == 16 639const mp_limb_t mpfr_l2b_15_0__tab[] = { 0x8000, 0xfa0a }; 640#elif GMP_NUMB_BITS == 32 641const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a8000 }; 642#elif GMP_NUMB_BITS == 64 643const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a800000000000 }; 644#elif GMP_NUMB_BITS == 96 645const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a80000000000000000000 }; 646#elif GMP_NUMB_BITS == 128 647const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a8000000000000000000000000000 }; 648#elif GMP_NUMB_BITS == 256 649const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a800000000000000000000000000000000000000000000000000000000000 }; 650#endif 651 652#if 0 653#elif GMP_NUMB_BITS == 16 654const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f80, 0xa6aa, 0x69f0, 0xee23, 0x830c }; 655#elif GMP_NUMB_BITS == 32 656const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f800000, 0x69f0a6aa, 0x830cee23 }; 657#elif GMP_NUMB_BITS == 64 658const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f80000000000000, 0x830cee2369f0a6aa }; 659#elif GMP_NUMB_BITS == 96 660const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f800000 }; 661#elif GMP_NUMB_BITS == 128 662const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f80000000000000 }; 663#elif GMP_NUMB_BITS == 256 664const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f8000000000000000000000000000000000000000000000 }; 665#endif 666 667#if 0 668#elif GMP_NUMB_BITS == 16 669const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x0000, 0x8000 }; 670#elif GMP_NUMB_BITS == 32 671const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x80000000 }; 672#elif GMP_NUMB_BITS == 64 673const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x8000000000000000 }; 674#elif GMP_NUMB_BITS == 96 675const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x800000000000000000000000 }; 676#elif GMP_NUMB_BITS == 128 677const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x80000000000000000000000000000000 }; 678#elif GMP_NUMB_BITS == 256 679const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 680#endif 681 682#if 0 683#elif GMP_NUMB_BITS == 16 684const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 }; 685#elif GMP_NUMB_BITS == 32 686const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 }; 687#elif GMP_NUMB_BITS == 64 688const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x0000000000000000, 0x8000000000000000 }; 689#elif GMP_NUMB_BITS == 96 690const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x800000000000000000000000 }; 691#elif GMP_NUMB_BITS == 128 692const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x80000000000000000000000000000000 }; 693#elif GMP_NUMB_BITS == 256 694const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 695#endif 696 697#if 0 698#elif GMP_NUMB_BITS == 16 699const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x8000, 0x82cc }; 700#elif GMP_NUMB_BITS == 32 701const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc8000 }; 702#elif GMP_NUMB_BITS == 64 703const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc800000000000 }; 704#elif GMP_NUMB_BITS == 96 705const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc80000000000000000000 }; 706#elif GMP_NUMB_BITS == 128 707const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc8000000000000000000000000000 }; 708#elif GMP_NUMB_BITS == 256 709const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc800000000000000000000000000000000000000000000000000000000000 }; 710#endif 711 712#if 0 713#elif GMP_NUMB_BITS == 16 714const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x8720, 0x259b, 0x62c4, 0xabf5, 0xfa85 }; 715#elif GMP_NUMB_BITS == 32 716const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x87200000, 0x62c4259b, 0xfa85abf5 }; 717#elif GMP_NUMB_BITS == 64 718const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x8720000000000000, 0xfa85abf562c4259b }; 719#elif GMP_NUMB_BITS == 96 720const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b87200000 }; 721#elif GMP_NUMB_BITS == 128 722const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b8720000000000000 }; 723#elif GMP_NUMB_BITS == 256 724const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b872000000000000000000000000000000000000000000000 }; 725#endif 726 727#if 0 728#elif GMP_NUMB_BITS == 16 729const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x0800, 0x8570 }; 730#elif GMP_NUMB_BITS == 32 731const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x85700800 }; 732#elif GMP_NUMB_BITS == 64 733const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x8570080000000000 }; 734#elif GMP_NUMB_BITS == 96 735const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x857008000000000000000000 }; 736#elif GMP_NUMB_BITS == 128 737const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x85700800000000000000000000000000 }; 738#elif GMP_NUMB_BITS == 256 739const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x8570080000000000000000000000000000000000000000000000000000000000 }; 740#endif 741 742#if 0 743#elif GMP_NUMB_BITS == 16 744const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x3698, 0x1378, 0x5537, 0x6634, 0xf591 }; 745#elif GMP_NUMB_BITS == 32 746const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x36980000, 0x55371378, 0xf5916634 }; 747#elif GMP_NUMB_BITS == 64 748const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x3698000000000000, 0xf591663455371378 }; 749#elif GMP_NUMB_BITS == 96 750const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf59166345537137836980000 }; 751#elif GMP_NUMB_BITS == 128 752const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf5916634553713783698000000000000 }; 753#elif GMP_NUMB_BITS == 256 754const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf591663455371378369800000000000000000000000000000000000000000000 }; 755#endif 756 757#if 0 758#elif GMP_NUMB_BITS == 16 759const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x0600, 0x87ef }; 760#elif GMP_NUMB_BITS == 32 761const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef0600 }; 762#elif GMP_NUMB_BITS == 64 763const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef060000000000 }; 764#elif GMP_NUMB_BITS == 96 765const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef06000000000000000000 }; 766#elif GMP_NUMB_BITS == 128 767const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef0600000000000000000000000000 }; 768#elif GMP_NUMB_BITS == 256 769const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef060000000000000000000000000000000000000000000000000000000000 }; 770#endif 771 772#if 0 773#elif GMP_NUMB_BITS == 16 774const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db8, 0x558c, 0x62ed, 0x08c0, 0xf10f }; 775#elif GMP_NUMB_BITS == 32 776const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db80000, 0x62ed558c, 0xf10f08c0 }; 777#elif GMP_NUMB_BITS == 64 778const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db8000000000000, 0xf10f08c062ed558c }; 779#elif GMP_NUMB_BITS == 96 780const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db80000 }; 781#elif GMP_NUMB_BITS == 128 782const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db8000000000000 }; 783#elif GMP_NUMB_BITS == 256 784const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db800000000000000000000000000000000000000000000 }; 785#endif 786 787#if 0 788#elif GMP_NUMB_BITS == 16 789const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x3e00, 0x8a4d }; 790#elif GMP_NUMB_BITS == 32 791const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e00 }; 792#elif GMP_NUMB_BITS == 64 793const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e0000000000 }; 794#elif GMP_NUMB_BITS == 96 795const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e000000000000000000 }; 796#elif GMP_NUMB_BITS == 128 797const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e00000000000000000000000000 }; 798#elif GMP_NUMB_BITS == 256 799const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e0000000000000000000000000000000000000000000000000000000000 }; 800#endif 801 802#if 0 803#elif GMP_NUMB_BITS == 16 804const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b40, 0xa71c, 0x1cc1, 0x690a, 0xecee }; 805#elif GMP_NUMB_BITS == 32 806const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b400000, 0x1cc1a71c, 0xecee690a }; 807#elif GMP_NUMB_BITS == 64 808const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b40000000000000, 0xecee690a1cc1a71c }; 809#elif GMP_NUMB_BITS == 96 810const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b400000 }; 811#elif GMP_NUMB_BITS == 128 812const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b40000000000000 }; 813#elif GMP_NUMB_BITS == 256 814const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b4000000000000000000000000000000000000000000000 }; 815#endif 816 817#if 0 818#elif GMP_NUMB_BITS == 16 819const mp_limb_t mpfr_l2b_21_0__tab[] = { 0xde00, 0x8c8d }; 820#elif GMP_NUMB_BITS == 32 821const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde00 }; 822#elif GMP_NUMB_BITS == 64 823const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde0000000000 }; 824#elif GMP_NUMB_BITS == 96 825const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde000000000000000000 }; 826#elif GMP_NUMB_BITS == 128 827const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde00000000000000000000000000 }; 828#elif GMP_NUMB_BITS == 256 829const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde0000000000000000000000000000000000000000000000000000000000 }; 830#endif 831 832#if 0 833#elif GMP_NUMB_BITS == 16 834const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x4108, 0x6b26, 0xb3d0, 0x63c1, 0xe922 }; 835#elif GMP_NUMB_BITS == 32 836const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x41080000, 0xb3d06b26, 0xe92263c1 }; 837#elif GMP_NUMB_BITS == 64 838const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x4108000000000000, 0xe92263c1b3d06b26 }; 839#elif GMP_NUMB_BITS == 96 840const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b2641080000 }; 841#elif GMP_NUMB_BITS == 128 842const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b264108000000000000 }; 843#elif GMP_NUMB_BITS == 256 844const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b26410800000000000000000000000000000000000000000000 }; 845#endif 846 847#if 0 848#elif GMP_NUMB_BITS == 16 849const mp_limb_t mpfr_l2b_22_0__tab[] = { 0xaa00, 0x8eb3 }; 850#elif GMP_NUMB_BITS == 32 851const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa00 }; 852#elif GMP_NUMB_BITS == 64 853const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa0000000000 }; 854#elif GMP_NUMB_BITS == 96 855const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa000000000000000000 }; 856#elif GMP_NUMB_BITS == 128 857const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa00000000000000000000000000 }; 858#elif GMP_NUMB_BITS == 256 859const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa0000000000000000000000000000000000000000000000000000000000 }; 860#endif 861 862#if 0 863#elif GMP_NUMB_BITS == 16 864const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe8, 0xf061, 0x60b9, 0x2c4d, 0xe5a0 }; 865#elif GMP_NUMB_BITS == 32 866const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe80000, 0x60b9f061, 0xe5a02c4d }; 867#elif GMP_NUMB_BITS == 64 868const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe8000000000000, 0xe5a02c4d60b9f061 }; 869#elif GMP_NUMB_BITS == 96 870const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe80000 }; 871#elif GMP_NUMB_BITS == 128 872const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe8000000000000 }; 873#elif GMP_NUMB_BITS == 256 874const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe800000000000000000000000000000000000000000000 }; 875#endif 876 877#if 0 878#elif GMP_NUMB_BITS == 16 879const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x0600, 0x90c1 }; 880#elif GMP_NUMB_BITS == 32 881const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c10600 }; 882#elif GMP_NUMB_BITS == 64 883const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c1060000000000 }; 884#elif GMP_NUMB_BITS == 96 885const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c106000000000000000000 }; 886#elif GMP_NUMB_BITS == 128 887const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c10600000000000000000000000000 }; 888#elif GMP_NUMB_BITS == 256 889const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c1060000000000000000000000000000000000000000000000000000000000 }; 890#endif 891 892#if 0 893#elif GMP_NUMB_BITS == 16 894const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e0, 0x586a, 0x46b9, 0xcadd, 0xe25e }; 895#elif GMP_NUMB_BITS == 32 896const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e00000, 0x46b9586a, 0xe25ecadd }; 897#elif GMP_NUMB_BITS == 64 898const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e0000000000000, 0xe25ecadd46b9586a }; 899#elif GMP_NUMB_BITS == 96 900const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e00000 }; 901#elif GMP_NUMB_BITS == 128 902const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e0000000000000 }; 903#elif GMP_NUMB_BITS == 256 904const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e000000000000000000000000000000000000000000000 }; 905#endif 906 907#if 0 908#elif GMP_NUMB_BITS == 16 909const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x0400, 0x92b8 }; 910#elif GMP_NUMB_BITS == 32 911const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b80400 }; 912#elif GMP_NUMB_BITS == 64 913const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b8040000000000 }; 914#elif GMP_NUMB_BITS == 96 915const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b804000000000000000000 }; 916#elif GMP_NUMB_BITS == 128 917const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b80400000000000000000000000000 }; 918#elif GMP_NUMB_BITS == 256 919const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b8040000000000000000000000000000000000000000000000000000000000 }; 920#endif 921 922#if 0 923#elif GMP_NUMB_BITS == 16 924const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x3668, 0x7263, 0xc7c6, 0xbb44, 0xdf56 }; 925#elif GMP_NUMB_BITS == 32 926const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x36680000, 0xc7c67263, 0xdf56bb44 }; 927#elif GMP_NUMB_BITS == 64 928const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x3668000000000000, 0xdf56bb44c7c67263 }; 929#elif GMP_NUMB_BITS == 96 930const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c6726336680000 }; 931#elif GMP_NUMB_BITS == 128 932const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c672633668000000000000 }; 933#elif GMP_NUMB_BITS == 256 934const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c67263366800000000000000000000000000000000000000000000 }; 935#endif 936 937#if 0 938#elif GMP_NUMB_BITS == 16 939const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x7a00, 0x949a }; 940#elif GMP_NUMB_BITS == 32 941const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a00 }; 942#elif GMP_NUMB_BITS == 64 943const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a0000000000 }; 944#elif GMP_NUMB_BITS == 96 945const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a000000000000000000 }; 946#elif GMP_NUMB_BITS == 128 947const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a00000000000000000000000000 }; 948#elif GMP_NUMB_BITS == 256 949const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a0000000000000000000000000000000000000000000000000000000000 }; 950#endif 951 952#if 0 953#elif GMP_NUMB_BITS == 16 954const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b8, 0x9728, 0x287b, 0xa348, 0xdc81 }; 955#elif GMP_NUMB_BITS == 32 956const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b80000, 0x287b9728, 0xdc81a348 }; 957#elif GMP_NUMB_BITS == 64 958const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b8000000000000, 0xdc81a348287b9728 }; 959#elif GMP_NUMB_BITS == 96 960const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b80000 }; 961#elif GMP_NUMB_BITS == 128 962const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b8000000000000 }; 963#elif GMP_NUMB_BITS == 256 964const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b800000000000000000000000000000000000000000000 }; 965#endif 966 967#if 0 968#elif GMP_NUMB_BITS == 16 969const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x0200, 0x966a }; 970#elif GMP_NUMB_BITS == 32 971const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a0200 }; 972#elif GMP_NUMB_BITS == 64 973const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a020000000000 }; 974#elif GMP_NUMB_BITS == 96 975const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a02000000000000000000 }; 976#elif GMP_NUMB_BITS == 128 977const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a0200000000000000000000000000 }; 978#elif GMP_NUMB_BITS == 256 979const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a020000000000000000000000000000000000000000000000000000000000 }; 980#endif 981 982#if 0 983#elif GMP_NUMB_BITS == 16 984const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x6458, 0x78a4, 0x7583, 0x19f9, 0xd9da }; 985#elif GMP_NUMB_BITS == 32 986const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x64580000, 0x758378a4, 0xd9da19f9 }; 987#elif GMP_NUMB_BITS == 64 988const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x6458000000000000, 0xd9da19f9758378a4 }; 989#elif GMP_NUMB_BITS == 96 990const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a464580000 }; 991#elif GMP_NUMB_BITS == 128 992const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a46458000000000000 }; 993#elif GMP_NUMB_BITS == 256 994const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a4645800000000000000000000000000000000000000000000 }; 995#endif 996 997#if 0 998#elif GMP_NUMB_BITS == 16 999const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x0a00, 0x9828 }; 1000#elif GMP_NUMB_BITS == 32 1001const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a00 }; 1002#elif GMP_NUMB_BITS == 64 1003const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a0000000000 }; 1004#elif GMP_NUMB_BITS == 96 1005const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a000000000000000000 }; 1006#elif GMP_NUMB_BITS == 128 1007const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a00000000000000000000000000 }; 1008#elif GMP_NUMB_BITS == 256 1009const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a0000000000000000000000000000000000000000000000000000000000 }; 1010#endif 1011 1012#if 0 1013#elif GMP_NUMB_BITS == 16 1014const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b08, 0xe1bd, 0xe237, 0x7bac, 0xd75b }; 1015#elif GMP_NUMB_BITS == 32 1016const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b080000, 0xe237e1bd, 0xd75b7bac }; 1017#elif GMP_NUMB_BITS == 64 1018const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b08000000000000, 0xd75b7bace237e1bd }; 1019#elif GMP_NUMB_BITS == 96 1020const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b080000 }; 1021#elif GMP_NUMB_BITS == 128 1022const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b08000000000000 }; 1023#elif GMP_NUMB_BITS == 256 1024const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b0800000000000000000000000000000000000000000000 }; 1025#endif 1026 1027#if 0 1028#elif GMP_NUMB_BITS == 16 1029const mp_limb_t mpfr_l2b_28_0__tab[] = { 0xda00, 0x99d5 }; 1030#elif GMP_NUMB_BITS == 32 1031const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da00 }; 1032#elif GMP_NUMB_BITS == 64 1033const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da0000000000 }; 1034#elif GMP_NUMB_BITS == 96 1035const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da000000000000000000 }; 1036#elif GMP_NUMB_BITS == 128 1037const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da00000000000000000000000000 }; 1038#elif GMP_NUMB_BITS == 256 1039const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da0000000000000000000000000000000000000000000000000000000000 }; 1040#endif 1041 1042#if 0 1043#elif GMP_NUMB_BITS == 16 1044const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb8, 0xe8b8, 0x71df, 0xc758, 0xd501 }; 1045#elif GMP_NUMB_BITS == 32 1046const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb80000, 0x71dfe8b8, 0xd501c758 }; 1047#elif GMP_NUMB_BITS == 64 1048const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb8000000000000, 0xd501c75871dfe8b8 }; 1049#elif GMP_NUMB_BITS == 96 1050const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb80000 }; 1051#elif GMP_NUMB_BITS == 128 1052const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb8000000000000 }; 1053#elif GMP_NUMB_BITS == 256 1054const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb800000000000000000000000000000000000000000000 }; 1055#endif 1056 1057#if 0 1058#elif GMP_NUMB_BITS == 16 1059const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9600, 0x9b74 }; 1060#elif GMP_NUMB_BITS == 32 1061const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b749600 }; 1062#elif GMP_NUMB_BITS == 64 1063const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b74960000000000 }; 1064#elif GMP_NUMB_BITS == 96 1065const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b7496000000000000000000 }; 1066#elif GMP_NUMB_BITS == 128 1067const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b749600000000000000000000000000 }; 1068#elif GMP_NUMB_BITS == 256 1069const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b74960000000000000000000000000000000000000000000000000000000000 }; 1070#endif 1071 1072#if 0 1073#elif GMP_NUMB_BITS == 16 1074const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc8, 0x62b3, 0x9c6c, 0x8315, 0xd2c9 }; 1075#elif GMP_NUMB_BITS == 32 1076const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc80000, 0x9c6c62b3, 0xd2c98315 }; 1077#elif GMP_NUMB_BITS == 64 1078const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc8000000000000, 0xd2c983159c6c62b3 }; 1079#elif GMP_NUMB_BITS == 96 1080const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc80000 }; 1081#elif GMP_NUMB_BITS == 128 1082const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc8000000000000 }; 1083#elif GMP_NUMB_BITS == 256 1084const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc800000000000000000000000000000000000000000000 }; 1085#endif 1086 1087#if 0 1088#elif GMP_NUMB_BITS == 16 1089const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x4000, 0x9d05 }; 1090#elif GMP_NUMB_BITS == 32 1091const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d054000 }; 1092#elif GMP_NUMB_BITS == 64 1093const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d05400000000000 }; 1094#elif GMP_NUMB_BITS == 96 1095const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d0540000000000000000000 }; 1096#elif GMP_NUMB_BITS == 128 1097const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d054000000000000000000000000000 }; 1098#elif GMP_NUMB_BITS == 256 1099const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d05400000000000000000000000000000000000000000000000000000000000 }; 1100#endif 1101 1102#if 0 1103#elif GMP_NUMB_BITS == 16 1104const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x3588, 0x1732, 0x5cad, 0xa619, 0xd0af }; 1105#elif GMP_NUMB_BITS == 32 1106const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x35880000, 0x5cad1732, 0xd0afa619 }; 1107#elif GMP_NUMB_BITS == 64 1108const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x3588000000000000, 0xd0afa6195cad1732 }; 1109#elif GMP_NUMB_BITS == 96 1110const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad173235880000 }; 1111#elif GMP_NUMB_BITS == 128 1112const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad17323588000000000000 }; 1113#elif GMP_NUMB_BITS == 256 1114const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad1732358800000000000000000000000000000000000000000000 }; 1115#endif 1116 1117#if 0 1118#elif GMP_NUMB_BITS == 16 1119const mp_limb_t mpfr_l2b_31_0__tab[] = { 0xc800, 0x9e88 }; 1120#elif GMP_NUMB_BITS == 32 1121const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c800 }; 1122#elif GMP_NUMB_BITS == 64 1123const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c80000000000 }; 1124#elif GMP_NUMB_BITS == 96 1125const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c8000000000000000000 }; 1126#elif GMP_NUMB_BITS == 128 1127const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c800000000000000000000000000 }; 1128#elif GMP_NUMB_BITS == 256 1129const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c80000000000000000000000000000000000000000000000000000000000 }; 1130#endif 1131 1132#if 0 1133#elif GMP_NUMB_BITS == 16 1134const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd578, 0xf7ca, 0x63ee, 0x86e6, 0xceb1 }; 1135#elif GMP_NUMB_BITS == 32 1136const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd5780000, 0x63eef7ca, 0xceb186e6 }; 1137#elif GMP_NUMB_BITS == 64 1138const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd578000000000000, 0xceb186e663eef7ca }; 1139#elif GMP_NUMB_BITS == 96 1140const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad5780000 }; 1141#elif GMP_NUMB_BITS == 128 1142const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad578000000000000 }; 1143#elif GMP_NUMB_BITS == 256 1144const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad57800000000000000000000000000000000000000000000 }; 1145#endif 1146 1147#if 0 1148#elif GMP_NUMB_BITS == 16 1149const mp_limb_t mpfr_l2b_32_0__tab[] = { 0x0000, 0xa000 }; 1150#elif GMP_NUMB_BITS == 32 1151const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa0000000 }; 1152#elif GMP_NUMB_BITS == 64 1153const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa000000000000000 }; 1154#elif GMP_NUMB_BITS == 96 1155const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa00000000000000000000000 }; 1156#elif GMP_NUMB_BITS == 128 1157const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa0000000000000000000000000000000 }; 1158#elif GMP_NUMB_BITS == 256 1159const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa000000000000000000000000000000000000000000000000000000000000000 }; 1160#endif 1161 1162#if 0 1163#elif GMP_NUMB_BITS == 16 1164const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd0, 0xcccc, 0xcccc, 0xcccc, 0xcccc }; 1165#elif GMP_NUMB_BITS == 32 1166const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd00000, 0xcccccccc, 0xcccccccc }; 1167#elif GMP_NUMB_BITS == 64 1168const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd0000000000000, 0xcccccccccccccccc }; 1169#elif GMP_NUMB_BITS == 96 1170const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd00000 }; 1171#elif GMP_NUMB_BITS == 128 1172const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd0000000000000 }; 1173#elif GMP_NUMB_BITS == 256 1174const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd000000000000000000000000000000000000000000000 }; 1175#endif 1176 1177#if 0 1178#elif GMP_NUMB_BITS == 16 1179const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xae00, 0xa16b }; 1180#elif GMP_NUMB_BITS == 32 1181const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae00 }; 1182#elif GMP_NUMB_BITS == 64 1183const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae0000000000 }; 1184#elif GMP_NUMB_BITS == 96 1185const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae000000000000000000 }; 1186#elif GMP_NUMB_BITS == 128 1187const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae00000000000000000000000000 }; 1188#elif GMP_NUMB_BITS == 256 1189const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae0000000000000000000000000000000000000000000000000000000000 }; 1190#endif 1191 1192#if 0 1193#elif GMP_NUMB_BITS == 16 1194const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x0888, 0xa187, 0x5304, 0x6404, 0xcaff }; 1195#elif GMP_NUMB_BITS == 32 1196const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x08880000, 0x5304a187, 0xcaff6404 }; 1197#elif GMP_NUMB_BITS == 64 1198const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x0888000000000000, 0xcaff64045304a187 }; 1199#elif GMP_NUMB_BITS == 96 1200const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a18708880000 }; 1201#elif GMP_NUMB_BITS == 128 1202const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a1870888000000000000 }; 1203#elif GMP_NUMB_BITS == 256 1204const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a187088800000000000000000000000000000000000000000000 }; 1205#endif 1206 1207#if 0 1208#elif GMP_NUMB_BITS == 16 1209const mp_limb_t mpfr_l2b_34_0__tab[] = { 0x8000, 0xa2cc }; 1210#elif GMP_NUMB_BITS == 32 1211const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc8000 }; 1212#elif GMP_NUMB_BITS == 64 1213const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc800000000000 }; 1214#elif GMP_NUMB_BITS == 96 1215const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc80000000000000000000 }; 1216#elif GMP_NUMB_BITS == 128 1217const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc8000000000000000000000000000 }; 1218#elif GMP_NUMB_BITS == 256 1219const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc800000000000000000000000000000000000000000000000000000000000 }; 1220#endif 1221 1222#if 0 1223#elif GMP_NUMB_BITS == 16 1224const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb50, 0x17ca, 0x5a79, 0x73d8, 0xc947 }; 1225#elif GMP_NUMB_BITS == 32 1226const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb500000, 0x5a7917ca, 0xc94773d8 }; 1227#elif GMP_NUMB_BITS == 64 1228const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb50000000000000, 0xc94773d85a7917ca }; 1229#elif GMP_NUMB_BITS == 96 1230const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb500000 }; 1231#elif GMP_NUMB_BITS == 128 1232const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb50000000000000 }; 1233#elif GMP_NUMB_BITS == 256 1234const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb5000000000000000000000000000000000000000000000 }; 1235#endif 1236 1237#if 0 1238#elif GMP_NUMB_BITS == 16 1239const mp_limb_t mpfr_l2b_35_0__tab[] = { 0x1800, 0xa423 }; 1240#elif GMP_NUMB_BITS == 32 1241const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa4231800 }; 1242#elif GMP_NUMB_BITS == 64 1243const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa423180000000000 }; 1244#elif GMP_NUMB_BITS == 96 1245const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa42318000000000000000000 }; 1246#elif GMP_NUMB_BITS == 128 1247const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa4231800000000000000000000000000 }; 1248#elif GMP_NUMB_BITS == 256 1249const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa423180000000000000000000000000000000000000000000000000000000000 }; 1250#endif 1251 1252#if 0 1253#elif GMP_NUMB_BITS == 16 1254const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x6960, 0x18c2, 0x6037, 0x567c, 0xc7a3 }; 1255#elif GMP_NUMB_BITS == 32 1256const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x69600000, 0x603718c2, 0xc7a3567c }; 1257#elif GMP_NUMB_BITS == 64 1258const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x6960000000000000, 0xc7a3567c603718c2 }; 1259#elif GMP_NUMB_BITS == 96 1260const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c269600000 }; 1261#elif GMP_NUMB_BITS == 128 1262const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c26960000000000000 }; 1263#elif GMP_NUMB_BITS == 256 1264const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c2696000000000000000000000000000000000000000000000 }; 1265#endif 1266 1267#if 0 1268#elif GMP_NUMB_BITS == 16 1269const mp_limb_t mpfr_l2b_36_0__tab[] = { 0x0800, 0xa570 }; 1270#elif GMP_NUMB_BITS == 32 1271const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa5700800 }; 1272#elif GMP_NUMB_BITS == 64 1273const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa570080000000000 }; 1274#elif GMP_NUMB_BITS == 96 1275const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa57008000000000000000000 }; 1276#elif GMP_NUMB_BITS == 128 1277const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa5700800000000000000000000000000 }; 1278#elif GMP_NUMB_BITS == 256 1279const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa570080000000000000000000000000000000000000000000000000000000000 }; 1280#endif 1281 1282#if 0 1283#elif GMP_NUMB_BITS == 16 1284const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff10, 0xf9e9, 0xe054, 0x9236, 0xc611 }; 1285#elif GMP_NUMB_BITS == 32 1286const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff100000, 0xe054f9e9, 0xc6119236 }; 1287#elif GMP_NUMB_BITS == 64 1288const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff10000000000000, 0xc6119236e054f9e9 }; 1289#elif GMP_NUMB_BITS == 96 1290const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff100000 }; 1291#elif GMP_NUMB_BITS == 128 1292const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff10000000000000 }; 1293#elif GMP_NUMB_BITS == 256 1294const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff1000000000000000000000000000000000000000000000 }; 1295#endif 1296 1297#if 0 1298#elif GMP_NUMB_BITS == 16 1299const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xd800, 0xa6b3 }; 1300#elif GMP_NUMB_BITS == 32 1301const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d800 }; 1302#elif GMP_NUMB_BITS == 64 1303const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d80000000000 }; 1304#elif GMP_NUMB_BITS == 96 1305const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d8000000000000000000 }; 1306#elif GMP_NUMB_BITS == 128 1307const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d800000000000000000000000000 }; 1308#elif GMP_NUMB_BITS == 256 1309const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d80000000000000000000000000000000000000000000000000000000000 }; 1310#endif 1311 1312#if 0 1313#elif GMP_NUMB_BITS == 16 1314const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x1618, 0x6b36, 0x70d7, 0xd3a2, 0xc490 }; 1315#elif GMP_NUMB_BITS == 32 1316const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x16180000, 0x70d76b36, 0xc490d3a2 }; 1317#elif GMP_NUMB_BITS == 64 1318const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x1618000000000000, 0xc490d3a270d76b36 }; 1319#elif GMP_NUMB_BITS == 96 1320const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b3616180000 }; 1321#elif GMP_NUMB_BITS == 128 1322const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b361618000000000000 }; 1323#elif GMP_NUMB_BITS == 256 1324const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b36161800000000000000000000000000000000000000000000 }; 1325#endif 1326 1327#if 0 1328#elif GMP_NUMB_BITS == 16 1329const mp_limb_t mpfr_l2b_38_0__tab[] = { 0x0600, 0xa7ef }; 1330#elif GMP_NUMB_BITS == 32 1331const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef0600 }; 1332#elif GMP_NUMB_BITS == 64 1333const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef060000000000 }; 1334#elif GMP_NUMB_BITS == 96 1335const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef06000000000000000000 }; 1336#elif GMP_NUMB_BITS == 128 1337const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef0600000000000000000000000000 }; 1338#elif GMP_NUMB_BITS == 256 1339const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef060000000000000000000000000000000000000000000000000000000000 }; 1340#endif 1341 1342#if 0 1343#elif GMP_NUMB_BITS == 16 1344const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e0, 0x9505, 0x5182, 0xe8d2, 0xc31f }; 1345#elif GMP_NUMB_BITS == 32 1346const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e00000, 0x51829505, 0xc31fe8d2 }; 1347#elif GMP_NUMB_BITS == 64 1348const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e0000000000000, 0xc31fe8d251829505 }; 1349#elif GMP_NUMB_BITS == 96 1350const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e00000 }; 1351#elif GMP_NUMB_BITS == 128 1352const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e0000000000000 }; 1353#elif GMP_NUMB_BITS == 256 1354const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e000000000000000000000000000000000000000000000 }; 1355#endif 1356 1357#if 0 1358#elif GMP_NUMB_BITS == 16 1359const mp_limb_t mpfr_l2b_39_0__tab[] = { 0x0400, 0xa922 }; 1360#elif GMP_NUMB_BITS == 32 1361const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa9220400 }; 1362#elif GMP_NUMB_BITS == 64 1363const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa922040000000000 }; 1364#elif GMP_NUMB_BITS == 96 1365const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa92204000000000000000000 }; 1366#elif GMP_NUMB_BITS == 128 1367const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa9220400000000000000000000000000 }; 1368#elif GMP_NUMB_BITS == 256 1369const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa922040000000000000000000000000000000000000000000000000000000000 }; 1370#endif 1371 1372#if 0 1373#elif GMP_NUMB_BITS == 16 1374const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf8, 0xf1b5, 0x10ca, 0xbd32, 0xc1bd }; 1375#elif GMP_NUMB_BITS == 32 1376const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf80000, 0x10caf1b5, 0xc1bdbd32 }; 1377#elif GMP_NUMB_BITS == 64 1378const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf8000000000000, 0xc1bdbd3210caf1b5 }; 1379#elif GMP_NUMB_BITS == 96 1380const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf80000 }; 1381#elif GMP_NUMB_BITS == 128 1382const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf8000000000000 }; 1383#elif GMP_NUMB_BITS == 256 1384const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf800000000000000000000000000000000000000000000 }; 1385#endif 1386 1387#if 0 1388#elif GMP_NUMB_BITS == 16 1389const mp_limb_t mpfr_l2b_40_0__tab[] = { 0x3e00, 0xaa4d }; 1390#elif GMP_NUMB_BITS == 32 1391const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e00 }; 1392#elif GMP_NUMB_BITS == 64 1393const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e0000000000 }; 1394#elif GMP_NUMB_BITS == 96 1395const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e000000000000000000 }; 1396#elif GMP_NUMB_BITS == 128 1397const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e00000000000000000000000000 }; 1398#elif GMP_NUMB_BITS == 256 1399const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e0000000000000000000000000000000000000000000000000000000000 }; 1400#endif 1401 1402#if 0 1403#elif GMP_NUMB_BITS == 16 1404const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce8, 0x4948, 0xeff7, 0x55ff, 0xc069 }; 1405#elif GMP_NUMB_BITS == 32 1406const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce80000, 0xeff74948, 0xc06955ff }; 1407#elif GMP_NUMB_BITS == 64 1408const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce8000000000000, 0xc06955ffeff74948 }; 1409#elif GMP_NUMB_BITS == 96 1410const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce80000 }; 1411#elif GMP_NUMB_BITS == 128 1412const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce8000000000000 }; 1413#elif GMP_NUMB_BITS == 256 1414const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce800000000000000000000000000000000000000000000 }; 1415#endif 1416 1417#if 0 1418#elif GMP_NUMB_BITS == 16 1419const mp_limb_t mpfr_l2b_41_0__tab[] = { 0x1200, 0xab71 }; 1420#elif GMP_NUMB_BITS == 32 1421const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab711200 }; 1422#elif GMP_NUMB_BITS == 64 1423const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab71120000000000 }; 1424#elif GMP_NUMB_BITS == 96 1425const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab7112000000000000000000 }; 1426#elif GMP_NUMB_BITS == 128 1427const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab711200000000000000000000000000 }; 1428#elif GMP_NUMB_BITS == 256 1429const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab71120000000000000000000000000000000000000000000000000000000000 }; 1430#endif 1431 1432#if 0 1433#elif GMP_NUMB_BITS == 16 1434const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc28, 0x7cef, 0xf695, 0xcf47, 0xbf21 }; 1435#elif GMP_NUMB_BITS == 32 1436const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc280000, 0xf6957cef, 0xbf21cf47 }; 1437#elif GMP_NUMB_BITS == 64 1438const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc28000000000000, 0xbf21cf47f6957cef }; 1439#elif GMP_NUMB_BITS == 96 1440const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc280000 }; 1441#elif GMP_NUMB_BITS == 128 1442const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc28000000000000 }; 1443#elif GMP_NUMB_BITS == 256 1444const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc2800000000000000000000000000000000000000000000 }; 1445#endif 1446 1447#if 0 1448#elif GMP_NUMB_BITS == 16 1449const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xde00, 0xac8d }; 1450#elif GMP_NUMB_BITS == 32 1451const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde00 }; 1452#elif GMP_NUMB_BITS == 64 1453const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde0000000000 }; 1454#elif GMP_NUMB_BITS == 96 1455const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde000000000000000000 }; 1456#elif GMP_NUMB_BITS == 128 1457const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde00000000000000000000000000 }; 1458#elif GMP_NUMB_BITS == 256 1459const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde0000000000000000000000000000000000000000000000000000000000 }; 1460#endif 1461 1462#if 0 1463#elif GMP_NUMB_BITS == 16 1464const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba10, 0x7125, 0x939b, 0x594a, 0xbde6 }; 1465#elif GMP_NUMB_BITS == 32 1466const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba100000, 0x939b7125, 0xbde6594a }; 1467#elif GMP_NUMB_BITS == 64 1468const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba10000000000000, 0xbde6594a939b7125 }; 1469#elif GMP_NUMB_BITS == 96 1470const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba100000 }; 1471#elif GMP_NUMB_BITS == 128 1472const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba10000000000000 }; 1473#elif GMP_NUMB_BITS == 256 1474const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba1000000000000000000000000000000000000000000000 }; 1475#endif 1476 1477#if 0 1478#elif GMP_NUMB_BITS == 16 1479const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xf600, 0xada3 }; 1480#elif GMP_NUMB_BITS == 32 1481const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f600 }; 1482#elif GMP_NUMB_BITS == 64 1483const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f60000000000 }; 1484#elif GMP_NUMB_BITS == 96 1485const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f6000000000000000000 }; 1486#elif GMP_NUMB_BITS == 128 1487const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f600000000000000000000000000 }; 1488#elif GMP_NUMB_BITS == 256 1489const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f60000000000000000000000000000000000000000000000000000000000 }; 1490#endif 1491 1492#if 0 1493#elif GMP_NUMB_BITS == 16 1494const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x9560, 0x2ab5, 0x9118, 0x363d, 0xbcb6 }; 1495#elif GMP_NUMB_BITS == 32 1496const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x95600000, 0x91182ab5, 0xbcb6363d }; 1497#elif GMP_NUMB_BITS == 64 1498const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x9560000000000000, 0xbcb6363d91182ab5 }; 1499#elif GMP_NUMB_BITS == 96 1500const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab595600000 }; 1501#elif GMP_NUMB_BITS == 128 1502const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab59560000000000000 }; 1503#elif GMP_NUMB_BITS == 256 1504const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab5956000000000000000000000000000000000000000000000 }; 1505#endif 1506 1507#if 0 1508#elif GMP_NUMB_BITS == 16 1509const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaa00, 0xaeb3 }; 1510#elif GMP_NUMB_BITS == 32 1511const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa00 }; 1512#elif GMP_NUMB_BITS == 64 1513const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa0000000000 }; 1514#elif GMP_NUMB_BITS == 96 1515const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa000000000000000000 }; 1516#elif GMP_NUMB_BITS == 128 1517const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa00000000000000000000000000 }; 1518#elif GMP_NUMB_BITS == 256 1519const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa0000000000000000000000000000000000000000000000000000000000 }; 1520#endif 1521 1522#if 0 1523#elif GMP_NUMB_BITS == 16 1524const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x1590, 0x4e90, 0x3a3d, 0xb859, 0xbb90 }; 1525#elif GMP_NUMB_BITS == 32 1526const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x15900000, 0x3a3d4e90, 0xbb90b859 }; 1527#elif GMP_NUMB_BITS == 64 1528const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x1590000000000000, 0xbb90b8593a3d4e90 }; 1529#elif GMP_NUMB_BITS == 96 1530const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e9015900000 }; 1531#elif GMP_NUMB_BITS == 128 1532const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e901590000000000000 }; 1533#elif GMP_NUMB_BITS == 256 1534const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e90159000000000000000000000000000000000000000000000 }; 1535#endif 1536 1537#if 0 1538#elif GMP_NUMB_BITS == 16 1539const mp_limb_t mpfr_l2b_45_0__tab[] = { 0x4400, 0xafbd }; 1540#elif GMP_NUMB_BITS == 32 1541const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd4400 }; 1542#elif GMP_NUMB_BITS == 64 1543const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd440000000000 }; 1544#elif GMP_NUMB_BITS == 96 1545const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd44000000000000000000 }; 1546#elif GMP_NUMB_BITS == 128 1547const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd4400000000000000000000000000 }; 1548#elif GMP_NUMB_BITS == 256 1549const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd440000000000000000000000000000000000000000000000000000000000 }; 1550#endif 1551 1552#if 0 1553#elif GMP_NUMB_BITS == 16 1554const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e78, 0x76f5, 0x1010, 0x4026, 0xba75 }; 1555#elif GMP_NUMB_BITS == 32 1556const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e780000, 0x101076f5, 0xba754026 }; 1557#elif GMP_NUMB_BITS == 64 1558const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e78000000000000, 0xba754026101076f5 }; 1559#elif GMP_NUMB_BITS == 96 1560const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e780000 }; 1561#elif GMP_NUMB_BITS == 128 1562const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e78000000000000 }; 1563#elif GMP_NUMB_BITS == 256 1564const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e7800000000000000000000000000000000000000000000 }; 1565#endif 1566 1567#if 0 1568#elif GMP_NUMB_BITS == 16 1569const mp_limb_t mpfr_l2b_46_0__tab[] = { 0x0600, 0xb0c1 }; 1570#elif GMP_NUMB_BITS == 32 1571const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c10600 }; 1572#elif GMP_NUMB_BITS == 64 1573const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c1060000000000 }; 1574#elif GMP_NUMB_BITS == 96 1575const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c106000000000000000000 }; 1576#elif GMP_NUMB_BITS == 128 1577const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c10600000000000000000000000000 }; 1578#elif GMP_NUMB_BITS == 256 1579const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c1060000000000000000000000000000000000000000000000000000000000 }; 1580#endif 1581 1582#if 0 1583#elif GMP_NUMB_BITS == 16 1584const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb670, 0x0512, 0x69aa, 0x3b01, 0xb963 }; 1585#elif GMP_NUMB_BITS == 32 1586const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb6700000, 0x69aa0512, 0xb9633b01 }; 1587#elif GMP_NUMB_BITS == 64 1588const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb670000000000000, 0xb9633b0169aa0512 }; 1589#elif GMP_NUMB_BITS == 96 1590const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b6700000 }; 1591#elif GMP_NUMB_BITS == 128 1592const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b670000000000000 }; 1593#elif GMP_NUMB_BITS == 256 1594const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b67000000000000000000000000000000000000000000000 }; 1595#endif 1596 1597#if 0 1598#elif GMP_NUMB_BITS == 16 1599const mp_limb_t mpfr_l2b_47_0__tab[] = { 0x3200, 0xb1bf }; 1600#elif GMP_NUMB_BITS == 32 1601const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf3200 }; 1602#elif GMP_NUMB_BITS == 64 1603const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf320000000000 }; 1604#elif GMP_NUMB_BITS == 96 1605const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf32000000000000000000 }; 1606#elif GMP_NUMB_BITS == 128 1607const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf3200000000000000000000000000 }; 1608#elif GMP_NUMB_BITS == 256 1609const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf320000000000000000000000000000000000000000000000000000000000 }; 1610#endif 1611 1612#if 0 1613#elif GMP_NUMB_BITS == 16 1614const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x5118, 0x4133, 0xfbe4, 0x21d0, 0xb85a }; 1615#elif GMP_NUMB_BITS == 32 1616const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x51180000, 0xfbe44133, 0xb85a21d0 }; 1617#elif GMP_NUMB_BITS == 64 1618const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x5118000000000000, 0xb85a21d0fbe44133 }; 1619#elif GMP_NUMB_BITS == 96 1620const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe4413351180000 }; 1621#elif GMP_NUMB_BITS == 128 1622const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe441335118000000000000 }; 1623#elif GMP_NUMB_BITS == 256 1624const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe44133511800000000000000000000000000000000000000000000 }; 1625#endif 1626 1627#if 0 1628#elif GMP_NUMB_BITS == 16 1629const mp_limb_t mpfr_l2b_48_0__tab[] = { 0x0400, 0xb2b8 }; 1630#elif GMP_NUMB_BITS == 32 1631const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b80400 }; 1632#elif GMP_NUMB_BITS == 64 1633const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b8040000000000 }; 1634#elif GMP_NUMB_BITS == 96 1635const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b804000000000000000000 }; 1636#elif GMP_NUMB_BITS == 128 1637const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b80400000000000000000000000000 }; 1638#elif GMP_NUMB_BITS == 256 1639const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b8040000000000000000000000000000000000000000000000000000000000 }; 1640#endif 1641 1642#if 0 1643#elif GMP_NUMB_BITS == 16 1644const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x0490, 0x663d, 0x960d, 0x77de, 0xb759 }; 1645#elif GMP_NUMB_BITS == 32 1646const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x04900000, 0x960d663d, 0xb75977de }; 1647#elif GMP_NUMB_BITS == 64 1648const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x0490000000000000, 0xb75977de960d663d }; 1649#elif GMP_NUMB_BITS == 96 1650const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d04900000 }; 1651#elif GMP_NUMB_BITS == 128 1652const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d0490000000000000 }; 1653#elif GMP_NUMB_BITS == 256 1654const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d049000000000000000000000000000000000000000000000 }; 1655#endif 1656 1657#if 0 1658#elif GMP_NUMB_BITS == 16 1659const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb400, 0xb3ab }; 1660#elif GMP_NUMB_BITS == 32 1661const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb400 }; 1662#elif GMP_NUMB_BITS == 64 1663const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb40000000000 }; 1664#elif GMP_NUMB_BITS == 96 1665const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb4000000000000000000 }; 1666#elif GMP_NUMB_BITS == 128 1667const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb400000000000000000000000000 }; 1668#elif GMP_NUMB_BITS == 256 1669const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb40000000000000000000000000000000000000000000000000000000000 }; 1670#endif 1671 1672#if 0 1673#elif GMP_NUMB_BITS == 16 1674const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b8, 0xa711, 0x754d, 0xc9d6, 0xb660 }; 1675#elif GMP_NUMB_BITS == 32 1676const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b80000, 0x754da711, 0xb660c9d6 }; 1677#elif GMP_NUMB_BITS == 64 1678const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b8000000000000, 0xb660c9d6754da711 }; 1679#elif GMP_NUMB_BITS == 96 1680const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b80000 }; 1681#elif GMP_NUMB_BITS == 128 1682const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b8000000000000 }; 1683#elif GMP_NUMB_BITS == 256 1684const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b800000000000000000000000000000000000000000000 }; 1685#endif 1686 1687#if 0 1688#elif GMP_NUMB_BITS == 16 1689const mp_limb_t mpfr_l2b_50_0__tab[] = { 0x7a00, 0xb49a }; 1690#elif GMP_NUMB_BITS == 32 1691const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a00 }; 1692#elif GMP_NUMB_BITS == 64 1693const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a0000000000 }; 1694#elif GMP_NUMB_BITS == 96 1695const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a000000000000000000 }; 1696#elif GMP_NUMB_BITS == 128 1697const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a00000000000000000000000000 }; 1698#elif GMP_NUMB_BITS == 256 1699const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a0000000000000000000000000000000000000000000000000000000000 }; 1700#endif 1701 1702#if 0 1703#elif GMP_NUMB_BITS == 16 1704const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f0, 0xe532, 0x7344, 0xace3, 0xb56f }; 1705#elif GMP_NUMB_BITS == 32 1706const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f00000, 0x7344e532, 0xb56face3 }; 1707#elif GMP_NUMB_BITS == 64 1708const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f0000000000000, 0xb56face37344e532 }; 1709#elif GMP_NUMB_BITS == 96 1710const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f00000 }; 1711#elif GMP_NUMB_BITS == 128 1712const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f0000000000000 }; 1713#elif GMP_NUMB_BITS == 256 1714const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f000000000000000000000000000000000000000000000 }; 1715#endif 1716 1717#if 0 1718#elif GMP_NUMB_BITS == 16 1719const mp_limb_t mpfr_l2b_51_0__tab[] = { 0x8400, 0xb584 }; 1720#elif GMP_NUMB_BITS == 32 1721const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb5848400 }; 1722#elif GMP_NUMB_BITS == 64 1723const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb584840000000000 }; 1724#elif GMP_NUMB_BITS == 96 1725const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb58484000000000000000000 }; 1726#elif GMP_NUMB_BITS == 128 1727const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb5848400000000000000000000000000 }; 1728#elif GMP_NUMB_BITS == 256 1729const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb584840000000000000000000000000000000000000000000000000000000000 }; 1730#endif 1731 1732#if 0 1733#elif GMP_NUMB_BITS == 16 1734const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x4000, 0xe9a9, 0x0f8a, 0xbde5, 0xb485 }; 1735#elif GMP_NUMB_BITS == 32 1736const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x40000000, 0x0f8ae9a9, 0xb485bde5 }; 1737#elif GMP_NUMB_BITS == 64 1738const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x4000000000000000, 0xb485bde50f8ae9a9 }; 1739#elif GMP_NUMB_BITS == 96 1740const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a940000000 }; 1741#elif GMP_NUMB_BITS == 128 1742const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a94000000000000000 }; 1743#elif GMP_NUMB_BITS == 256 1744const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a9400000000000000000000000000000000000000000000000 }; 1745#endif 1746 1747#if 0 1748#elif GMP_NUMB_BITS == 16 1749const mp_limb_t mpfr_l2b_52_0__tab[] = { 0x0200, 0xb66a }; 1750#elif GMP_NUMB_BITS == 32 1751const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a0200 }; 1752#elif GMP_NUMB_BITS == 64 1753const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a020000000000 }; 1754#elif GMP_NUMB_BITS == 96 1755const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a02000000000000000000 }; 1756#elif GMP_NUMB_BITS == 128 1757const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a0200000000000000000000000000 }; 1758#elif GMP_NUMB_BITS == 256 1759const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a020000000000000000000000000000000000000000000000000000000000 }; 1760#endif 1761 1762#if 0 1763#elif GMP_NUMB_BITS == 16 1764const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x4608, 0xfcb3, 0xeecf, 0xa0bb, 0xb3a2 }; 1765#elif GMP_NUMB_BITS == 32 1766const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x46080000, 0xeecffcb3, 0xb3a2a0bb }; 1767#elif GMP_NUMB_BITS == 64 1768const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x4608000000000000, 0xb3a2a0bbeecffcb3 }; 1769#elif GMP_NUMB_BITS == 96 1770const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb346080000 }; 1771#elif GMP_NUMB_BITS == 128 1772const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb34608000000000000 }; 1773#elif GMP_NUMB_BITS == 256 1774const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb3460800000000000000000000000000000000000000000000 }; 1775#endif 1776 1777#if 0 1778#elif GMP_NUMB_BITS == 16 1779const mp_limb_t mpfr_l2b_53_0__tab[] = { 0x2000, 0xb74b }; 1780#elif GMP_NUMB_BITS == 32 1781const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b2000 }; 1782#elif GMP_NUMB_BITS == 64 1783const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b200000000000 }; 1784#elif GMP_NUMB_BITS == 96 1785const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b20000000000000000000 }; 1786#elif GMP_NUMB_BITS == 128 1787const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b2000000000000000000000000000 }; 1788#elif GMP_NUMB_BITS == 256 1789const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b200000000000000000000000000000000000000000000000000000000000 }; 1790#endif 1791 1792#if 0 1793#elif GMP_NUMB_BITS == 16 1794const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa360, 0x8ccb, 0xeb5f, 0xffa9, 0xb2c5 }; 1795#elif GMP_NUMB_BITS == 32 1796const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa3600000, 0xeb5f8ccb, 0xb2c5ffa9 }; 1797#elif GMP_NUMB_BITS == 64 1798const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa360000000000000, 0xb2c5ffa9eb5f8ccb }; 1799#elif GMP_NUMB_BITS == 96 1800const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba3600000 }; 1801#elif GMP_NUMB_BITS == 128 1802const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba360000000000000 }; 1803#elif GMP_NUMB_BITS == 256 1804const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba36000000000000000000000000000000000000000000000 }; 1805#endif 1806 1807#if 0 1808#elif GMP_NUMB_BITS == 16 1809const mp_limb_t mpfr_l2b_54_0__tab[] = { 0x0a00, 0xb828 }; 1810#elif GMP_NUMB_BITS == 32 1811const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a00 }; 1812#elif GMP_NUMB_BITS == 64 1813const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a0000000000 }; 1814#elif GMP_NUMB_BITS == 96 1815const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a000000000000000000 }; 1816#elif GMP_NUMB_BITS == 128 1817const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a00000000000000000000000000 }; 1818#elif GMP_NUMB_BITS == 256 1819const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a0000000000000000000000000000000000000000000000000000000000 }; 1820#endif 1821 1822#if 0 1823#elif GMP_NUMB_BITS == 16 1824const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf368, 0xe940, 0x3e86, 0x8ac3, 0xb1ef }; 1825#elif GMP_NUMB_BITS == 32 1826const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf3680000, 0x3e86e940, 0xb1ef8ac3 }; 1827#elif GMP_NUMB_BITS == 64 1828const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf368000000000000, 0xb1ef8ac33e86e940 }; 1829#elif GMP_NUMB_BITS == 96 1830const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f3680000 }; 1831#elif GMP_NUMB_BITS == 128 1832const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f368000000000000 }; 1833#elif GMP_NUMB_BITS == 256 1834const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f36800000000000000000000000000000000000000000000 }; 1835#endif 1836 1837#if 0 1838#elif GMP_NUMB_BITS == 16 1839const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xe800, 0xb900 }; 1840#elif GMP_NUMB_BITS == 32 1841const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e800 }; 1842#elif GMP_NUMB_BITS == 64 1843const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e80000000000 }; 1844#elif GMP_NUMB_BITS == 96 1845const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e8000000000000000000 }; 1846#elif GMP_NUMB_BITS == 128 1847const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e800000000000000000000000000 }; 1848#elif GMP_NUMB_BITS == 256 1849const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e80000000000000000000000000000000000000000000000000000000000 }; 1850#endif 1851 1852#if 0 1853#elif GMP_NUMB_BITS == 16 1854const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a40, 0xd18e, 0xa4b5, 0xf76e, 0xb11e }; 1855#elif GMP_NUMB_BITS == 32 1856const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a400000, 0xa4b5d18e, 0xb11ef76e }; 1857#elif GMP_NUMB_BITS == 64 1858const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a40000000000000, 0xb11ef76ea4b5d18e }; 1859#elif GMP_NUMB_BITS == 96 1860const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a400000 }; 1861#elif GMP_NUMB_BITS == 128 1862const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a40000000000000 }; 1863#elif GMP_NUMB_BITS == 256 1864const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a4000000000000000000000000000000000000000000000 }; 1865#endif 1866 1867#if 0 1868#elif GMP_NUMB_BITS == 16 1869const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xda00, 0xb9d5 }; 1870#elif GMP_NUMB_BITS == 32 1871const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da00 }; 1872#elif GMP_NUMB_BITS == 64 1873const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da0000000000 }; 1874#elif GMP_NUMB_BITS == 96 1875const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da000000000000000000 }; 1876#elif GMP_NUMB_BITS == 128 1877const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da00000000000000000000000000 }; 1878#elif GMP_NUMB_BITS == 256 1879const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da0000000000000000000000000000000000000000000000000000000000 }; 1880#endif 1881 1882#if 0 1883#elif GMP_NUMB_BITS == 16 1884const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe818, 0x4c7b, 0xaa2c, 0xfff2, 0xb053 }; 1885#elif GMP_NUMB_BITS == 32 1886const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe8180000, 0xaa2c4c7b, 0xb053fff2 }; 1887#elif GMP_NUMB_BITS == 64 1888const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe818000000000000, 0xb053fff2aa2c4c7b }; 1889#elif GMP_NUMB_BITS == 96 1890const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be8180000 }; 1891#elif GMP_NUMB_BITS == 128 1892const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be818000000000000 }; 1893#elif GMP_NUMB_BITS == 256 1894const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be81800000000000000000000000000000000000000000000 }; 1895#endif 1896 1897#if 0 1898#elif GMP_NUMB_BITS == 16 1899const mp_limb_t mpfr_l2b_57_0__tab[] = { 0x0a00, 0xbaa7 }; 1900#elif GMP_NUMB_BITS == 32 1901const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a00 }; 1902#elif GMP_NUMB_BITS == 64 1903const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a0000000000 }; 1904#elif GMP_NUMB_BITS == 96 1905const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a000000000000000000 }; 1906#elif GMP_NUMB_BITS == 128 1907const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a00000000000000000000000000 }; 1908#elif GMP_NUMB_BITS == 256 1909const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a0000000000000000000000000000000000000000000000000000000000 }; 1910#endif 1911 1912#if 0 1913#elif GMP_NUMB_BITS == 16 1914const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb0, 0x814f, 0x8e2f, 0x630e, 0xaf8e }; 1915#elif GMP_NUMB_BITS == 32 1916const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb00000, 0x8e2f814f, 0xaf8e630e }; 1917#elif GMP_NUMB_BITS == 64 1918const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb0000000000000, 0xaf8e630e8e2f814f }; 1919#elif GMP_NUMB_BITS == 96 1920const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb00000 }; 1921#elif GMP_NUMB_BITS == 128 1922const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb0000000000000 }; 1923#elif GMP_NUMB_BITS == 256 1924const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb000000000000000000000000000000000000000000000 }; 1925#endif 1926 1927#if 0 1928#elif GMP_NUMB_BITS == 16 1929const mp_limb_t mpfr_l2b_58_0__tab[] = { 0x9600, 0xbb74 }; 1930#elif GMP_NUMB_BITS == 32 1931const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb749600 }; 1932#elif GMP_NUMB_BITS == 64 1933const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb74960000000000 }; 1934#elif GMP_NUMB_BITS == 96 1935const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb7496000000000000000000 }; 1936#elif GMP_NUMB_BITS == 128 1937const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb749600000000000000000000000000 }; 1938#elif GMP_NUMB_BITS == 256 1939const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb74960000000000000000000000000000000000000000000000000000000000 }; 1940#endif 1941 1942#if 0 1943#elif GMP_NUMB_BITS == 16 1944const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d18, 0x41a1, 0x6114, 0xe39d, 0xaecd }; 1945#elif GMP_NUMB_BITS == 32 1946const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d180000, 0x611441a1, 0xaecde39d }; 1947#elif GMP_NUMB_BITS == 64 1948const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d18000000000000, 0xaecde39d611441a1 }; 1949#elif GMP_NUMB_BITS == 96 1950const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d180000 }; 1951#elif GMP_NUMB_BITS == 128 1952const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d18000000000000 }; 1953#elif GMP_NUMB_BITS == 256 1954const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d1800000000000000000000000000000000000000000000 }; 1955#endif 1956 1957#if 0 1958#elif GMP_NUMB_BITS == 16 1959const mp_limb_t mpfr_l2b_59_0__tab[] = { 0x9e00, 0xbc3e }; 1960#elif GMP_NUMB_BITS == 32 1961const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e00 }; 1962#elif GMP_NUMB_BITS == 64 1963const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e0000000000 }; 1964#elif GMP_NUMB_BITS == 96 1965const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e000000000000000000 }; 1966#elif GMP_NUMB_BITS == 128 1967const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e00000000000000000000000000 }; 1968#elif GMP_NUMB_BITS == 256 1969const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e0000000000000000000000000000000000000000000000000000000000 }; 1970#endif 1971 1972#if 0 1973#elif GMP_NUMB_BITS == 16 1974const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd000, 0x97df, 0x2f97, 0x4842, 0xae12 }; 1975#elif GMP_NUMB_BITS == 32 1976const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd0000000, 0x2f9797df, 0xae124842 }; 1977#elif GMP_NUMB_BITS == 64 1978const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd000000000000000, 0xae1248422f9797df }; 1979#elif GMP_NUMB_BITS == 96 1980const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd0000000 }; 1981#elif GMP_NUMB_BITS == 128 1982const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd000000000000000 }; 1983#elif GMP_NUMB_BITS == 256 1984const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd00000000000000000000000000000000000000000000000 }; 1985#endif 1986 1987#if 0 1988#elif GMP_NUMB_BITS == 16 1989const mp_limb_t mpfr_l2b_60_0__tab[] = { 0x4000, 0xbd05 }; 1990#elif GMP_NUMB_BITS == 32 1991const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd054000 }; 1992#elif GMP_NUMB_BITS == 64 1993const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd05400000000000 }; 1994#elif GMP_NUMB_BITS == 96 1995const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd0540000000000000000000 }; 1996#elif GMP_NUMB_BITS == 128 1997const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd054000000000000000000000000000 }; 1998#elif GMP_NUMB_BITS == 256 1999const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd05400000000000000000000000000000000000000000000000000000000000 }; 2000#endif 2001 2002#if 0 2003#elif GMP_NUMB_BITS == 16 2004const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe58, 0x206d, 0x3555, 0x5b1c, 0xad5b }; 2005#elif GMP_NUMB_BITS == 32 2006const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe580000, 0x3555206d, 0xad5b5b1c }; 2007#elif GMP_NUMB_BITS == 64 2008const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe58000000000000, 0xad5b5b1c3555206d }; 2009#elif GMP_NUMB_BITS == 96 2010const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe580000 }; 2011#elif GMP_NUMB_BITS == 128 2012const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe58000000000000 }; 2013#elif GMP_NUMB_BITS == 256 2014const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe5800000000000000000000000000000000000000000000 }; 2015#endif 2016 2017#if 0 2018#elif GMP_NUMB_BITS == 16 2019const mp_limb_t mpfr_l2b_61_0__tab[] = { 0x9a00, 0xbdc8 }; 2020#elif GMP_NUMB_BITS == 32 2021const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a00 }; 2022#elif GMP_NUMB_BITS == 64 2023const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a0000000000 }; 2024#elif GMP_NUMB_BITS == 96 2025const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a000000000000000000 }; 2026#elif GMP_NUMB_BITS == 128 2027const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a00000000000000000000000000 }; 2028#elif GMP_NUMB_BITS == 256 2029const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a0000000000000000000000000000000000000000000000000000000000 }; 2030#endif 2031 2032#if 0 2033#elif GMP_NUMB_BITS == 16 2034const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df8, 0x7757, 0x31cb, 0xe982, 0xaca8 }; 2035#elif GMP_NUMB_BITS == 32 2036const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df80000, 0x31cb7757, 0xaca8e982 }; 2037#elif GMP_NUMB_BITS == 64 2038const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df8000000000000, 0xaca8e98231cb7757 }; 2039#elif GMP_NUMB_BITS == 96 2040const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df80000 }; 2041#elif GMP_NUMB_BITS == 128 2042const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df8000000000000 }; 2043#elif GMP_NUMB_BITS == 256 2044const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df800000000000000000000000000000000000000000000 }; 2045#endif 2046 2047#if 0 2048#elif GMP_NUMB_BITS == 16 2049const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xc800, 0xbe88 }; 2050#elif GMP_NUMB_BITS == 32 2051const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c800 }; 2052#elif GMP_NUMB_BITS == 64 2053const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c80000000000 }; 2054#elif GMP_NUMB_BITS == 96 2055const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c8000000000000000000 }; 2056#elif GMP_NUMB_BITS == 128 2057const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c800000000000000000000000000 }; 2058#elif GMP_NUMB_BITS == 256 2059const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c80000000000000000000000000000000000000000000000000000000000 }; 2060#endif 2061 2062#if 0 2063#elif GMP_NUMB_BITS == 16 2064const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f8, 0xf905, 0x1831, 0xc3c4, 0xabfa }; 2065#elif GMP_NUMB_BITS == 32 2066const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f80000, 0x1831f905, 0xabfac3c4 }; 2067#elif GMP_NUMB_BITS == 64 2068const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f8000000000000, 0xabfac3c41831f905 }; 2069#elif GMP_NUMB_BITS == 96 2070const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f80000 }; 2071#elif GMP_NUMB_BITS == 128 2072const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f8000000000000 }; 2073#elif GMP_NUMB_BITS == 256 2074const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f800000000000000000000000000000000000000000000 }; 2075#endif 2076 2077const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2] = { 2078 { { 23, 1, 1, (mp_limb_t *) mpfr_l2b_2_0__tab }, 2079 { 77, 1, 1, (mp_limb_t *) mpfr_l2b_2_1__tab } }, 2080 { { 23, 1, 1, (mp_limb_t *) mpfr_l2b_3_0__tab }, 2081 { 77, 1, 0, (mp_limb_t *) mpfr_l2b_3_1__tab } }, 2082 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_4_0__tab }, 2083 { 77, 1, 0, (mp_limb_t *) mpfr_l2b_4_1__tab } }, 2084 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_5_0__tab }, 2085 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_5_1__tab } }, 2086 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_6_0__tab }, 2087 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_6_1__tab } }, 2088 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_7_0__tab }, 2089 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_7_1__tab } }, 2090 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_8_0__tab }, 2091 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_8_1__tab } }, 2092 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_9_0__tab }, 2093 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_9_1__tab } }, 2094 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_10_0__tab }, 2095 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_10_1__tab } }, 2096 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_11_0__tab }, 2097 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_11_1__tab } }, 2098 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_12_0__tab }, 2099 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_12_1__tab } }, 2100 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_13_0__tab }, 2101 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_13_1__tab } }, 2102 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_14_0__tab }, 2103 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_14_1__tab } }, 2104 { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_15_0__tab }, 2105 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_15_1__tab } }, 2106 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_16_0__tab }, 2107 { 77, 1, -1, (mp_limb_t *) mpfr_l2b_16_1__tab } }, 2108 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_17_0__tab }, 2109 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_17_1__tab } }, 2110 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_18_0__tab }, 2111 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_18_1__tab } }, 2112 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_19_0__tab }, 2113 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_19_1__tab } }, 2114 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_20_0__tab }, 2115 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_20_1__tab } }, 2116 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_21_0__tab }, 2117 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_21_1__tab } }, 2118 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_22_0__tab }, 2119 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_22_1__tab } }, 2120 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_23_0__tab }, 2121 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_23_1__tab } }, 2122 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_24_0__tab }, 2123 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_24_1__tab } }, 2124 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_25_0__tab }, 2125 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_25_1__tab } }, 2126 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_26_0__tab }, 2127 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_26_1__tab } }, 2128 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_27_0__tab }, 2129 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_27_1__tab } }, 2130 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_28_0__tab }, 2131 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_28_1__tab } }, 2132 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_29_0__tab }, 2133 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_29_1__tab } }, 2134 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_30_0__tab }, 2135 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_30_1__tab } }, 2136 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_31_0__tab }, 2137 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_31_1__tab } }, 2138 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_32_0__tab }, 2139 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_32_1__tab } }, 2140 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_33_0__tab }, 2141 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_33_1__tab } }, 2142 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_34_0__tab }, 2143 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_34_1__tab } }, 2144 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_35_0__tab }, 2145 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_35_1__tab } }, 2146 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_36_0__tab }, 2147 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_36_1__tab } }, 2148 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_37_0__tab }, 2149 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_37_1__tab } }, 2150 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_38_0__tab }, 2151 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_38_1__tab } }, 2152 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_39_0__tab }, 2153 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_39_1__tab } }, 2154 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_40_0__tab }, 2155 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_40_1__tab } }, 2156 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_41_0__tab }, 2157 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_41_1__tab } }, 2158 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_42_0__tab }, 2159 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_42_1__tab } }, 2160 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_43_0__tab }, 2161 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_43_1__tab } }, 2162 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_44_0__tab }, 2163 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_44_1__tab } }, 2164 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_45_0__tab }, 2165 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_45_1__tab } }, 2166 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_46_0__tab }, 2167 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_46_1__tab } }, 2168 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_47_0__tab }, 2169 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_47_1__tab } }, 2170 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_48_0__tab }, 2171 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_48_1__tab } }, 2172 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_49_0__tab }, 2173 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_49_1__tab } }, 2174 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_50_0__tab }, 2175 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_50_1__tab } }, 2176 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_51_0__tab }, 2177 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_51_1__tab } }, 2178 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_52_0__tab }, 2179 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_52_1__tab } }, 2180 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_53_0__tab }, 2181 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_53_1__tab } }, 2182 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_54_0__tab }, 2183 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_54_1__tab } }, 2184 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_55_0__tab }, 2185 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_55_1__tab } }, 2186 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_56_0__tab }, 2187 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_56_1__tab } }, 2188 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_57_0__tab }, 2189 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_57_1__tab } }, 2190 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_58_0__tab }, 2191 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_58_1__tab } }, 2192 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_59_0__tab }, 2193 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_59_1__tab } }, 2194 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_60_0__tab }, 2195 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_60_1__tab } }, 2196 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_61_0__tab }, 2197 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_61_1__tab } }, 2198 { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_62_0__tab }, 2199 { 77, 1, -2, (mp_limb_t *) mpfr_l2b_62_1__tab } } }; 2200 2201/***************************************************************************/ 2202 2203/* returns ceil(e * log2(b)^((-1)^i)), or ... + 1. 2204 For i=0, uses a 23-bit upper approximation to log(beta)/log(2). 2205 For i=1, uses a 76-bit upper approximation to log(2)/log(beta). 2206 Note: this function should be called only in the extended exponent range. 2207*/ 2208mpfr_exp_t 2209mpfr_ceil_mul (mpfr_exp_t e, int beta, int i) 2210{ 2211 mpfr_srcptr p; 2212 mpfr_t t; 2213 mpfr_exp_t r; 2214 2215 p = &__gmpfr_l2b[beta-2][i]; 2216 mpfr_init2 (t, sizeof (mpfr_exp_t) * CHAR_BIT); 2217 mpfr_set_exp_t (t, e, MPFR_RNDU); 2218 mpfr_mul (t, t, p, MPFR_RNDU); 2219 r = mpfr_get_exp_t (t, MPFR_RNDU); 2220 mpfr_clear (t); 2221 return r; 2222} 2223 2224/* prints the mantissa of x in the string s, and writes the corresponding 2225 exponent in e. 2226 x is rounded with direction rnd, m is the number of digits of the mantissa, 2227 b is the given base (2 <= b <= 62). 2228 2229 Return value: 2230 if s=NULL, allocates a string to store the mantissa, with 2231 m characters, plus a final '\0', plus a possible minus sign 2232 (thus m+1 or m+2 characters). 2233 2234 Important: when you call this function with s=NULL, don't forget to free 2235 the memory space allocated, with free(s, strlen(s)). 2236*/ 2237char* 2238mpfr_get_str (char *s, mpfr_exp_t *e, int b, size_t m, mpfr_srcptr x, mpfr_rnd_t rnd) 2239{ 2240 const char *num_to_text; 2241 int exact; /* exact result */ 2242 mpfr_exp_t exp, g; 2243 mpfr_exp_t prec; /* precision of the computation */ 2244 long err; 2245 mp_limb_t *a; 2246 mpfr_exp_t exp_a; 2247 mp_limb_t *result; 2248 mp_limb_t *xp; 2249 mp_limb_t *reste; 2250 size_t nx, nx1; 2251 size_t n, i; 2252 char *s0; 2253 int neg; 2254 int ret; /* return value of mpfr_get_str_aux */ 2255 MPFR_ZIV_DECL (loop); 2256 MPFR_SAVE_EXPO_DECL (expo); 2257 MPFR_TMP_DECL(marker); 2258 2259 /* if exact = 1 then err is undefined */ 2260 /* otherwise err is such that |x*b^(m-g)-a*2^exp_a| < 2^(err+exp_a) */ 2261 2262 /* is the base valid? */ 2263 if (b < 2 || b > 62) 2264 return NULL; 2265 2266 num_to_text = b < 37 ? num_to_text36 : num_to_text62; 2267 2268 if (MPFR_UNLIKELY (MPFR_IS_NAN (x))) 2269 { 2270 if (s == NULL) 2271 s = (char *) (*__gmp_allocate_func) (6); 2272 strcpy (s, "@NaN@"); 2273 return s; 2274 } 2275 2276 neg = MPFR_SIGN(x) < 0; /* 0 if positive, 1 if negative */ 2277 2278 if (MPFR_UNLIKELY (MPFR_IS_INF (x))) 2279 { 2280 if (s == NULL) 2281 s = (char *) (*__gmp_allocate_func) (neg + 6); 2282 strcpy (s, (neg) ? "-@Inf@" : "@Inf@"); 2283 return s; 2284 } 2285 2286 MPFR_SAVE_EXPO_MARK (expo); /* needed for mpfr_ceil_mul (at least) */ 2287 2288 if (m == 0) 2289 { 2290 2291 /* take at least 1 + ceil(n*log(2)/log(b)) digits, where n is the 2292 number of bits of the mantissa, to ensure back conversion from 2293 the output gives the same floating-point. 2294 2295 Warning: if b = 2^k, this may be too large. The worst case is when 2296 the first base-b digit contains only one bit, so we get 2297 1 + ceil((n-1)/k) = 2 + floor((n-2)/k) instead. 2298 */ 2299 m = 1 + 2300 mpfr_ceil_mul (IS_POW2(b) ? MPFR_PREC(x) - 1 : MPFR_PREC(x), b, 1); 2301 if (m < 2) 2302 m = 2; 2303 } 2304 2305 /* the code below for non-power-of-two bases works for m=1 */ 2306 MPFR_ASSERTN (m >= 2 || (IS_POW2(b) == 0 && m >= 1)); 2307 2308 /* x is a floating-point number */ 2309 2310 if (MPFR_IS_ZERO(x)) 2311 { 2312 if (s == NULL) 2313 s = (char*) (*__gmp_allocate_func) (neg + m + 1); 2314 s0 = s; 2315 if (neg) 2316 *s++ = '-'; 2317 memset (s, '0', m); 2318 s[m] = '\0'; 2319 *e = 0; /* a bit like frexp() in ISO C99 */ 2320 MPFR_SAVE_EXPO_FREE (expo); 2321 return s0; /* strlen(s0) = neg + m */ 2322 } 2323 2324 if (s == NULL) 2325 s = (char*) (*__gmp_allocate_func) (neg + m + 1); 2326 s0 = s; 2327 if (neg) 2328 *s++ = '-'; 2329 2330 xp = MPFR_MANT(x); 2331 2332 if (IS_POW2(b)) 2333 { 2334 int pow2; 2335 mpfr_exp_t f, r; 2336 mp_limb_t *x1; 2337 mp_size_t nb; 2338 int inexp; 2339 2340 count_leading_zeros (pow2, (mp_limb_t) b); 2341 pow2 = GMP_NUMB_BITS - pow2 - 1; /* base = 2^pow2 */ 2342 2343 /* set MPFR_EXP(x) = f*pow2 + r, 1 <= r <= pow2 */ 2344 f = (MPFR_GET_EXP (x) - 1) / pow2; 2345 r = MPFR_GET_EXP (x) - f * pow2; 2346 if (r <= 0) 2347 { 2348 f --; 2349 r += pow2; 2350 } 2351 2352 /* the first digit will contain only r bits */ 2353 prec = (m - 1) * pow2 + r; /* total number of bits */ 2354 n = MPFR_PREC2LIMBS (prec); 2355 2356 MPFR_TMP_MARK (marker); 2357 x1 = MPFR_TMP_LIMBS_ALLOC (n + 1); 2358 nb = n * GMP_NUMB_BITS - prec; 2359 /* round xp to the precision prec, and put it into x1 2360 put the carry into x1[n] */ 2361 if ((x1[n] = mpfr_round_raw (x1, xp, MPFR_PREC(x), 2362 MPFR_IS_STRICTNEG(x), 2363 prec, rnd, &inexp))) 2364 { 2365 /* overflow when rounding x: x1 = 2^prec */ 2366 if (r == pow2) /* prec = m * pow2, 2367 2^prec will need (m+1) digits in base 2^pow2 */ 2368 { 2369 /* divide x1 by 2^pow2, and increase the exponent */ 2370 mpn_rshift (x1, x1, n + 1, pow2); 2371 f ++; 2372 } 2373 else /* 2^prec needs still m digits, but x1 may need n+1 limbs */ 2374 n ++; 2375 } 2376 2377 /* it remains to shift x1 by nb limbs to the right, since mpn_get_str 2378 expects a right-normalized number */ 2379 if (nb != 0) 2380 { 2381 mpn_rshift (x1, x1, n, nb); 2382 /* the most significant word may be zero */ 2383 if (x1[n - 1] == 0) 2384 n --; 2385 } 2386 2387 mpn_get_str ((unsigned char*) s, b, x1, n); 2388 for (i=0; i<m; i++) 2389 s[i] = num_to_text[(int) s[i]]; 2390 s[m] = 0; 2391 2392 /* the exponent of s is f + 1 */ 2393 *e = f + 1; 2394 2395 MPFR_TMP_FREE(marker); 2396 MPFR_SAVE_EXPO_FREE (expo); 2397 return (s0); 2398 } 2399 2400 /* if x < 0, reduce to x > 0 */ 2401 if (neg) 2402 rnd = MPFR_INVERT_RND(rnd); 2403 2404 g = mpfr_ceil_mul (MPFR_GET_EXP (x) - 1, b, 1); 2405 exact = 1; 2406 prec = mpfr_ceil_mul (m, b, 0) + 1; 2407 exp = ((mpfr_exp_t) m < g) ? g - (mpfr_exp_t) m : (mpfr_exp_t) m - g; 2408 prec += MPFR_INT_CEIL_LOG2 (prec); /* number of guard bits */ 2409 if (exp != 0) /* add maximal exponentiation error */ 2410 prec += 3 * (mpfr_exp_t) MPFR_INT_CEIL_LOG2 (exp); 2411 2412 MPFR_ZIV_INIT (loop, prec); 2413 for (;;) 2414 { 2415 MPFR_TMP_MARK(marker); 2416 2417 exact = 1; 2418 2419 /* number of limbs */ 2420 n = MPFR_PREC2LIMBS (prec); 2421 2422 /* a will contain the approximation of the mantissa */ 2423 a = MPFR_TMP_LIMBS_ALLOC (n); 2424 2425 nx = MPFR_LIMB_SIZE (x); 2426 2427 if ((mpfr_exp_t) m == g) /* final exponent is 0, no multiplication or 2428 division to perform */ 2429 { 2430 if (nx > n) 2431 exact = mpn_scan1 (xp, 0) >= (nx - n) * GMP_NUMB_BITS; 2432 err = !exact; 2433 MPN_COPY2 (a, n, xp, nx); 2434 exp_a = MPFR_GET_EXP (x) - n * GMP_NUMB_BITS; 2435 } 2436 else if ((mpfr_exp_t) m > g) /* we have to multiply x by b^exp */ 2437 { 2438 mp_limb_t *x1; 2439 2440 /* a2*2^exp_a = b^e */ 2441 err = mpfr_mpn_exp (a, &exp_a, b, exp, n); 2442 /* here, the error on a is at most 2^err ulps */ 2443 exact = (err == -1); 2444 2445 /* x = x1*2^(n*GMP_NUMB_BITS) */ 2446 x1 = (nx >= n) ? xp + nx - n : xp; 2447 nx1 = (nx >= n) ? n : nx; /* nx1 = min(n, nx) */ 2448 2449 /* test si exact */ 2450 if (nx > n) 2451 exact = (exact && 2452 ((mpn_scan1 (xp, 0) >= (nx - n) * GMP_NUMB_BITS))); 2453 2454 /* we loose one more bit in the multiplication, 2455 except when err=0 where we loose two bits */ 2456 err = (err <= 0) ? 2 : err + 1; 2457 2458 /* result = a * x */ 2459 result = MPFR_TMP_LIMBS_ALLOC (n + nx1); 2460 mpn_mul (result, a, n, x1, nx1); 2461 exp_a += MPFR_GET_EXP (x); 2462 if (mpn_scan1 (result, 0) < (nx1 * GMP_NUMB_BITS)) 2463 exact = 0; 2464 2465 /* normalize a and truncate */ 2466 if ((result[n + nx1 - 1] & MPFR_LIMB_HIGHBIT) == 0) 2467 { 2468 mpn_lshift (a, result + nx1, n , 1); 2469 a[0] |= result[nx1 - 1] >> (GMP_NUMB_BITS - 1); 2470 exp_a --; 2471 } 2472 else 2473 MPN_COPY (a, result + nx1, n); 2474 } 2475 else 2476 { 2477 mp_limb_t *x1; 2478 2479 /* a2*2^exp_a = b^e */ 2480 err = mpfr_mpn_exp (a, &exp_a, b, exp, n); 2481 exact = (err == -1); 2482 2483 /* allocate memory for x1, result and reste */ 2484 x1 = MPFR_TMP_LIMBS_ALLOC (2 * n); 2485 result = MPFR_TMP_LIMBS_ALLOC (n + 1); 2486 reste = MPFR_TMP_LIMBS_ALLOC (n); 2487 2488 /* initialize x1 = x */ 2489 MPN_COPY2 (x1, 2 * n, xp, nx); 2490 if ((exact) && (nx > 2 * n) && 2491 (mpn_scan1 (xp, 0) < (nx - 2 * n) * GMP_NUMB_BITS)) 2492 exact = 0; 2493 2494 /* result = x / a */ 2495 mpn_tdiv_qr (result, reste, 0, x1, 2 * n, a, n); 2496 exp_a = MPFR_GET_EXP (x) - exp_a - 2 * n * GMP_NUMB_BITS; 2497 2498 /* test if division was exact */ 2499 if (exact) 2500 exact = mpn_popcount (reste, n) == 0; 2501 2502 /* normalize the result and copy into a */ 2503 if (result[n] == 1) 2504 { 2505 mpn_rshift (a, result, n, 1); 2506 a[n - 1] |= MPFR_LIMB_HIGHBIT;; 2507 exp_a ++; 2508 } 2509 else 2510 MPN_COPY (a, result, n); 2511 2512 err = (err == -1) ? 2 : err + 2; 2513 } 2514 2515 /* check if rounding is possible */ 2516 if (exact) 2517 err = -1; 2518 ret = mpfr_get_str_aux (s, e, a, n, exp_a, err, b, m, rnd); 2519 if (ret == MPFR_ROUND_FAILED) 2520 { 2521 /* too large error: increment the working precision */ 2522 MPFR_ZIV_NEXT (loop, prec); 2523 } 2524 else if (ret == -MPFR_ROUND_FAILED) 2525 { 2526 /* too many digits in mantissa: exp = |m-g| */ 2527 if ((mpfr_exp_t) m > g) /* exp = m - g, multiply by b^exp */ 2528 { 2529 g++; 2530 exp --; 2531 } 2532 else /* exp = g - m, divide by b^exp */ 2533 { 2534 g++; 2535 exp ++; 2536 } 2537 } 2538 else 2539 break; 2540 2541 MPFR_TMP_FREE(marker); 2542 } 2543 MPFR_ZIV_FREE (loop); 2544 2545 *e += g; 2546 2547 MPFR_TMP_FREE(marker); 2548 MPFR_SAVE_EXPO_FREE (expo); 2549 return s0; 2550} 2551 2552void mpfr_free_str (char *str) 2553{ 2554 (*__gmp_free_func) (str, strlen (str) + 1); 2555} 2556