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