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