1 /* mpfr_get_str -- output a floating-point number to a string 2 3 Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. 4 Contributed by the AriC and Caramel projects, INRIA. 5 6 This file is part of the GNU MPFR Library. 7 8 The GNU MPFR Library is free software; you can redistribute it and/or modify 9 it under the terms of the GNU Lesser General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or (at your 11 option) any later version. 12 13 The GNU MPFR Library is distributed in the hope that it will be useful, but 14 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 16 License for more details. 17 18 You should have received a copy of the GNU Lesser General Public License 19 along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see 20 http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., 21 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ 22 23 #define MPFR_NEED_LONGLONG_H 24 #include "mpfr-impl.h" 25 26 static 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. */ 31 static const char num_to_text36[] = "0123456789abcdefghijklmnopqrstuvwxyz"; 32 static 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 */ 74 static int 75 mpfr_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 249 const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x0000, 0x8000 }; 250 #elif GMP_NUMB_BITS == 32 251 const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x80000000 }; 252 #elif GMP_NUMB_BITS == 64 253 const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x8000000000000000 }; 254 #elif GMP_NUMB_BITS == 96 255 const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x800000000000000000000000 }; 256 #elif GMP_NUMB_BITS == 128 257 const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x80000000000000000000000000000000 }; 258 #elif GMP_NUMB_BITS == 256 259 const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 260 #endif 261 262 #if 0 263 #elif GMP_NUMB_BITS == 16 264 const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 }; 265 #elif GMP_NUMB_BITS == 32 266 const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 }; 267 #elif GMP_NUMB_BITS == 64 268 const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x0000000000000000, 0x8000000000000000 }; 269 #elif GMP_NUMB_BITS == 96 270 const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x800000000000000000000000 }; 271 #elif GMP_NUMB_BITS == 128 272 const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x80000000000000000000000000000000 }; 273 #elif GMP_NUMB_BITS == 256 274 const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 275 #endif 276 277 #if 0 278 #elif GMP_NUMB_BITS == 16 279 const mp_limb_t mpfr_l2b_3_0__tab[] = { 0x0e00, 0xcae0 }; 280 #elif GMP_NUMB_BITS == 32 281 const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e00 }; 282 #elif GMP_NUMB_BITS == 64 283 const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e0000000000 }; 284 #elif GMP_NUMB_BITS == 96 285 const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e000000000000000000 }; 286 #elif GMP_NUMB_BITS == 128 287 const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e00000000000000000000000000 }; 288 #elif GMP_NUMB_BITS == 256 289 const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e0000000000000000000000000000000000000000000000000000000000 }; 290 #endif 291 292 #if 0 293 #elif GMP_NUMB_BITS == 16 294 const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x0448, 0xe94e, 0xa9a9, 0x9cc1, 0xa184 }; 295 #elif GMP_NUMB_BITS == 32 296 const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x04480000, 0xa9a9e94e, 0xa1849cc1 }; 297 #elif GMP_NUMB_BITS == 64 298 const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x0448000000000000, 0xa1849cc1a9a9e94e }; 299 #elif GMP_NUMB_BITS == 96 300 const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e04480000 }; 301 #elif GMP_NUMB_BITS == 128 302 const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e0448000000000000 }; 303 #elif GMP_NUMB_BITS == 256 304 const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e044800000000000000000000000000000000000000000000 }; 305 #endif 306 307 #if 0 308 #elif GMP_NUMB_BITS == 16 309 const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x0000, 0x8000 }; 310 #elif GMP_NUMB_BITS == 32 311 const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x80000000 }; 312 #elif GMP_NUMB_BITS == 64 313 const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x8000000000000000 }; 314 #elif GMP_NUMB_BITS == 96 315 const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x800000000000000000000000 }; 316 #elif GMP_NUMB_BITS == 128 317 const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x80000000000000000000000000000000 }; 318 #elif GMP_NUMB_BITS == 256 319 const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 320 #endif 321 322 #if 0 323 #elif GMP_NUMB_BITS == 16 324 const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 }; 325 #elif GMP_NUMB_BITS == 32 326 const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 }; 327 #elif GMP_NUMB_BITS == 64 328 const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x0000000000000000, 0x8000000000000000 }; 329 #elif GMP_NUMB_BITS == 96 330 const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x800000000000000000000000 }; 331 #elif GMP_NUMB_BITS == 128 332 const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x80000000000000000000000000000000 }; 333 #elif GMP_NUMB_BITS == 256 334 const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 335 #endif 336 337 #if 0 338 #elif GMP_NUMB_BITS == 16 339 const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x7a00, 0x949a }; 340 #elif GMP_NUMB_BITS == 32 341 const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a00 }; 342 #elif GMP_NUMB_BITS == 64 343 const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a0000000000 }; 344 #elif GMP_NUMB_BITS == 96 345 const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a000000000000000000 }; 346 #elif GMP_NUMB_BITS == 128 347 const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a00000000000000000000000000 }; 348 #elif GMP_NUMB_BITS == 256 349 const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a0000000000000000000000000000000000000000000000000000000000 }; 350 #endif 351 352 #if 0 353 #elif GMP_NUMB_BITS == 16 354 const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b8, 0x9728, 0x287b, 0xa348, 0xdc81 }; 355 #elif GMP_NUMB_BITS == 32 356 const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b80000, 0x287b9728, 0xdc81a348 }; 357 #elif GMP_NUMB_BITS == 64 358 const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b8000000000000, 0xdc81a348287b9728 }; 359 #elif GMP_NUMB_BITS == 96 360 const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b80000 }; 361 #elif GMP_NUMB_BITS == 128 362 const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b8000000000000 }; 363 #elif GMP_NUMB_BITS == 256 364 const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b800000000000000000000000000000000000000000000 }; 365 #endif 366 367 #if 0 368 #elif GMP_NUMB_BITS == 16 369 const mp_limb_t mpfr_l2b_6_0__tab[] = { 0x0800, 0xa570 }; 370 #elif GMP_NUMB_BITS == 32 371 const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa5700800 }; 372 #elif GMP_NUMB_BITS == 64 373 const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa570080000000000 }; 374 #elif GMP_NUMB_BITS == 96 375 const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa57008000000000000000000 }; 376 #elif GMP_NUMB_BITS == 128 377 const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa5700800000000000000000000000000 }; 378 #elif GMP_NUMB_BITS == 256 379 const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa570080000000000000000000000000000000000000000000000000000000000 }; 380 #endif 381 382 #if 0 383 #elif GMP_NUMB_BITS == 16 384 const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff10, 0xf9e9, 0xe054, 0x9236, 0xc611 }; 385 #elif GMP_NUMB_BITS == 32 386 const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff100000, 0xe054f9e9, 0xc6119236 }; 387 #elif GMP_NUMB_BITS == 64 388 const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff10000000000000, 0xc6119236e054f9e9 }; 389 #elif GMP_NUMB_BITS == 96 390 const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff100000 }; 391 #elif GMP_NUMB_BITS == 128 392 const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff10000000000000 }; 393 #elif GMP_NUMB_BITS == 256 394 const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff1000000000000000000000000000000000000000000000 }; 395 #endif 396 397 #if 0 398 #elif GMP_NUMB_BITS == 16 399 const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb400, 0xb3ab }; 400 #elif GMP_NUMB_BITS == 32 401 const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb400 }; 402 #elif GMP_NUMB_BITS == 64 403 const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb40000000000 }; 404 #elif GMP_NUMB_BITS == 96 405 const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb4000000000000000000 }; 406 #elif GMP_NUMB_BITS == 128 407 const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb400000000000000000000000000 }; 408 #elif GMP_NUMB_BITS == 256 409 const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb40000000000000000000000000000000000000000000000000000000000 }; 410 #endif 411 412 #if 0 413 #elif GMP_NUMB_BITS == 16 414 const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b8, 0xa711, 0x754d, 0xc9d6, 0xb660 }; 415 #elif GMP_NUMB_BITS == 32 416 const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b80000, 0x754da711, 0xb660c9d6 }; 417 #elif GMP_NUMB_BITS == 64 418 const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b8000000000000, 0xb660c9d6754da711 }; 419 #elif GMP_NUMB_BITS == 96 420 const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b80000 }; 421 #elif GMP_NUMB_BITS == 128 422 const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b8000000000000 }; 423 #elif GMP_NUMB_BITS == 256 424 const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b800000000000000000000000000000000000000000000 }; 425 #endif 426 427 #if 0 428 #elif GMP_NUMB_BITS == 16 429 const mp_limb_t mpfr_l2b_8_0__tab[] = { 0x0000, 0xc000 }; 430 #elif GMP_NUMB_BITS == 32 431 const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc0000000 }; 432 #elif GMP_NUMB_BITS == 64 433 const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc000000000000000 }; 434 #elif GMP_NUMB_BITS == 96 435 const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc00000000000000000000000 }; 436 #elif GMP_NUMB_BITS == 128 437 const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc0000000000000000000000000000000 }; 438 #elif GMP_NUMB_BITS == 256 439 const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc000000000000000000000000000000000000000000000000000000000000000 }; 440 #endif 441 442 #if 0 443 #elif GMP_NUMB_BITS == 16 444 const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab0, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa }; 445 #elif GMP_NUMB_BITS == 32 446 const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab00000, 0xaaaaaaaa, 0xaaaaaaaa }; 447 #elif GMP_NUMB_BITS == 64 448 const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab0000000000000, 0xaaaaaaaaaaaaaaaa }; 449 #elif GMP_NUMB_BITS == 96 450 const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab00000 }; 451 #elif GMP_NUMB_BITS == 128 452 const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab0000000000000 }; 453 #elif GMP_NUMB_BITS == 256 454 const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab000000000000000000000000000000000000000000000 }; 455 #endif 456 457 #if 0 458 #elif GMP_NUMB_BITS == 16 459 const mp_limb_t mpfr_l2b_9_0__tab[] = { 0x0e00, 0xcae0 }; 460 #elif GMP_NUMB_BITS == 32 461 const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e00 }; 462 #elif GMP_NUMB_BITS == 64 463 const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e0000000000 }; 464 #elif GMP_NUMB_BITS == 96 465 const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e000000000000000000 }; 466 #elif GMP_NUMB_BITS == 128 467 const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e00000000000000000000000000 }; 468 #elif GMP_NUMB_BITS == 256 469 const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e0000000000000000000000000000000000000000000000000000000000 }; 470 #endif 471 472 #if 0 473 #elif GMP_NUMB_BITS == 16 474 const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x0448, 0xe94e, 0xa9a9, 0x9cc1, 0xa184 }; 475 #elif GMP_NUMB_BITS == 32 476 const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x04480000, 0xa9a9e94e, 0xa1849cc1 }; 477 #elif GMP_NUMB_BITS == 64 478 const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x0448000000000000, 0xa1849cc1a9a9e94e }; 479 #elif GMP_NUMB_BITS == 96 480 const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e04480000 }; 481 #elif GMP_NUMB_BITS == 128 482 const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e0448000000000000 }; 483 #elif GMP_NUMB_BITS == 256 484 const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e044800000000000000000000000000000000000000000000 }; 485 #endif 486 487 #if 0 488 #elif GMP_NUMB_BITS == 16 489 const mp_limb_t mpfr_l2b_10_0__tab[] = { 0x7a00, 0xd49a }; 490 #elif GMP_NUMB_BITS == 32 491 const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a00 }; 492 #elif GMP_NUMB_BITS == 64 493 const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a0000000000 }; 494 #elif GMP_NUMB_BITS == 96 495 const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a000000000000000000 }; 496 #elif GMP_NUMB_BITS == 128 497 const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a00000000000000000000000000 }; 498 #elif GMP_NUMB_BITS == 256 499 const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a0000000000000000000000000000000000000000000000000000000000 }; 500 #endif 501 502 #if 0 503 #elif GMP_NUMB_BITS == 16 504 const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f90, 0xf798, 0xfbcf, 0x9a84, 0x9a20 }; 505 #elif GMP_NUMB_BITS == 32 506 const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f900000, 0xfbcff798, 0x9a209a84 }; 507 #elif GMP_NUMB_BITS == 64 508 const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f90000000000000, 0x9a209a84fbcff798 }; 509 #elif GMP_NUMB_BITS == 96 510 const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f900000 }; 511 #elif GMP_NUMB_BITS == 128 512 const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f90000000000000 }; 513 #elif GMP_NUMB_BITS == 256 514 const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f9000000000000000000000000000000000000000000000 }; 515 #endif 516 517 #if 0 518 #elif GMP_NUMB_BITS == 16 519 const mp_limb_t mpfr_l2b_11_0__tab[] = { 0x5400, 0xdd67 }; 520 #elif GMP_NUMB_BITS == 32 521 const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd675400 }; 522 #elif GMP_NUMB_BITS == 64 523 const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd67540000000000 }; 524 #elif GMP_NUMB_BITS == 96 525 const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd6754000000000000000000 }; 526 #elif GMP_NUMB_BITS == 128 527 const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd675400000000000000000000000000 }; 528 #elif GMP_NUMB_BITS == 256 529 const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd67540000000000000000000000000000000000000000000000000000000000 }; 530 #endif 531 532 #if 0 533 #elif GMP_NUMB_BITS == 16 534 const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe170, 0x9d10, 0xeb22, 0x4e0e, 0x9400 }; 535 #elif GMP_NUMB_BITS == 32 536 const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe1700000, 0xeb229d10, 0x94004e0e }; 537 #elif GMP_NUMB_BITS == 64 538 const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe170000000000000, 0x94004e0eeb229d10 }; 539 #elif GMP_NUMB_BITS == 96 540 const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e1700000 }; 541 #elif GMP_NUMB_BITS == 128 542 const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e170000000000000 }; 543 #elif GMP_NUMB_BITS == 256 544 const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e17000000000000000000000000000000000000000000000 }; 545 #endif 546 547 #if 0 548 #elif GMP_NUMB_BITS == 16 549 const mp_limb_t mpfr_l2b_12_0__tab[] = { 0x0800, 0xe570 }; 550 #elif GMP_NUMB_BITS == 32 551 const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe5700800 }; 552 #elif GMP_NUMB_BITS == 64 553 const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe570080000000000 }; 554 #elif GMP_NUMB_BITS == 96 555 const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe57008000000000000000000 }; 556 #elif GMP_NUMB_BITS == 128 557 const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe5700800000000000000000000000000 }; 558 #elif GMP_NUMB_BITS == 256 559 const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe570080000000000000000000000000000000000000000000000000000000000 }; 560 #endif 561 562 #if 0 563 #elif GMP_NUMB_BITS == 16 564 const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe28, 0x1c24, 0x0b03, 0x9c1a, 0x8ed1 }; 565 #elif GMP_NUMB_BITS == 32 566 const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe280000, 0x0b031c24, 0x8ed19c1a }; 567 #elif GMP_NUMB_BITS == 64 568 const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe28000000000000, 0x8ed19c1a0b031c24 }; 569 #elif GMP_NUMB_BITS == 96 570 const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe280000 }; 571 #elif GMP_NUMB_BITS == 128 572 const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe28000000000000 }; 573 #elif GMP_NUMB_BITS == 256 574 const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe2800000000000000000000000000000000000000000000 }; 575 #endif 576 577 #if 0 578 #elif GMP_NUMB_BITS == 16 579 const mp_limb_t mpfr_l2b_13_0__tab[] = { 0x0200, 0xecd4 }; 580 #elif GMP_NUMB_BITS == 32 581 const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd40200 }; 582 #elif GMP_NUMB_BITS == 64 583 const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd4020000000000 }; 584 #elif GMP_NUMB_BITS == 96 585 const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd402000000000000000000 }; 586 #elif GMP_NUMB_BITS == 128 587 const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd40200000000000000000000000000 }; 588 #elif GMP_NUMB_BITS == 256 589 const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd4020000000000000000000000000000000000000000000000000000000000 }; 590 #endif 591 592 #if 0 593 #elif GMP_NUMB_BITS == 16 594 const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f8, 0xf7b4, 0xcb20, 0xa7c6, 0x8a5c }; 595 #elif GMP_NUMB_BITS == 32 596 const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f80000, 0xcb20f7b4, 0x8a5ca7c6 }; 597 #elif GMP_NUMB_BITS == 64 598 const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f8000000000000, 0x8a5ca7c6cb20f7b4 }; 599 #elif GMP_NUMB_BITS == 96 600 const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f80000 }; 601 #elif GMP_NUMB_BITS == 128 602 const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f8000000000000 }; 603 #elif GMP_NUMB_BITS == 256 604 const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f800000000000000000000000000000000000000000000 }; 605 #endif 606 607 #if 0 608 #elif GMP_NUMB_BITS == 16 609 const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xb400, 0xf3ab }; 610 #elif GMP_NUMB_BITS == 32 611 const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb400 }; 612 #elif GMP_NUMB_BITS == 64 613 const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb40000000000 }; 614 #elif GMP_NUMB_BITS == 96 615 const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb4000000000000000000 }; 616 #elif GMP_NUMB_BITS == 128 617 const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb400000000000000000000000000 }; 618 #elif GMP_NUMB_BITS == 256 619 const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb40000000000000000000000000000000000000000000000000000000000 }; 620 #endif 621 622 #if 0 623 #elif GMP_NUMB_BITS == 16 624 const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a8, 0x5cab, 0x96b5, 0xfff6, 0x8679 }; 625 #elif GMP_NUMB_BITS == 32 626 const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a80000, 0x96b55cab, 0x8679fff6 }; 627 #elif GMP_NUMB_BITS == 64 628 const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a8000000000000, 0x8679fff696b55cab }; 629 #elif GMP_NUMB_BITS == 96 630 const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a80000 }; 631 #elif GMP_NUMB_BITS == 128 632 const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a8000000000000 }; 633 #elif GMP_NUMB_BITS == 256 634 const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a800000000000000000000000000000000000000000000 }; 635 #endif 636 637 #if 0 638 #elif GMP_NUMB_BITS == 16 639 const mp_limb_t mpfr_l2b_15_0__tab[] = { 0x8000, 0xfa0a }; 640 #elif GMP_NUMB_BITS == 32 641 const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a8000 }; 642 #elif GMP_NUMB_BITS == 64 643 const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a800000000000 }; 644 #elif GMP_NUMB_BITS == 96 645 const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a80000000000000000000 }; 646 #elif GMP_NUMB_BITS == 128 647 const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a8000000000000000000000000000 }; 648 #elif GMP_NUMB_BITS == 256 649 const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a800000000000000000000000000000000000000000000000000000000000 }; 650 #endif 651 652 #if 0 653 #elif GMP_NUMB_BITS == 16 654 const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f80, 0xa6aa, 0x69f0, 0xee23, 0x830c }; 655 #elif GMP_NUMB_BITS == 32 656 const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f800000, 0x69f0a6aa, 0x830cee23 }; 657 #elif GMP_NUMB_BITS == 64 658 const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f80000000000000, 0x830cee2369f0a6aa }; 659 #elif GMP_NUMB_BITS == 96 660 const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f800000 }; 661 #elif GMP_NUMB_BITS == 128 662 const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f80000000000000 }; 663 #elif GMP_NUMB_BITS == 256 664 const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f8000000000000000000000000000000000000000000000 }; 665 #endif 666 667 #if 0 668 #elif GMP_NUMB_BITS == 16 669 const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x0000, 0x8000 }; 670 #elif GMP_NUMB_BITS == 32 671 const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x80000000 }; 672 #elif GMP_NUMB_BITS == 64 673 const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x8000000000000000 }; 674 #elif GMP_NUMB_BITS == 96 675 const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x800000000000000000000000 }; 676 #elif GMP_NUMB_BITS == 128 677 const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x80000000000000000000000000000000 }; 678 #elif GMP_NUMB_BITS == 256 679 const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 680 #endif 681 682 #if 0 683 #elif GMP_NUMB_BITS == 16 684 const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 }; 685 #elif GMP_NUMB_BITS == 32 686 const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 }; 687 #elif GMP_NUMB_BITS == 64 688 const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x0000000000000000, 0x8000000000000000 }; 689 #elif GMP_NUMB_BITS == 96 690 const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x800000000000000000000000 }; 691 #elif GMP_NUMB_BITS == 128 692 const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x80000000000000000000000000000000 }; 693 #elif GMP_NUMB_BITS == 256 694 const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 }; 695 #endif 696 697 #if 0 698 #elif GMP_NUMB_BITS == 16 699 const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x8000, 0x82cc }; 700 #elif GMP_NUMB_BITS == 32 701 const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc8000 }; 702 #elif GMP_NUMB_BITS == 64 703 const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc800000000000 }; 704 #elif GMP_NUMB_BITS == 96 705 const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc80000000000000000000 }; 706 #elif GMP_NUMB_BITS == 128 707 const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc8000000000000000000000000000 }; 708 #elif GMP_NUMB_BITS == 256 709 const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc800000000000000000000000000000000000000000000000000000000000 }; 710 #endif 711 712 #if 0 713 #elif GMP_NUMB_BITS == 16 714 const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x8720, 0x259b, 0x62c4, 0xabf5, 0xfa85 }; 715 #elif GMP_NUMB_BITS == 32 716 const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x87200000, 0x62c4259b, 0xfa85abf5 }; 717 #elif GMP_NUMB_BITS == 64 718 const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x8720000000000000, 0xfa85abf562c4259b }; 719 #elif GMP_NUMB_BITS == 96 720 const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b87200000 }; 721 #elif GMP_NUMB_BITS == 128 722 const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b8720000000000000 }; 723 #elif GMP_NUMB_BITS == 256 724 const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b872000000000000000000000000000000000000000000000 }; 725 #endif 726 727 #if 0 728 #elif GMP_NUMB_BITS == 16 729 const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x0800, 0x8570 }; 730 #elif GMP_NUMB_BITS == 32 731 const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x85700800 }; 732 #elif GMP_NUMB_BITS == 64 733 const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x8570080000000000 }; 734 #elif GMP_NUMB_BITS == 96 735 const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x857008000000000000000000 }; 736 #elif GMP_NUMB_BITS == 128 737 const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x85700800000000000000000000000000 }; 738 #elif GMP_NUMB_BITS == 256 739 const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x8570080000000000000000000000000000000000000000000000000000000000 }; 740 #endif 741 742 #if 0 743 #elif GMP_NUMB_BITS == 16 744 const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x3698, 0x1378, 0x5537, 0x6634, 0xf591 }; 745 #elif GMP_NUMB_BITS == 32 746 const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x36980000, 0x55371378, 0xf5916634 }; 747 #elif GMP_NUMB_BITS == 64 748 const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x3698000000000000, 0xf591663455371378 }; 749 #elif GMP_NUMB_BITS == 96 750 const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf59166345537137836980000 }; 751 #elif GMP_NUMB_BITS == 128 752 const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf5916634553713783698000000000000 }; 753 #elif GMP_NUMB_BITS == 256 754 const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf591663455371378369800000000000000000000000000000000000000000000 }; 755 #endif 756 757 #if 0 758 #elif GMP_NUMB_BITS == 16 759 const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x0600, 0x87ef }; 760 #elif GMP_NUMB_BITS == 32 761 const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef0600 }; 762 #elif GMP_NUMB_BITS == 64 763 const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef060000000000 }; 764 #elif GMP_NUMB_BITS == 96 765 const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef06000000000000000000 }; 766 #elif GMP_NUMB_BITS == 128 767 const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef0600000000000000000000000000 }; 768 #elif GMP_NUMB_BITS == 256 769 const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef060000000000000000000000000000000000000000000000000000000000 }; 770 #endif 771 772 #if 0 773 #elif GMP_NUMB_BITS == 16 774 const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db8, 0x558c, 0x62ed, 0x08c0, 0xf10f }; 775 #elif GMP_NUMB_BITS == 32 776 const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db80000, 0x62ed558c, 0xf10f08c0 }; 777 #elif GMP_NUMB_BITS == 64 778 const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db8000000000000, 0xf10f08c062ed558c }; 779 #elif GMP_NUMB_BITS == 96 780 const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db80000 }; 781 #elif GMP_NUMB_BITS == 128 782 const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db8000000000000 }; 783 #elif GMP_NUMB_BITS == 256 784 const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db800000000000000000000000000000000000000000000 }; 785 #endif 786 787 #if 0 788 #elif GMP_NUMB_BITS == 16 789 const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x3e00, 0x8a4d }; 790 #elif GMP_NUMB_BITS == 32 791 const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e00 }; 792 #elif GMP_NUMB_BITS == 64 793 const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e0000000000 }; 794 #elif GMP_NUMB_BITS == 96 795 const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e000000000000000000 }; 796 #elif GMP_NUMB_BITS == 128 797 const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e00000000000000000000000000 }; 798 #elif GMP_NUMB_BITS == 256 799 const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e0000000000000000000000000000000000000000000000000000000000 }; 800 #endif 801 802 #if 0 803 #elif GMP_NUMB_BITS == 16 804 const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b40, 0xa71c, 0x1cc1, 0x690a, 0xecee }; 805 #elif GMP_NUMB_BITS == 32 806 const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b400000, 0x1cc1a71c, 0xecee690a }; 807 #elif GMP_NUMB_BITS == 64 808 const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b40000000000000, 0xecee690a1cc1a71c }; 809 #elif GMP_NUMB_BITS == 96 810 const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b400000 }; 811 #elif GMP_NUMB_BITS == 128 812 const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b40000000000000 }; 813 #elif GMP_NUMB_BITS == 256 814 const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b4000000000000000000000000000000000000000000000 }; 815 #endif 816 817 #if 0 818 #elif GMP_NUMB_BITS == 16 819 const mp_limb_t mpfr_l2b_21_0__tab[] = { 0xde00, 0x8c8d }; 820 #elif GMP_NUMB_BITS == 32 821 const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde00 }; 822 #elif GMP_NUMB_BITS == 64 823 const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde0000000000 }; 824 #elif GMP_NUMB_BITS == 96 825 const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde000000000000000000 }; 826 #elif GMP_NUMB_BITS == 128 827 const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde00000000000000000000000000 }; 828 #elif GMP_NUMB_BITS == 256 829 const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde0000000000000000000000000000000000000000000000000000000000 }; 830 #endif 831 832 #if 0 833 #elif GMP_NUMB_BITS == 16 834 const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x4108, 0x6b26, 0xb3d0, 0x63c1, 0xe922 }; 835 #elif GMP_NUMB_BITS == 32 836 const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x41080000, 0xb3d06b26, 0xe92263c1 }; 837 #elif GMP_NUMB_BITS == 64 838 const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x4108000000000000, 0xe92263c1b3d06b26 }; 839 #elif GMP_NUMB_BITS == 96 840 const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b2641080000 }; 841 #elif GMP_NUMB_BITS == 128 842 const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b264108000000000000 }; 843 #elif GMP_NUMB_BITS == 256 844 const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b26410800000000000000000000000000000000000000000000 }; 845 #endif 846 847 #if 0 848 #elif GMP_NUMB_BITS == 16 849 const mp_limb_t mpfr_l2b_22_0__tab[] = { 0xaa00, 0x8eb3 }; 850 #elif GMP_NUMB_BITS == 32 851 const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa00 }; 852 #elif GMP_NUMB_BITS == 64 853 const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa0000000000 }; 854 #elif GMP_NUMB_BITS == 96 855 const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa000000000000000000 }; 856 #elif GMP_NUMB_BITS == 128 857 const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa00000000000000000000000000 }; 858 #elif GMP_NUMB_BITS == 256 859 const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa0000000000000000000000000000000000000000000000000000000000 }; 860 #endif 861 862 #if 0 863 #elif GMP_NUMB_BITS == 16 864 const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe8, 0xf061, 0x60b9, 0x2c4d, 0xe5a0 }; 865 #elif GMP_NUMB_BITS == 32 866 const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe80000, 0x60b9f061, 0xe5a02c4d }; 867 #elif GMP_NUMB_BITS == 64 868 const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe8000000000000, 0xe5a02c4d60b9f061 }; 869 #elif GMP_NUMB_BITS == 96 870 const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe80000 }; 871 #elif GMP_NUMB_BITS == 128 872 const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe8000000000000 }; 873 #elif GMP_NUMB_BITS == 256 874 const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe800000000000000000000000000000000000000000000 }; 875 #endif 876 877 #if 0 878 #elif GMP_NUMB_BITS == 16 879 const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x0600, 0x90c1 }; 880 #elif GMP_NUMB_BITS == 32 881 const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c10600 }; 882 #elif GMP_NUMB_BITS == 64 883 const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c1060000000000 }; 884 #elif GMP_NUMB_BITS == 96 885 const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c106000000000000000000 }; 886 #elif GMP_NUMB_BITS == 128 887 const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c10600000000000000000000000000 }; 888 #elif GMP_NUMB_BITS == 256 889 const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c1060000000000000000000000000000000000000000000000000000000000 }; 890 #endif 891 892 #if 0 893 #elif GMP_NUMB_BITS == 16 894 const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e0, 0x586a, 0x46b9, 0xcadd, 0xe25e }; 895 #elif GMP_NUMB_BITS == 32 896 const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e00000, 0x46b9586a, 0xe25ecadd }; 897 #elif GMP_NUMB_BITS == 64 898 const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e0000000000000, 0xe25ecadd46b9586a }; 899 #elif GMP_NUMB_BITS == 96 900 const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e00000 }; 901 #elif GMP_NUMB_BITS == 128 902 const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e0000000000000 }; 903 #elif GMP_NUMB_BITS == 256 904 const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e000000000000000000000000000000000000000000000 }; 905 #endif 906 907 #if 0 908 #elif GMP_NUMB_BITS == 16 909 const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x0400, 0x92b8 }; 910 #elif GMP_NUMB_BITS == 32 911 const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b80400 }; 912 #elif GMP_NUMB_BITS == 64 913 const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b8040000000000 }; 914 #elif GMP_NUMB_BITS == 96 915 const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b804000000000000000000 }; 916 #elif GMP_NUMB_BITS == 128 917 const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b80400000000000000000000000000 }; 918 #elif GMP_NUMB_BITS == 256 919 const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b8040000000000000000000000000000000000000000000000000000000000 }; 920 #endif 921 922 #if 0 923 #elif GMP_NUMB_BITS == 16 924 const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x3668, 0x7263, 0xc7c6, 0xbb44, 0xdf56 }; 925 #elif GMP_NUMB_BITS == 32 926 const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x36680000, 0xc7c67263, 0xdf56bb44 }; 927 #elif GMP_NUMB_BITS == 64 928 const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x3668000000000000, 0xdf56bb44c7c67263 }; 929 #elif GMP_NUMB_BITS == 96 930 const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c6726336680000 }; 931 #elif GMP_NUMB_BITS == 128 932 const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c672633668000000000000 }; 933 #elif GMP_NUMB_BITS == 256 934 const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c67263366800000000000000000000000000000000000000000000 }; 935 #endif 936 937 #if 0 938 #elif GMP_NUMB_BITS == 16 939 const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x7a00, 0x949a }; 940 #elif GMP_NUMB_BITS == 32 941 const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a00 }; 942 #elif GMP_NUMB_BITS == 64 943 const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a0000000000 }; 944 #elif GMP_NUMB_BITS == 96 945 const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a000000000000000000 }; 946 #elif GMP_NUMB_BITS == 128 947 const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a00000000000000000000000000 }; 948 #elif GMP_NUMB_BITS == 256 949 const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a0000000000000000000000000000000000000000000000000000000000 }; 950 #endif 951 952 #if 0 953 #elif GMP_NUMB_BITS == 16 954 const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b8, 0x9728, 0x287b, 0xa348, 0xdc81 }; 955 #elif GMP_NUMB_BITS == 32 956 const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b80000, 0x287b9728, 0xdc81a348 }; 957 #elif GMP_NUMB_BITS == 64 958 const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b8000000000000, 0xdc81a348287b9728 }; 959 #elif GMP_NUMB_BITS == 96 960 const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b80000 }; 961 #elif GMP_NUMB_BITS == 128 962 const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b8000000000000 }; 963 #elif GMP_NUMB_BITS == 256 964 const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b800000000000000000000000000000000000000000000 }; 965 #endif 966 967 #if 0 968 #elif GMP_NUMB_BITS == 16 969 const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x0200, 0x966a }; 970 #elif GMP_NUMB_BITS == 32 971 const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a0200 }; 972 #elif GMP_NUMB_BITS == 64 973 const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a020000000000 }; 974 #elif GMP_NUMB_BITS == 96 975 const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a02000000000000000000 }; 976 #elif GMP_NUMB_BITS == 128 977 const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a0200000000000000000000000000 }; 978 #elif GMP_NUMB_BITS == 256 979 const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a020000000000000000000000000000000000000000000000000000000000 }; 980 #endif 981 982 #if 0 983 #elif GMP_NUMB_BITS == 16 984 const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x6458, 0x78a4, 0x7583, 0x19f9, 0xd9da }; 985 #elif GMP_NUMB_BITS == 32 986 const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x64580000, 0x758378a4, 0xd9da19f9 }; 987 #elif GMP_NUMB_BITS == 64 988 const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x6458000000000000, 0xd9da19f9758378a4 }; 989 #elif GMP_NUMB_BITS == 96 990 const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a464580000 }; 991 #elif GMP_NUMB_BITS == 128 992 const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a46458000000000000 }; 993 #elif GMP_NUMB_BITS == 256 994 const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a4645800000000000000000000000000000000000000000000 }; 995 #endif 996 997 #if 0 998 #elif GMP_NUMB_BITS == 16 999 const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x0a00, 0x9828 }; 1000 #elif GMP_NUMB_BITS == 32 1001 const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a00 }; 1002 #elif GMP_NUMB_BITS == 64 1003 const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a0000000000 }; 1004 #elif GMP_NUMB_BITS == 96 1005 const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a000000000000000000 }; 1006 #elif GMP_NUMB_BITS == 128 1007 const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a00000000000000000000000000 }; 1008 #elif GMP_NUMB_BITS == 256 1009 const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a0000000000000000000000000000000000000000000000000000000000 }; 1010 #endif 1011 1012 #if 0 1013 #elif GMP_NUMB_BITS == 16 1014 const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b08, 0xe1bd, 0xe237, 0x7bac, 0xd75b }; 1015 #elif GMP_NUMB_BITS == 32 1016 const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b080000, 0xe237e1bd, 0xd75b7bac }; 1017 #elif GMP_NUMB_BITS == 64 1018 const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b08000000000000, 0xd75b7bace237e1bd }; 1019 #elif GMP_NUMB_BITS == 96 1020 const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b080000 }; 1021 #elif GMP_NUMB_BITS == 128 1022 const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b08000000000000 }; 1023 #elif GMP_NUMB_BITS == 256 1024 const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b0800000000000000000000000000000000000000000000 }; 1025 #endif 1026 1027 #if 0 1028 #elif GMP_NUMB_BITS == 16 1029 const mp_limb_t mpfr_l2b_28_0__tab[] = { 0xda00, 0x99d5 }; 1030 #elif GMP_NUMB_BITS == 32 1031 const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da00 }; 1032 #elif GMP_NUMB_BITS == 64 1033 const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da0000000000 }; 1034 #elif GMP_NUMB_BITS == 96 1035 const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da000000000000000000 }; 1036 #elif GMP_NUMB_BITS == 128 1037 const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da00000000000000000000000000 }; 1038 #elif GMP_NUMB_BITS == 256 1039 const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da0000000000000000000000000000000000000000000000000000000000 }; 1040 #endif 1041 1042 #if 0 1043 #elif GMP_NUMB_BITS == 16 1044 const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb8, 0xe8b8, 0x71df, 0xc758, 0xd501 }; 1045 #elif GMP_NUMB_BITS == 32 1046 const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb80000, 0x71dfe8b8, 0xd501c758 }; 1047 #elif GMP_NUMB_BITS == 64 1048 const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb8000000000000, 0xd501c75871dfe8b8 }; 1049 #elif GMP_NUMB_BITS == 96 1050 const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb80000 }; 1051 #elif GMP_NUMB_BITS == 128 1052 const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb8000000000000 }; 1053 #elif GMP_NUMB_BITS == 256 1054 const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb800000000000000000000000000000000000000000000 }; 1055 #endif 1056 1057 #if 0 1058 #elif GMP_NUMB_BITS == 16 1059 const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9600, 0x9b74 }; 1060 #elif GMP_NUMB_BITS == 32 1061 const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b749600 }; 1062 #elif GMP_NUMB_BITS == 64 1063 const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b74960000000000 }; 1064 #elif GMP_NUMB_BITS == 96 1065 const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b7496000000000000000000 }; 1066 #elif GMP_NUMB_BITS == 128 1067 const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b749600000000000000000000000000 }; 1068 #elif GMP_NUMB_BITS == 256 1069 const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b74960000000000000000000000000000000000000000000000000000000000 }; 1070 #endif 1071 1072 #if 0 1073 #elif GMP_NUMB_BITS == 16 1074 const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc8, 0x62b3, 0x9c6c, 0x8315, 0xd2c9 }; 1075 #elif GMP_NUMB_BITS == 32 1076 const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc80000, 0x9c6c62b3, 0xd2c98315 }; 1077 #elif GMP_NUMB_BITS == 64 1078 const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc8000000000000, 0xd2c983159c6c62b3 }; 1079 #elif GMP_NUMB_BITS == 96 1080 const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc80000 }; 1081 #elif GMP_NUMB_BITS == 128 1082 const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc8000000000000 }; 1083 #elif GMP_NUMB_BITS == 256 1084 const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc800000000000000000000000000000000000000000000 }; 1085 #endif 1086 1087 #if 0 1088 #elif GMP_NUMB_BITS == 16 1089 const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x4000, 0x9d05 }; 1090 #elif GMP_NUMB_BITS == 32 1091 const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d054000 }; 1092 #elif GMP_NUMB_BITS == 64 1093 const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d05400000000000 }; 1094 #elif GMP_NUMB_BITS == 96 1095 const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d0540000000000000000000 }; 1096 #elif GMP_NUMB_BITS == 128 1097 const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d054000000000000000000000000000 }; 1098 #elif GMP_NUMB_BITS == 256 1099 const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d05400000000000000000000000000000000000000000000000000000000000 }; 1100 #endif 1101 1102 #if 0 1103 #elif GMP_NUMB_BITS == 16 1104 const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x3588, 0x1732, 0x5cad, 0xa619, 0xd0af }; 1105 #elif GMP_NUMB_BITS == 32 1106 const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x35880000, 0x5cad1732, 0xd0afa619 }; 1107 #elif GMP_NUMB_BITS == 64 1108 const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x3588000000000000, 0xd0afa6195cad1732 }; 1109 #elif GMP_NUMB_BITS == 96 1110 const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad173235880000 }; 1111 #elif GMP_NUMB_BITS == 128 1112 const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad17323588000000000000 }; 1113 #elif GMP_NUMB_BITS == 256 1114 const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad1732358800000000000000000000000000000000000000000000 }; 1115 #endif 1116 1117 #if 0 1118 #elif GMP_NUMB_BITS == 16 1119 const mp_limb_t mpfr_l2b_31_0__tab[] = { 0xc800, 0x9e88 }; 1120 #elif GMP_NUMB_BITS == 32 1121 const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c800 }; 1122 #elif GMP_NUMB_BITS == 64 1123 const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c80000000000 }; 1124 #elif GMP_NUMB_BITS == 96 1125 const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c8000000000000000000 }; 1126 #elif GMP_NUMB_BITS == 128 1127 const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c800000000000000000000000000 }; 1128 #elif GMP_NUMB_BITS == 256 1129 const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c80000000000000000000000000000000000000000000000000000000000 }; 1130 #endif 1131 1132 #if 0 1133 #elif GMP_NUMB_BITS == 16 1134 const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd578, 0xf7ca, 0x63ee, 0x86e6, 0xceb1 }; 1135 #elif GMP_NUMB_BITS == 32 1136 const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd5780000, 0x63eef7ca, 0xceb186e6 }; 1137 #elif GMP_NUMB_BITS == 64 1138 const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd578000000000000, 0xceb186e663eef7ca }; 1139 #elif GMP_NUMB_BITS == 96 1140 const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad5780000 }; 1141 #elif GMP_NUMB_BITS == 128 1142 const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad578000000000000 }; 1143 #elif GMP_NUMB_BITS == 256 1144 const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad57800000000000000000000000000000000000000000000 }; 1145 #endif 1146 1147 #if 0 1148 #elif GMP_NUMB_BITS == 16 1149 const mp_limb_t mpfr_l2b_32_0__tab[] = { 0x0000, 0xa000 }; 1150 #elif GMP_NUMB_BITS == 32 1151 const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa0000000 }; 1152 #elif GMP_NUMB_BITS == 64 1153 const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa000000000000000 }; 1154 #elif GMP_NUMB_BITS == 96 1155 const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa00000000000000000000000 }; 1156 #elif GMP_NUMB_BITS == 128 1157 const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa0000000000000000000000000000000 }; 1158 #elif GMP_NUMB_BITS == 256 1159 const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa000000000000000000000000000000000000000000000000000000000000000 }; 1160 #endif 1161 1162 #if 0 1163 #elif GMP_NUMB_BITS == 16 1164 const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd0, 0xcccc, 0xcccc, 0xcccc, 0xcccc }; 1165 #elif GMP_NUMB_BITS == 32 1166 const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd00000, 0xcccccccc, 0xcccccccc }; 1167 #elif GMP_NUMB_BITS == 64 1168 const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd0000000000000, 0xcccccccccccccccc }; 1169 #elif GMP_NUMB_BITS == 96 1170 const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd00000 }; 1171 #elif GMP_NUMB_BITS == 128 1172 const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd0000000000000 }; 1173 #elif GMP_NUMB_BITS == 256 1174 const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd000000000000000000000000000000000000000000000 }; 1175 #endif 1176 1177 #if 0 1178 #elif GMP_NUMB_BITS == 16 1179 const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xae00, 0xa16b }; 1180 #elif GMP_NUMB_BITS == 32 1181 const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae00 }; 1182 #elif GMP_NUMB_BITS == 64 1183 const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae0000000000 }; 1184 #elif GMP_NUMB_BITS == 96 1185 const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae000000000000000000 }; 1186 #elif GMP_NUMB_BITS == 128 1187 const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae00000000000000000000000000 }; 1188 #elif GMP_NUMB_BITS == 256 1189 const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae0000000000000000000000000000000000000000000000000000000000 }; 1190 #endif 1191 1192 #if 0 1193 #elif GMP_NUMB_BITS == 16 1194 const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x0888, 0xa187, 0x5304, 0x6404, 0xcaff }; 1195 #elif GMP_NUMB_BITS == 32 1196 const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x08880000, 0x5304a187, 0xcaff6404 }; 1197 #elif GMP_NUMB_BITS == 64 1198 const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x0888000000000000, 0xcaff64045304a187 }; 1199 #elif GMP_NUMB_BITS == 96 1200 const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a18708880000 }; 1201 #elif GMP_NUMB_BITS == 128 1202 const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a1870888000000000000 }; 1203 #elif GMP_NUMB_BITS == 256 1204 const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a187088800000000000000000000000000000000000000000000 }; 1205 #endif 1206 1207 #if 0 1208 #elif GMP_NUMB_BITS == 16 1209 const mp_limb_t mpfr_l2b_34_0__tab[] = { 0x8000, 0xa2cc }; 1210 #elif GMP_NUMB_BITS == 32 1211 const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc8000 }; 1212 #elif GMP_NUMB_BITS == 64 1213 const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc800000000000 }; 1214 #elif GMP_NUMB_BITS == 96 1215 const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc80000000000000000000 }; 1216 #elif GMP_NUMB_BITS == 128 1217 const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc8000000000000000000000000000 }; 1218 #elif GMP_NUMB_BITS == 256 1219 const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc800000000000000000000000000000000000000000000000000000000000 }; 1220 #endif 1221 1222 #if 0 1223 #elif GMP_NUMB_BITS == 16 1224 const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb50, 0x17ca, 0x5a79, 0x73d8, 0xc947 }; 1225 #elif GMP_NUMB_BITS == 32 1226 const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb500000, 0x5a7917ca, 0xc94773d8 }; 1227 #elif GMP_NUMB_BITS == 64 1228 const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb50000000000000, 0xc94773d85a7917ca }; 1229 #elif GMP_NUMB_BITS == 96 1230 const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb500000 }; 1231 #elif GMP_NUMB_BITS == 128 1232 const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb50000000000000 }; 1233 #elif GMP_NUMB_BITS == 256 1234 const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb5000000000000000000000000000000000000000000000 }; 1235 #endif 1236 1237 #if 0 1238 #elif GMP_NUMB_BITS == 16 1239 const mp_limb_t mpfr_l2b_35_0__tab[] = { 0x1800, 0xa423 }; 1240 #elif GMP_NUMB_BITS == 32 1241 const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa4231800 }; 1242 #elif GMP_NUMB_BITS == 64 1243 const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa423180000000000 }; 1244 #elif GMP_NUMB_BITS == 96 1245 const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa42318000000000000000000 }; 1246 #elif GMP_NUMB_BITS == 128 1247 const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa4231800000000000000000000000000 }; 1248 #elif GMP_NUMB_BITS == 256 1249 const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa423180000000000000000000000000000000000000000000000000000000000 }; 1250 #endif 1251 1252 #if 0 1253 #elif GMP_NUMB_BITS == 16 1254 const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x6960, 0x18c2, 0x6037, 0x567c, 0xc7a3 }; 1255 #elif GMP_NUMB_BITS == 32 1256 const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x69600000, 0x603718c2, 0xc7a3567c }; 1257 #elif GMP_NUMB_BITS == 64 1258 const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x6960000000000000, 0xc7a3567c603718c2 }; 1259 #elif GMP_NUMB_BITS == 96 1260 const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c269600000 }; 1261 #elif GMP_NUMB_BITS == 128 1262 const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c26960000000000000 }; 1263 #elif GMP_NUMB_BITS == 256 1264 const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c2696000000000000000000000000000000000000000000000 }; 1265 #endif 1266 1267 #if 0 1268 #elif GMP_NUMB_BITS == 16 1269 const mp_limb_t mpfr_l2b_36_0__tab[] = { 0x0800, 0xa570 }; 1270 #elif GMP_NUMB_BITS == 32 1271 const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa5700800 }; 1272 #elif GMP_NUMB_BITS == 64 1273 const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa570080000000000 }; 1274 #elif GMP_NUMB_BITS == 96 1275 const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa57008000000000000000000 }; 1276 #elif GMP_NUMB_BITS == 128 1277 const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa5700800000000000000000000000000 }; 1278 #elif GMP_NUMB_BITS == 256 1279 const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa570080000000000000000000000000000000000000000000000000000000000 }; 1280 #endif 1281 1282 #if 0 1283 #elif GMP_NUMB_BITS == 16 1284 const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff10, 0xf9e9, 0xe054, 0x9236, 0xc611 }; 1285 #elif GMP_NUMB_BITS == 32 1286 const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff100000, 0xe054f9e9, 0xc6119236 }; 1287 #elif GMP_NUMB_BITS == 64 1288 const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff10000000000000, 0xc6119236e054f9e9 }; 1289 #elif GMP_NUMB_BITS == 96 1290 const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff100000 }; 1291 #elif GMP_NUMB_BITS == 128 1292 const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff10000000000000 }; 1293 #elif GMP_NUMB_BITS == 256 1294 const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff1000000000000000000000000000000000000000000000 }; 1295 #endif 1296 1297 #if 0 1298 #elif GMP_NUMB_BITS == 16 1299 const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xd800, 0xa6b3 }; 1300 #elif GMP_NUMB_BITS == 32 1301 const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d800 }; 1302 #elif GMP_NUMB_BITS == 64 1303 const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d80000000000 }; 1304 #elif GMP_NUMB_BITS == 96 1305 const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d8000000000000000000 }; 1306 #elif GMP_NUMB_BITS == 128 1307 const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d800000000000000000000000000 }; 1308 #elif GMP_NUMB_BITS == 256 1309 const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d80000000000000000000000000000000000000000000000000000000000 }; 1310 #endif 1311 1312 #if 0 1313 #elif GMP_NUMB_BITS == 16 1314 const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x1618, 0x6b36, 0x70d7, 0xd3a2, 0xc490 }; 1315 #elif GMP_NUMB_BITS == 32 1316 const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x16180000, 0x70d76b36, 0xc490d3a2 }; 1317 #elif GMP_NUMB_BITS == 64 1318 const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x1618000000000000, 0xc490d3a270d76b36 }; 1319 #elif GMP_NUMB_BITS == 96 1320 const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b3616180000 }; 1321 #elif GMP_NUMB_BITS == 128 1322 const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b361618000000000000 }; 1323 #elif GMP_NUMB_BITS == 256 1324 const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b36161800000000000000000000000000000000000000000000 }; 1325 #endif 1326 1327 #if 0 1328 #elif GMP_NUMB_BITS == 16 1329 const mp_limb_t mpfr_l2b_38_0__tab[] = { 0x0600, 0xa7ef }; 1330 #elif GMP_NUMB_BITS == 32 1331 const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef0600 }; 1332 #elif GMP_NUMB_BITS == 64 1333 const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef060000000000 }; 1334 #elif GMP_NUMB_BITS == 96 1335 const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef06000000000000000000 }; 1336 #elif GMP_NUMB_BITS == 128 1337 const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef0600000000000000000000000000 }; 1338 #elif GMP_NUMB_BITS == 256 1339 const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef060000000000000000000000000000000000000000000000000000000000 }; 1340 #endif 1341 1342 #if 0 1343 #elif GMP_NUMB_BITS == 16 1344 const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e0, 0x9505, 0x5182, 0xe8d2, 0xc31f }; 1345 #elif GMP_NUMB_BITS == 32 1346 const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e00000, 0x51829505, 0xc31fe8d2 }; 1347 #elif GMP_NUMB_BITS == 64 1348 const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e0000000000000, 0xc31fe8d251829505 }; 1349 #elif GMP_NUMB_BITS == 96 1350 const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e00000 }; 1351 #elif GMP_NUMB_BITS == 128 1352 const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e0000000000000 }; 1353 #elif GMP_NUMB_BITS == 256 1354 const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e000000000000000000000000000000000000000000000 }; 1355 #endif 1356 1357 #if 0 1358 #elif GMP_NUMB_BITS == 16 1359 const mp_limb_t mpfr_l2b_39_0__tab[] = { 0x0400, 0xa922 }; 1360 #elif GMP_NUMB_BITS == 32 1361 const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa9220400 }; 1362 #elif GMP_NUMB_BITS == 64 1363 const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa922040000000000 }; 1364 #elif GMP_NUMB_BITS == 96 1365 const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa92204000000000000000000 }; 1366 #elif GMP_NUMB_BITS == 128 1367 const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa9220400000000000000000000000000 }; 1368 #elif GMP_NUMB_BITS == 256 1369 const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa922040000000000000000000000000000000000000000000000000000000000 }; 1370 #endif 1371 1372 #if 0 1373 #elif GMP_NUMB_BITS == 16 1374 const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf8, 0xf1b5, 0x10ca, 0xbd32, 0xc1bd }; 1375 #elif GMP_NUMB_BITS == 32 1376 const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf80000, 0x10caf1b5, 0xc1bdbd32 }; 1377 #elif GMP_NUMB_BITS == 64 1378 const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf8000000000000, 0xc1bdbd3210caf1b5 }; 1379 #elif GMP_NUMB_BITS == 96 1380 const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf80000 }; 1381 #elif GMP_NUMB_BITS == 128 1382 const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf8000000000000 }; 1383 #elif GMP_NUMB_BITS == 256 1384 const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf800000000000000000000000000000000000000000000 }; 1385 #endif 1386 1387 #if 0 1388 #elif GMP_NUMB_BITS == 16 1389 const mp_limb_t mpfr_l2b_40_0__tab[] = { 0x3e00, 0xaa4d }; 1390 #elif GMP_NUMB_BITS == 32 1391 const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e00 }; 1392 #elif GMP_NUMB_BITS == 64 1393 const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e0000000000 }; 1394 #elif GMP_NUMB_BITS == 96 1395 const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e000000000000000000 }; 1396 #elif GMP_NUMB_BITS == 128 1397 const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e00000000000000000000000000 }; 1398 #elif GMP_NUMB_BITS == 256 1399 const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e0000000000000000000000000000000000000000000000000000000000 }; 1400 #endif 1401 1402 #if 0 1403 #elif GMP_NUMB_BITS == 16 1404 const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce8, 0x4948, 0xeff7, 0x55ff, 0xc069 }; 1405 #elif GMP_NUMB_BITS == 32 1406 const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce80000, 0xeff74948, 0xc06955ff }; 1407 #elif GMP_NUMB_BITS == 64 1408 const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce8000000000000, 0xc06955ffeff74948 }; 1409 #elif GMP_NUMB_BITS == 96 1410 const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce80000 }; 1411 #elif GMP_NUMB_BITS == 128 1412 const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce8000000000000 }; 1413 #elif GMP_NUMB_BITS == 256 1414 const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce800000000000000000000000000000000000000000000 }; 1415 #endif 1416 1417 #if 0 1418 #elif GMP_NUMB_BITS == 16 1419 const mp_limb_t mpfr_l2b_41_0__tab[] = { 0x1200, 0xab71 }; 1420 #elif GMP_NUMB_BITS == 32 1421 const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab711200 }; 1422 #elif GMP_NUMB_BITS == 64 1423 const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab71120000000000 }; 1424 #elif GMP_NUMB_BITS == 96 1425 const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab7112000000000000000000 }; 1426 #elif GMP_NUMB_BITS == 128 1427 const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab711200000000000000000000000000 }; 1428 #elif GMP_NUMB_BITS == 256 1429 const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab71120000000000000000000000000000000000000000000000000000000000 }; 1430 #endif 1431 1432 #if 0 1433 #elif GMP_NUMB_BITS == 16 1434 const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc28, 0x7cef, 0xf695, 0xcf47, 0xbf21 }; 1435 #elif GMP_NUMB_BITS == 32 1436 const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc280000, 0xf6957cef, 0xbf21cf47 }; 1437 #elif GMP_NUMB_BITS == 64 1438 const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc28000000000000, 0xbf21cf47f6957cef }; 1439 #elif GMP_NUMB_BITS == 96 1440 const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc280000 }; 1441 #elif GMP_NUMB_BITS == 128 1442 const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc28000000000000 }; 1443 #elif GMP_NUMB_BITS == 256 1444 const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc2800000000000000000000000000000000000000000000 }; 1445 #endif 1446 1447 #if 0 1448 #elif GMP_NUMB_BITS == 16 1449 const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xde00, 0xac8d }; 1450 #elif GMP_NUMB_BITS == 32 1451 const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde00 }; 1452 #elif GMP_NUMB_BITS == 64 1453 const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde0000000000 }; 1454 #elif GMP_NUMB_BITS == 96 1455 const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde000000000000000000 }; 1456 #elif GMP_NUMB_BITS == 128 1457 const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde00000000000000000000000000 }; 1458 #elif GMP_NUMB_BITS == 256 1459 const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde0000000000000000000000000000000000000000000000000000000000 }; 1460 #endif 1461 1462 #if 0 1463 #elif GMP_NUMB_BITS == 16 1464 const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba10, 0x7125, 0x939b, 0x594a, 0xbde6 }; 1465 #elif GMP_NUMB_BITS == 32 1466 const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba100000, 0x939b7125, 0xbde6594a }; 1467 #elif GMP_NUMB_BITS == 64 1468 const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba10000000000000, 0xbde6594a939b7125 }; 1469 #elif GMP_NUMB_BITS == 96 1470 const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba100000 }; 1471 #elif GMP_NUMB_BITS == 128 1472 const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba10000000000000 }; 1473 #elif GMP_NUMB_BITS == 256 1474 const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba1000000000000000000000000000000000000000000000 }; 1475 #endif 1476 1477 #if 0 1478 #elif GMP_NUMB_BITS == 16 1479 const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xf600, 0xada3 }; 1480 #elif GMP_NUMB_BITS == 32 1481 const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f600 }; 1482 #elif GMP_NUMB_BITS == 64 1483 const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f60000000000 }; 1484 #elif GMP_NUMB_BITS == 96 1485 const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f6000000000000000000 }; 1486 #elif GMP_NUMB_BITS == 128 1487 const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f600000000000000000000000000 }; 1488 #elif GMP_NUMB_BITS == 256 1489 const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f60000000000000000000000000000000000000000000000000000000000 }; 1490 #endif 1491 1492 #if 0 1493 #elif GMP_NUMB_BITS == 16 1494 const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x9560, 0x2ab5, 0x9118, 0x363d, 0xbcb6 }; 1495 #elif GMP_NUMB_BITS == 32 1496 const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x95600000, 0x91182ab5, 0xbcb6363d }; 1497 #elif GMP_NUMB_BITS == 64 1498 const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x9560000000000000, 0xbcb6363d91182ab5 }; 1499 #elif GMP_NUMB_BITS == 96 1500 const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab595600000 }; 1501 #elif GMP_NUMB_BITS == 128 1502 const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab59560000000000000 }; 1503 #elif GMP_NUMB_BITS == 256 1504 const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab5956000000000000000000000000000000000000000000000 }; 1505 #endif 1506 1507 #if 0 1508 #elif GMP_NUMB_BITS == 16 1509 const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaa00, 0xaeb3 }; 1510 #elif GMP_NUMB_BITS == 32 1511 const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa00 }; 1512 #elif GMP_NUMB_BITS == 64 1513 const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa0000000000 }; 1514 #elif GMP_NUMB_BITS == 96 1515 const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa000000000000000000 }; 1516 #elif GMP_NUMB_BITS == 128 1517 const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa00000000000000000000000000 }; 1518 #elif GMP_NUMB_BITS == 256 1519 const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa0000000000000000000000000000000000000000000000000000000000 }; 1520 #endif 1521 1522 #if 0 1523 #elif GMP_NUMB_BITS == 16 1524 const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x1590, 0x4e90, 0x3a3d, 0xb859, 0xbb90 }; 1525 #elif GMP_NUMB_BITS == 32 1526 const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x15900000, 0x3a3d4e90, 0xbb90b859 }; 1527 #elif GMP_NUMB_BITS == 64 1528 const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x1590000000000000, 0xbb90b8593a3d4e90 }; 1529 #elif GMP_NUMB_BITS == 96 1530 const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e9015900000 }; 1531 #elif GMP_NUMB_BITS == 128 1532 const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e901590000000000000 }; 1533 #elif GMP_NUMB_BITS == 256 1534 const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e90159000000000000000000000000000000000000000000000 }; 1535 #endif 1536 1537 #if 0 1538 #elif GMP_NUMB_BITS == 16 1539 const mp_limb_t mpfr_l2b_45_0__tab[] = { 0x4400, 0xafbd }; 1540 #elif GMP_NUMB_BITS == 32 1541 const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd4400 }; 1542 #elif GMP_NUMB_BITS == 64 1543 const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd440000000000 }; 1544 #elif GMP_NUMB_BITS == 96 1545 const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd44000000000000000000 }; 1546 #elif GMP_NUMB_BITS == 128 1547 const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd4400000000000000000000000000 }; 1548 #elif GMP_NUMB_BITS == 256 1549 const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd440000000000000000000000000000000000000000000000000000000000 }; 1550 #endif 1551 1552 #if 0 1553 #elif GMP_NUMB_BITS == 16 1554 const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e78, 0x76f5, 0x1010, 0x4026, 0xba75 }; 1555 #elif GMP_NUMB_BITS == 32 1556 const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e780000, 0x101076f5, 0xba754026 }; 1557 #elif GMP_NUMB_BITS == 64 1558 const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e78000000000000, 0xba754026101076f5 }; 1559 #elif GMP_NUMB_BITS == 96 1560 const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e780000 }; 1561 #elif GMP_NUMB_BITS == 128 1562 const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e78000000000000 }; 1563 #elif GMP_NUMB_BITS == 256 1564 const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e7800000000000000000000000000000000000000000000 }; 1565 #endif 1566 1567 #if 0 1568 #elif GMP_NUMB_BITS == 16 1569 const mp_limb_t mpfr_l2b_46_0__tab[] = { 0x0600, 0xb0c1 }; 1570 #elif GMP_NUMB_BITS == 32 1571 const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c10600 }; 1572 #elif GMP_NUMB_BITS == 64 1573 const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c1060000000000 }; 1574 #elif GMP_NUMB_BITS == 96 1575 const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c106000000000000000000 }; 1576 #elif GMP_NUMB_BITS == 128 1577 const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c10600000000000000000000000000 }; 1578 #elif GMP_NUMB_BITS == 256 1579 const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c1060000000000000000000000000000000000000000000000000000000000 }; 1580 #endif 1581 1582 #if 0 1583 #elif GMP_NUMB_BITS == 16 1584 const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb670, 0x0512, 0x69aa, 0x3b01, 0xb963 }; 1585 #elif GMP_NUMB_BITS == 32 1586 const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb6700000, 0x69aa0512, 0xb9633b01 }; 1587 #elif GMP_NUMB_BITS == 64 1588 const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb670000000000000, 0xb9633b0169aa0512 }; 1589 #elif GMP_NUMB_BITS == 96 1590 const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b6700000 }; 1591 #elif GMP_NUMB_BITS == 128 1592 const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b670000000000000 }; 1593 #elif GMP_NUMB_BITS == 256 1594 const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b67000000000000000000000000000000000000000000000 }; 1595 #endif 1596 1597 #if 0 1598 #elif GMP_NUMB_BITS == 16 1599 const mp_limb_t mpfr_l2b_47_0__tab[] = { 0x3200, 0xb1bf }; 1600 #elif GMP_NUMB_BITS == 32 1601 const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf3200 }; 1602 #elif GMP_NUMB_BITS == 64 1603 const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf320000000000 }; 1604 #elif GMP_NUMB_BITS == 96 1605 const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf32000000000000000000 }; 1606 #elif GMP_NUMB_BITS == 128 1607 const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf3200000000000000000000000000 }; 1608 #elif GMP_NUMB_BITS == 256 1609 const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf320000000000000000000000000000000000000000000000000000000000 }; 1610 #endif 1611 1612 #if 0 1613 #elif GMP_NUMB_BITS == 16 1614 const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x5118, 0x4133, 0xfbe4, 0x21d0, 0xb85a }; 1615 #elif GMP_NUMB_BITS == 32 1616 const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x51180000, 0xfbe44133, 0xb85a21d0 }; 1617 #elif GMP_NUMB_BITS == 64 1618 const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x5118000000000000, 0xb85a21d0fbe44133 }; 1619 #elif GMP_NUMB_BITS == 96 1620 const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe4413351180000 }; 1621 #elif GMP_NUMB_BITS == 128 1622 const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe441335118000000000000 }; 1623 #elif GMP_NUMB_BITS == 256 1624 const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe44133511800000000000000000000000000000000000000000000 }; 1625 #endif 1626 1627 #if 0 1628 #elif GMP_NUMB_BITS == 16 1629 const mp_limb_t mpfr_l2b_48_0__tab[] = { 0x0400, 0xb2b8 }; 1630 #elif GMP_NUMB_BITS == 32 1631 const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b80400 }; 1632 #elif GMP_NUMB_BITS == 64 1633 const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b8040000000000 }; 1634 #elif GMP_NUMB_BITS == 96 1635 const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b804000000000000000000 }; 1636 #elif GMP_NUMB_BITS == 128 1637 const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b80400000000000000000000000000 }; 1638 #elif GMP_NUMB_BITS == 256 1639 const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b8040000000000000000000000000000000000000000000000000000000000 }; 1640 #endif 1641 1642 #if 0 1643 #elif GMP_NUMB_BITS == 16 1644 const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x0490, 0x663d, 0x960d, 0x77de, 0xb759 }; 1645 #elif GMP_NUMB_BITS == 32 1646 const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x04900000, 0x960d663d, 0xb75977de }; 1647 #elif GMP_NUMB_BITS == 64 1648 const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x0490000000000000, 0xb75977de960d663d }; 1649 #elif GMP_NUMB_BITS == 96 1650 const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d04900000 }; 1651 #elif GMP_NUMB_BITS == 128 1652 const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d0490000000000000 }; 1653 #elif GMP_NUMB_BITS == 256 1654 const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d049000000000000000000000000000000000000000000000 }; 1655 #endif 1656 1657 #if 0 1658 #elif GMP_NUMB_BITS == 16 1659 const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb400, 0xb3ab }; 1660 #elif GMP_NUMB_BITS == 32 1661 const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb400 }; 1662 #elif GMP_NUMB_BITS == 64 1663 const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb40000000000 }; 1664 #elif GMP_NUMB_BITS == 96 1665 const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb4000000000000000000 }; 1666 #elif GMP_NUMB_BITS == 128 1667 const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb400000000000000000000000000 }; 1668 #elif GMP_NUMB_BITS == 256 1669 const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb40000000000000000000000000000000000000000000000000000000000 }; 1670 #endif 1671 1672 #if 0 1673 #elif GMP_NUMB_BITS == 16 1674 const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b8, 0xa711, 0x754d, 0xc9d6, 0xb660 }; 1675 #elif GMP_NUMB_BITS == 32 1676 const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b80000, 0x754da711, 0xb660c9d6 }; 1677 #elif GMP_NUMB_BITS == 64 1678 const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b8000000000000, 0xb660c9d6754da711 }; 1679 #elif GMP_NUMB_BITS == 96 1680 const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b80000 }; 1681 #elif GMP_NUMB_BITS == 128 1682 const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b8000000000000 }; 1683 #elif GMP_NUMB_BITS == 256 1684 const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b800000000000000000000000000000000000000000000 }; 1685 #endif 1686 1687 #if 0 1688 #elif GMP_NUMB_BITS == 16 1689 const mp_limb_t mpfr_l2b_50_0__tab[] = { 0x7a00, 0xb49a }; 1690 #elif GMP_NUMB_BITS == 32 1691 const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a00 }; 1692 #elif GMP_NUMB_BITS == 64 1693 const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a0000000000 }; 1694 #elif GMP_NUMB_BITS == 96 1695 const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a000000000000000000 }; 1696 #elif GMP_NUMB_BITS == 128 1697 const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a00000000000000000000000000 }; 1698 #elif GMP_NUMB_BITS == 256 1699 const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a0000000000000000000000000000000000000000000000000000000000 }; 1700 #endif 1701 1702 #if 0 1703 #elif GMP_NUMB_BITS == 16 1704 const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f0, 0xe532, 0x7344, 0xace3, 0xb56f }; 1705 #elif GMP_NUMB_BITS == 32 1706 const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f00000, 0x7344e532, 0xb56face3 }; 1707 #elif GMP_NUMB_BITS == 64 1708 const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f0000000000000, 0xb56face37344e532 }; 1709 #elif GMP_NUMB_BITS == 96 1710 const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f00000 }; 1711 #elif GMP_NUMB_BITS == 128 1712 const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f0000000000000 }; 1713 #elif GMP_NUMB_BITS == 256 1714 const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f000000000000000000000000000000000000000000000 }; 1715 #endif 1716 1717 #if 0 1718 #elif GMP_NUMB_BITS == 16 1719 const mp_limb_t mpfr_l2b_51_0__tab[] = { 0x8400, 0xb584 }; 1720 #elif GMP_NUMB_BITS == 32 1721 const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb5848400 }; 1722 #elif GMP_NUMB_BITS == 64 1723 const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb584840000000000 }; 1724 #elif GMP_NUMB_BITS == 96 1725 const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb58484000000000000000000 }; 1726 #elif GMP_NUMB_BITS == 128 1727 const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb5848400000000000000000000000000 }; 1728 #elif GMP_NUMB_BITS == 256 1729 const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb584840000000000000000000000000000000000000000000000000000000000 }; 1730 #endif 1731 1732 #if 0 1733 #elif GMP_NUMB_BITS == 16 1734 const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x4000, 0xe9a9, 0x0f8a, 0xbde5, 0xb485 }; 1735 #elif GMP_NUMB_BITS == 32 1736 const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x40000000, 0x0f8ae9a9, 0xb485bde5 }; 1737 #elif GMP_NUMB_BITS == 64 1738 const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x4000000000000000, 0xb485bde50f8ae9a9 }; 1739 #elif GMP_NUMB_BITS == 96 1740 const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a940000000 }; 1741 #elif GMP_NUMB_BITS == 128 1742 const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a94000000000000000 }; 1743 #elif GMP_NUMB_BITS == 256 1744 const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a9400000000000000000000000000000000000000000000000 }; 1745 #endif 1746 1747 #if 0 1748 #elif GMP_NUMB_BITS == 16 1749 const mp_limb_t mpfr_l2b_52_0__tab[] = { 0x0200, 0xb66a }; 1750 #elif GMP_NUMB_BITS == 32 1751 const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a0200 }; 1752 #elif GMP_NUMB_BITS == 64 1753 const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a020000000000 }; 1754 #elif GMP_NUMB_BITS == 96 1755 const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a02000000000000000000 }; 1756 #elif GMP_NUMB_BITS == 128 1757 const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a0200000000000000000000000000 }; 1758 #elif GMP_NUMB_BITS == 256 1759 const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a020000000000000000000000000000000000000000000000000000000000 }; 1760 #endif 1761 1762 #if 0 1763 #elif GMP_NUMB_BITS == 16 1764 const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x4608, 0xfcb3, 0xeecf, 0xa0bb, 0xb3a2 }; 1765 #elif GMP_NUMB_BITS == 32 1766 const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x46080000, 0xeecffcb3, 0xb3a2a0bb }; 1767 #elif GMP_NUMB_BITS == 64 1768 const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x4608000000000000, 0xb3a2a0bbeecffcb3 }; 1769 #elif GMP_NUMB_BITS == 96 1770 const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb346080000 }; 1771 #elif GMP_NUMB_BITS == 128 1772 const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb34608000000000000 }; 1773 #elif GMP_NUMB_BITS == 256 1774 const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb3460800000000000000000000000000000000000000000000 }; 1775 #endif 1776 1777 #if 0 1778 #elif GMP_NUMB_BITS == 16 1779 const mp_limb_t mpfr_l2b_53_0__tab[] = { 0x2000, 0xb74b }; 1780 #elif GMP_NUMB_BITS == 32 1781 const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b2000 }; 1782 #elif GMP_NUMB_BITS == 64 1783 const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b200000000000 }; 1784 #elif GMP_NUMB_BITS == 96 1785 const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b20000000000000000000 }; 1786 #elif GMP_NUMB_BITS == 128 1787 const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b2000000000000000000000000000 }; 1788 #elif GMP_NUMB_BITS == 256 1789 const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b200000000000000000000000000000000000000000000000000000000000 }; 1790 #endif 1791 1792 #if 0 1793 #elif GMP_NUMB_BITS == 16 1794 const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa360, 0x8ccb, 0xeb5f, 0xffa9, 0xb2c5 }; 1795 #elif GMP_NUMB_BITS == 32 1796 const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa3600000, 0xeb5f8ccb, 0xb2c5ffa9 }; 1797 #elif GMP_NUMB_BITS == 64 1798 const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa360000000000000, 0xb2c5ffa9eb5f8ccb }; 1799 #elif GMP_NUMB_BITS == 96 1800 const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba3600000 }; 1801 #elif GMP_NUMB_BITS == 128 1802 const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba360000000000000 }; 1803 #elif GMP_NUMB_BITS == 256 1804 const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba36000000000000000000000000000000000000000000000 }; 1805 #endif 1806 1807 #if 0 1808 #elif GMP_NUMB_BITS == 16 1809 const mp_limb_t mpfr_l2b_54_0__tab[] = { 0x0a00, 0xb828 }; 1810 #elif GMP_NUMB_BITS == 32 1811 const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a00 }; 1812 #elif GMP_NUMB_BITS == 64 1813 const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a0000000000 }; 1814 #elif GMP_NUMB_BITS == 96 1815 const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a000000000000000000 }; 1816 #elif GMP_NUMB_BITS == 128 1817 const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a00000000000000000000000000 }; 1818 #elif GMP_NUMB_BITS == 256 1819 const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a0000000000000000000000000000000000000000000000000000000000 }; 1820 #endif 1821 1822 #if 0 1823 #elif GMP_NUMB_BITS == 16 1824 const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf368, 0xe940, 0x3e86, 0x8ac3, 0xb1ef }; 1825 #elif GMP_NUMB_BITS == 32 1826 const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf3680000, 0x3e86e940, 0xb1ef8ac3 }; 1827 #elif GMP_NUMB_BITS == 64 1828 const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf368000000000000, 0xb1ef8ac33e86e940 }; 1829 #elif GMP_NUMB_BITS == 96 1830 const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f3680000 }; 1831 #elif GMP_NUMB_BITS == 128 1832 const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f368000000000000 }; 1833 #elif GMP_NUMB_BITS == 256 1834 const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f36800000000000000000000000000000000000000000000 }; 1835 #endif 1836 1837 #if 0 1838 #elif GMP_NUMB_BITS == 16 1839 const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xe800, 0xb900 }; 1840 #elif GMP_NUMB_BITS == 32 1841 const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e800 }; 1842 #elif GMP_NUMB_BITS == 64 1843 const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e80000000000 }; 1844 #elif GMP_NUMB_BITS == 96 1845 const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e8000000000000000000 }; 1846 #elif GMP_NUMB_BITS == 128 1847 const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e800000000000000000000000000 }; 1848 #elif GMP_NUMB_BITS == 256 1849 const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e80000000000000000000000000000000000000000000000000000000000 }; 1850 #endif 1851 1852 #if 0 1853 #elif GMP_NUMB_BITS == 16 1854 const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a40, 0xd18e, 0xa4b5, 0xf76e, 0xb11e }; 1855 #elif GMP_NUMB_BITS == 32 1856 const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a400000, 0xa4b5d18e, 0xb11ef76e }; 1857 #elif GMP_NUMB_BITS == 64 1858 const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a40000000000000, 0xb11ef76ea4b5d18e }; 1859 #elif GMP_NUMB_BITS == 96 1860 const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a400000 }; 1861 #elif GMP_NUMB_BITS == 128 1862 const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a40000000000000 }; 1863 #elif GMP_NUMB_BITS == 256 1864 const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a4000000000000000000000000000000000000000000000 }; 1865 #endif 1866 1867 #if 0 1868 #elif GMP_NUMB_BITS == 16 1869 const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xda00, 0xb9d5 }; 1870 #elif GMP_NUMB_BITS == 32 1871 const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da00 }; 1872 #elif GMP_NUMB_BITS == 64 1873 const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da0000000000 }; 1874 #elif GMP_NUMB_BITS == 96 1875 const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da000000000000000000 }; 1876 #elif GMP_NUMB_BITS == 128 1877 const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da00000000000000000000000000 }; 1878 #elif GMP_NUMB_BITS == 256 1879 const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da0000000000000000000000000000000000000000000000000000000000 }; 1880 #endif 1881 1882 #if 0 1883 #elif GMP_NUMB_BITS == 16 1884 const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe818, 0x4c7b, 0xaa2c, 0xfff2, 0xb053 }; 1885 #elif GMP_NUMB_BITS == 32 1886 const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe8180000, 0xaa2c4c7b, 0xb053fff2 }; 1887 #elif GMP_NUMB_BITS == 64 1888 const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe818000000000000, 0xb053fff2aa2c4c7b }; 1889 #elif GMP_NUMB_BITS == 96 1890 const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be8180000 }; 1891 #elif GMP_NUMB_BITS == 128 1892 const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be818000000000000 }; 1893 #elif GMP_NUMB_BITS == 256 1894 const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be81800000000000000000000000000000000000000000000 }; 1895 #endif 1896 1897 #if 0 1898 #elif GMP_NUMB_BITS == 16 1899 const mp_limb_t mpfr_l2b_57_0__tab[] = { 0x0a00, 0xbaa7 }; 1900 #elif GMP_NUMB_BITS == 32 1901 const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a00 }; 1902 #elif GMP_NUMB_BITS == 64 1903 const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a0000000000 }; 1904 #elif GMP_NUMB_BITS == 96 1905 const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a000000000000000000 }; 1906 #elif GMP_NUMB_BITS == 128 1907 const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a00000000000000000000000000 }; 1908 #elif GMP_NUMB_BITS == 256 1909 const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a0000000000000000000000000000000000000000000000000000000000 }; 1910 #endif 1911 1912 #if 0 1913 #elif GMP_NUMB_BITS == 16 1914 const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb0, 0x814f, 0x8e2f, 0x630e, 0xaf8e }; 1915 #elif GMP_NUMB_BITS == 32 1916 const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb00000, 0x8e2f814f, 0xaf8e630e }; 1917 #elif GMP_NUMB_BITS == 64 1918 const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb0000000000000, 0xaf8e630e8e2f814f }; 1919 #elif GMP_NUMB_BITS == 96 1920 const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb00000 }; 1921 #elif GMP_NUMB_BITS == 128 1922 const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb0000000000000 }; 1923 #elif GMP_NUMB_BITS == 256 1924 const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb000000000000000000000000000000000000000000000 }; 1925 #endif 1926 1927 #if 0 1928 #elif GMP_NUMB_BITS == 16 1929 const mp_limb_t mpfr_l2b_58_0__tab[] = { 0x9600, 0xbb74 }; 1930 #elif GMP_NUMB_BITS == 32 1931 const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb749600 }; 1932 #elif GMP_NUMB_BITS == 64 1933 const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb74960000000000 }; 1934 #elif GMP_NUMB_BITS == 96 1935 const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb7496000000000000000000 }; 1936 #elif GMP_NUMB_BITS == 128 1937 const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb749600000000000000000000000000 }; 1938 #elif GMP_NUMB_BITS == 256 1939 const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb74960000000000000000000000000000000000000000000000000000000000 }; 1940 #endif 1941 1942 #if 0 1943 #elif GMP_NUMB_BITS == 16 1944 const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d18, 0x41a1, 0x6114, 0xe39d, 0xaecd }; 1945 #elif GMP_NUMB_BITS == 32 1946 const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d180000, 0x611441a1, 0xaecde39d }; 1947 #elif GMP_NUMB_BITS == 64 1948 const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d18000000000000, 0xaecde39d611441a1 }; 1949 #elif GMP_NUMB_BITS == 96 1950 const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d180000 }; 1951 #elif GMP_NUMB_BITS == 128 1952 const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d18000000000000 }; 1953 #elif GMP_NUMB_BITS == 256 1954 const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d1800000000000000000000000000000000000000000000 }; 1955 #endif 1956 1957 #if 0 1958 #elif GMP_NUMB_BITS == 16 1959 const mp_limb_t mpfr_l2b_59_0__tab[] = { 0x9e00, 0xbc3e }; 1960 #elif GMP_NUMB_BITS == 32 1961 const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e00 }; 1962 #elif GMP_NUMB_BITS == 64 1963 const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e0000000000 }; 1964 #elif GMP_NUMB_BITS == 96 1965 const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e000000000000000000 }; 1966 #elif GMP_NUMB_BITS == 128 1967 const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e00000000000000000000000000 }; 1968 #elif GMP_NUMB_BITS == 256 1969 const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e0000000000000000000000000000000000000000000000000000000000 }; 1970 #endif 1971 1972 #if 0 1973 #elif GMP_NUMB_BITS == 16 1974 const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd000, 0x97df, 0x2f97, 0x4842, 0xae12 }; 1975 #elif GMP_NUMB_BITS == 32 1976 const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd0000000, 0x2f9797df, 0xae124842 }; 1977 #elif GMP_NUMB_BITS == 64 1978 const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd000000000000000, 0xae1248422f9797df }; 1979 #elif GMP_NUMB_BITS == 96 1980 const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd0000000 }; 1981 #elif GMP_NUMB_BITS == 128 1982 const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd000000000000000 }; 1983 #elif GMP_NUMB_BITS == 256 1984 const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd00000000000000000000000000000000000000000000000 }; 1985 #endif 1986 1987 #if 0 1988 #elif GMP_NUMB_BITS == 16 1989 const mp_limb_t mpfr_l2b_60_0__tab[] = { 0x4000, 0xbd05 }; 1990 #elif GMP_NUMB_BITS == 32 1991 const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd054000 }; 1992 #elif GMP_NUMB_BITS == 64 1993 const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd05400000000000 }; 1994 #elif GMP_NUMB_BITS == 96 1995 const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd0540000000000000000000 }; 1996 #elif GMP_NUMB_BITS == 128 1997 const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd054000000000000000000000000000 }; 1998 #elif GMP_NUMB_BITS == 256 1999 const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd05400000000000000000000000000000000000000000000000000000000000 }; 2000 #endif 2001 2002 #if 0 2003 #elif GMP_NUMB_BITS == 16 2004 const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe58, 0x206d, 0x3555, 0x5b1c, 0xad5b }; 2005 #elif GMP_NUMB_BITS == 32 2006 const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe580000, 0x3555206d, 0xad5b5b1c }; 2007 #elif GMP_NUMB_BITS == 64 2008 const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe58000000000000, 0xad5b5b1c3555206d }; 2009 #elif GMP_NUMB_BITS == 96 2010 const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe580000 }; 2011 #elif GMP_NUMB_BITS == 128 2012 const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe58000000000000 }; 2013 #elif GMP_NUMB_BITS == 256 2014 const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe5800000000000000000000000000000000000000000000 }; 2015 #endif 2016 2017 #if 0 2018 #elif GMP_NUMB_BITS == 16 2019 const mp_limb_t mpfr_l2b_61_0__tab[] = { 0x9a00, 0xbdc8 }; 2020 #elif GMP_NUMB_BITS == 32 2021 const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a00 }; 2022 #elif GMP_NUMB_BITS == 64 2023 const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a0000000000 }; 2024 #elif GMP_NUMB_BITS == 96 2025 const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a000000000000000000 }; 2026 #elif GMP_NUMB_BITS == 128 2027 const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a00000000000000000000000000 }; 2028 #elif GMP_NUMB_BITS == 256 2029 const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a0000000000000000000000000000000000000000000000000000000000 }; 2030 #endif 2031 2032 #if 0 2033 #elif GMP_NUMB_BITS == 16 2034 const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df8, 0x7757, 0x31cb, 0xe982, 0xaca8 }; 2035 #elif GMP_NUMB_BITS == 32 2036 const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df80000, 0x31cb7757, 0xaca8e982 }; 2037 #elif GMP_NUMB_BITS == 64 2038 const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df8000000000000, 0xaca8e98231cb7757 }; 2039 #elif GMP_NUMB_BITS == 96 2040 const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df80000 }; 2041 #elif GMP_NUMB_BITS == 128 2042 const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df8000000000000 }; 2043 #elif GMP_NUMB_BITS == 256 2044 const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df800000000000000000000000000000000000000000000 }; 2045 #endif 2046 2047 #if 0 2048 #elif GMP_NUMB_BITS == 16 2049 const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xc800, 0xbe88 }; 2050 #elif GMP_NUMB_BITS == 32 2051 const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c800 }; 2052 #elif GMP_NUMB_BITS == 64 2053 const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c80000000000 }; 2054 #elif GMP_NUMB_BITS == 96 2055 const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c8000000000000000000 }; 2056 #elif GMP_NUMB_BITS == 128 2057 const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c800000000000000000000000000 }; 2058 #elif GMP_NUMB_BITS == 256 2059 const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c80000000000000000000000000000000000000000000000000000000000 }; 2060 #endif 2061 2062 #if 0 2063 #elif GMP_NUMB_BITS == 16 2064 const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f8, 0xf905, 0x1831, 0xc3c4, 0xabfa }; 2065 #elif GMP_NUMB_BITS == 32 2066 const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f80000, 0x1831f905, 0xabfac3c4 }; 2067 #elif GMP_NUMB_BITS == 64 2068 const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f8000000000000, 0xabfac3c41831f905 }; 2069 #elif GMP_NUMB_BITS == 96 2070 const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f80000 }; 2071 #elif GMP_NUMB_BITS == 128 2072 const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f8000000000000 }; 2073 #elif GMP_NUMB_BITS == 256 2074 const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f800000000000000000000000000000000000000000000 }; 2075 #endif 2076 2077 const __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 */ 2208 mpfr_exp_t 2209 mpfr_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 */ 2237 char* 2238 mpfr_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 2552 void mpfr_free_str (char *str) 2553 { 2554 (*__gmp_free_func) (str, strlen (str) + 1); 2555 } 2556