14a238c70SJohn Marino /* mpfr_get_str -- output a floating-point number to a string
24a238c70SJohn Marino
3*ab6d115fSJohn Marino Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
4*ab6d115fSJohn Marino Contributed by the AriC and Caramel projects, INRIA.
54a238c70SJohn Marino
64a238c70SJohn Marino This file is part of the GNU MPFR Library.
74a238c70SJohn Marino
84a238c70SJohn Marino The GNU MPFR Library is free software; you can redistribute it and/or modify
94a238c70SJohn Marino it under the terms of the GNU Lesser General Public License as published by
104a238c70SJohn Marino the Free Software Foundation; either version 3 of the License, or (at your
114a238c70SJohn Marino option) any later version.
124a238c70SJohn Marino
134a238c70SJohn Marino The GNU MPFR Library is distributed in the hope that it will be useful, but
144a238c70SJohn Marino WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
154a238c70SJohn Marino or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
164a238c70SJohn Marino License for more details.
174a238c70SJohn Marino
184a238c70SJohn Marino You should have received a copy of the GNU Lesser General Public License
194a238c70SJohn Marino along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see
204a238c70SJohn Marino http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
214a238c70SJohn Marino 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
224a238c70SJohn Marino
234a238c70SJohn Marino #define MPFR_NEED_LONGLONG_H
244a238c70SJohn Marino #include "mpfr-impl.h"
254a238c70SJohn Marino
264a238c70SJohn Marino static int mpfr_get_str_aux (char *const, mpfr_exp_t *const, mp_limb_t *const,
274a238c70SJohn Marino mp_size_t, mpfr_exp_t, long, int, size_t, mpfr_rnd_t);
284a238c70SJohn Marino
294a238c70SJohn Marino /* The implicit \0 is useless, but we do not write num_to_text[62] otherwise
304a238c70SJohn Marino g++ complains. */
314a238c70SJohn Marino static const char num_to_text36[] = "0123456789abcdefghijklmnopqrstuvwxyz";
324a238c70SJohn Marino static const char num_to_text62[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
334a238c70SJohn Marino "abcdefghijklmnopqrstuvwxyz";
344a238c70SJohn Marino
354a238c70SJohn Marino /* copy most important limbs of {op, n2} in {rp, n1} */
364a238c70SJohn Marino /* if n1 > n2 put 0 in low limbs of {rp, n1} */
374a238c70SJohn Marino #define MPN_COPY2(rp, n1, op, n2) \
384a238c70SJohn Marino if ((n1) <= (n2)) \
394a238c70SJohn Marino { \
404a238c70SJohn Marino MPN_COPY ((rp), (op) + (n2) - (n1), (n1)); \
414a238c70SJohn Marino } \
424a238c70SJohn Marino else \
434a238c70SJohn Marino { \
444a238c70SJohn Marino MPN_COPY ((rp) + (n1) - (n2), (op), (n2)); \
454a238c70SJohn Marino MPN_ZERO ((rp), (n1) - (n2)); \
464a238c70SJohn Marino }
474a238c70SJohn Marino
484a238c70SJohn Marino #define MPFR_ROUND_FAILED 3
494a238c70SJohn Marino
504a238c70SJohn Marino /* Input: an approximation r*2^f of a real Y, with |r*2^f-Y| <= 2^(e+f).
514a238c70SJohn Marino Returns if possible in the string s the mantissa corresponding to
524a238c70SJohn Marino the integer nearest to Y, within the direction rnd, and returns the
534a238c70SJohn Marino exponent in exp.
544a238c70SJohn Marino n is the number of limbs of r.
554a238c70SJohn Marino e represents the maximal error in the approximation of Y
564a238c70SJohn Marino (e < 0 iff the approximation is exact, i.e., r*2^f = Y).
574a238c70SJohn Marino b is the wanted base (2 <= b <= 62).
584a238c70SJohn Marino m is the number of wanted digits in the mantissa.
594a238c70SJohn Marino rnd is the rounding mode.
604a238c70SJohn Marino It is assumed that b^(m-1) <= Y < b^(m+1), thus the returned value
614a238c70SJohn Marino satisfies b^(m-1) <= rnd(Y) < b^(m+1).
624a238c70SJohn Marino
634a238c70SJohn Marino Rounding may fail for two reasons:
644a238c70SJohn Marino - the error is too large to determine the integer N nearest to Y
654a238c70SJohn Marino - either the number of digits of N in base b is too large (m+1),
664a238c70SJohn Marino N=2*N1+(b/2) and the rounding mode is to nearest. This can
674a238c70SJohn Marino only happen when b is even.
684a238c70SJohn Marino
694a238c70SJohn Marino Return value:
704a238c70SJohn Marino - the direction of rounding (-1, 0, 1) if rounding is possible
714a238c70SJohn Marino - -MPFR_ROUND_FAILED if rounding not possible because m+1 digits
724a238c70SJohn Marino - MPFR_ROUND_FAILED otherwise (too large error)
734a238c70SJohn Marino */
744a238c70SJohn Marino static int
mpfr_get_str_aux(char * const str,mpfr_exp_t * const exp,mp_limb_t * const r,mp_size_t n,mpfr_exp_t f,long e,int b,size_t m,mpfr_rnd_t rnd)754a238c70SJohn Marino mpfr_get_str_aux (char *const str, mpfr_exp_t *const exp, mp_limb_t *const r,
764a238c70SJohn Marino mp_size_t n, mpfr_exp_t f, long e, int b, size_t m,
774a238c70SJohn Marino mpfr_rnd_t rnd)
784a238c70SJohn Marino {
794a238c70SJohn Marino const char *num_to_text;
804a238c70SJohn Marino int dir; /* direction of the rounded result */
814a238c70SJohn Marino mp_limb_t ret = 0; /* possible carry in addition */
824a238c70SJohn Marino mp_size_t i0, j0; /* number of limbs and bits of Y */
834a238c70SJohn Marino unsigned char *str1; /* string of m+2 characters */
844a238c70SJohn Marino size_t size_s1; /* length of str1 */
854a238c70SJohn Marino mpfr_rnd_t rnd1;
864a238c70SJohn Marino size_t i;
874a238c70SJohn Marino int exact = (e < 0);
884a238c70SJohn Marino MPFR_TMP_DECL(marker);
894a238c70SJohn Marino
904a238c70SJohn Marino /* if f > 0, then the maximal error 2^(e+f) is larger than 2 so we can't
914a238c70SJohn Marino determine the integer Y */
924a238c70SJohn Marino MPFR_ASSERTN(f <= 0);
934a238c70SJohn Marino /* if f is too small, then r*2^f is smaller than 1 */
944a238c70SJohn Marino MPFR_ASSERTN(f > (-n * GMP_NUMB_BITS));
954a238c70SJohn Marino
964a238c70SJohn Marino MPFR_TMP_MARK(marker);
974a238c70SJohn Marino
984a238c70SJohn Marino num_to_text = b < 37 ? num_to_text36 : num_to_text62;
994a238c70SJohn Marino
1004a238c70SJohn Marino /* R = 2^f sum r[i]K^(i)
1014a238c70SJohn Marino r[i] = (r_(i,k-1)...r_(i,0))_2
1024a238c70SJohn Marino R = sum r(i,j)2^(j+ki+f)
1034a238c70SJohn Marino the bits from R are referenced by pairs (i,j) */
1044a238c70SJohn Marino
1054a238c70SJohn Marino /* check if is possible to round r with rnd mode
1064a238c70SJohn Marino where |r*2^f-Y| <= 2^(e+f)
1074a238c70SJohn Marino the exponent of R is: f + n*GMP_NUMB_BITS
1084a238c70SJohn Marino we must have e + f == f + n*GMP_NUMB_BITS - err
1094a238c70SJohn Marino err = n*GMP_NUMB_BITS - e
1104a238c70SJohn Marino R contains exactly -f bits after the integer point:
1114a238c70SJohn Marino to determine the nearest integer, we thus need a precision of
1124a238c70SJohn Marino n * GMP_NUMB_BITS + f */
1134a238c70SJohn Marino
1144a238c70SJohn Marino if (exact || mpfr_can_round_raw (r, n, (mp_size_t) 1,
1154a238c70SJohn Marino n * GMP_NUMB_BITS - e, MPFR_RNDN, rnd, n * GMP_NUMB_BITS + f))
1164a238c70SJohn Marino {
1174a238c70SJohn Marino /* compute the nearest integer to R */
1184a238c70SJohn Marino
1194a238c70SJohn Marino /* bit of weight 0 in R has position j0 in limb r[i0] */
1204a238c70SJohn Marino i0 = (-f) / GMP_NUMB_BITS;
1214a238c70SJohn Marino j0 = (-f) % GMP_NUMB_BITS;
1224a238c70SJohn Marino
1234a238c70SJohn Marino ret = mpfr_round_raw (r + i0, r, n * GMP_NUMB_BITS, 0,
1244a238c70SJohn Marino n * GMP_NUMB_BITS + f, rnd, &dir);
1254a238c70SJohn Marino MPFR_ASSERTD(dir != MPFR_ROUND_FAILED);
1264a238c70SJohn Marino
1274a238c70SJohn Marino /* warning: mpfr_round_raw_generic returns MPFR_EVEN_INEX (2) or
1284a238c70SJohn Marino -MPFR_EVEN_INEX (-2) in case of even rounding */
1294a238c70SJohn Marino
1304a238c70SJohn Marino if (ret) /* Y is a power of 2 */
1314a238c70SJohn Marino {
1324a238c70SJohn Marino if (j0)
1334a238c70SJohn Marino r[n - 1] = MPFR_LIMB_HIGHBIT >> (j0 - 1);
1344a238c70SJohn Marino else /* j0=0, necessarily i0 >= 1 otherwise f=0 and r is exact */
1354a238c70SJohn Marino {
1364a238c70SJohn Marino r[n - 1] = ret;
1374a238c70SJohn Marino r[--i0] = 0; /* set to zero the new low limb */
1384a238c70SJohn Marino }
1394a238c70SJohn Marino }
1404a238c70SJohn Marino else /* shift r to the right by (-f) bits (i0 already done) */
1414a238c70SJohn Marino {
1424a238c70SJohn Marino if (j0)
1434a238c70SJohn Marino mpn_rshift (r + i0, r + i0, n - i0, j0);
1444a238c70SJohn Marino }
1454a238c70SJohn Marino
1464a238c70SJohn Marino /* now the rounded value Y is in {r+i0, n-i0} */
1474a238c70SJohn Marino
1484a238c70SJohn Marino /* convert r+i0 into base b */
1494a238c70SJohn Marino str1 = (unsigned char*) MPFR_TMP_ALLOC (m + 3); /* need one extra character for mpn_get_str */
1504a238c70SJohn Marino size_s1 = mpn_get_str (str1, b, r + i0, n - i0);
1514a238c70SJohn Marino
1524a238c70SJohn Marino /* round str1 */
1534a238c70SJohn Marino MPFR_ASSERTN(size_s1 >= m);
1544a238c70SJohn Marino *exp = size_s1 - m; /* number of superfluous characters */
1554a238c70SJohn Marino
1564a238c70SJohn Marino /* if size_s1 = m + 2, necessarily we have b^(m+1) as result,
1574a238c70SJohn Marino and the result will not change */
1584a238c70SJohn Marino
1594a238c70SJohn Marino /* so we have to double-round only when size_s1 = m + 1 and
1604a238c70SJohn Marino (i) the result is inexact
1614a238c70SJohn Marino (ii) or the last digit is non-zero */
1624a238c70SJohn Marino if ((size_s1 == m + 1) && ((dir != 0) || (str1[size_s1 - 1] != 0)))
1634a238c70SJohn Marino {
1644a238c70SJohn Marino /* rounding mode */
1654a238c70SJohn Marino rnd1 = rnd;
1664a238c70SJohn Marino
1674a238c70SJohn Marino /* round to nearest case */
1684a238c70SJohn Marino if (rnd == MPFR_RNDN)
1694a238c70SJohn Marino {
1704a238c70SJohn Marino if (2 * str1[size_s1 - 1] == b)
1714a238c70SJohn Marino {
1724a238c70SJohn Marino if (dir == 0 && exact) /* exact: even rounding */
1734a238c70SJohn Marino {
1744a238c70SJohn Marino rnd1 = ((str1[size_s1 - 2] & 1) == 0)
1754a238c70SJohn Marino ? MPFR_RNDD : MPFR_RNDU;
1764a238c70SJohn Marino }
1774a238c70SJohn Marino else
1784a238c70SJohn Marino {
1794a238c70SJohn Marino /* otherwise we cannot round correctly: for example
1804a238c70SJohn Marino if b=10, we might have a mantissa of
1814a238c70SJohn Marino xxxxxxx5.00000000 which can be rounded to nearest
1824a238c70SJohn Marino to 8 digits but not to 7 */
1834a238c70SJohn Marino dir = -MPFR_ROUND_FAILED;
1844a238c70SJohn Marino MPFR_ASSERTD(dir != MPFR_EVEN_INEX);
1854a238c70SJohn Marino goto free_and_return;
1864a238c70SJohn Marino }
1874a238c70SJohn Marino }
1884a238c70SJohn Marino else if (2 * str1[size_s1 - 1] < b)
1894a238c70SJohn Marino rnd1 = MPFR_RNDD;
1904a238c70SJohn Marino else
1914a238c70SJohn Marino rnd1 = MPFR_RNDU;
1924a238c70SJohn Marino }
1934a238c70SJohn Marino
1944a238c70SJohn Marino /* now rnd1 is either
1954a238c70SJohn Marino MPFR_RNDD or MPFR_RNDZ -> truncate, or
1964a238c70SJohn Marino MPFR_RNDU or MPFR_RNDA -> round toward infinity */
1974a238c70SJohn Marino
1984a238c70SJohn Marino /* round away from zero */
1994a238c70SJohn Marino if (rnd1 == MPFR_RNDU || rnd1 == MPFR_RNDA)
2004a238c70SJohn Marino {
2014a238c70SJohn Marino if (str1[size_s1 - 1] != 0)
2024a238c70SJohn Marino {
2034a238c70SJohn Marino /* the carry cannot propagate to the whole string, since
2044a238c70SJohn Marino Y = x*b^(m-g) < 2*b^m <= b^(m+1)-b
2054a238c70SJohn Marino where x is the input float */
2064a238c70SJohn Marino MPFR_ASSERTN(size_s1 >= 2);
2074a238c70SJohn Marino i = size_s1 - 2;
2084a238c70SJohn Marino while (str1[i] == b - 1)
2094a238c70SJohn Marino {
2104a238c70SJohn Marino MPFR_ASSERTD(i > 0);
2114a238c70SJohn Marino str1[i--] = 0;
2124a238c70SJohn Marino }
2134a238c70SJohn Marino str1[i]++;
2144a238c70SJohn Marino }
2154a238c70SJohn Marino dir = 1;
2164a238c70SJohn Marino }
2174a238c70SJohn Marino /* round toward zero (truncate) */
2184a238c70SJohn Marino else
2194a238c70SJohn Marino dir = -1;
2204a238c70SJohn Marino }
2214a238c70SJohn Marino
2224a238c70SJohn Marino /* copy str1 into str and convert to characters (digits and
2234a238c70SJohn Marino lowercase letters from the source character set) */
2244a238c70SJohn Marino for (i = 0; i < m; i++)
2254a238c70SJohn Marino str[i] = num_to_text[(int) str1[i]]; /* str1[i] is an unsigned char */
2264a238c70SJohn Marino str[m] = 0;
2274a238c70SJohn Marino }
2284a238c70SJohn Marino /* mpfr_can_round_raw failed: rounding is not possible */
2294a238c70SJohn Marino else
2304a238c70SJohn Marino {
2314a238c70SJohn Marino dir = MPFR_ROUND_FAILED; /* should be different from MPFR_EVEN_INEX */
2324a238c70SJohn Marino MPFR_ASSERTD(dir != MPFR_EVEN_INEX);
2334a238c70SJohn Marino }
2344a238c70SJohn Marino
2354a238c70SJohn Marino free_and_return:
2364a238c70SJohn Marino MPFR_TMP_FREE(marker);
2374a238c70SJohn Marino
2384a238c70SJohn Marino return dir;
2394a238c70SJohn Marino }
2404a238c70SJohn Marino
2414a238c70SJohn Marino /***************************************************************************
2424a238c70SJohn Marino * __gmpfr_l2b[b-2][0] is a 23-bit upper approximation to log(b)/log(2), *
2434a238c70SJohn Marino * __gmpfr_l2b[b-2][1] is a 76-bit upper approximation to log(2)/log(b). *
2444a238c70SJohn Marino * The following code is generated by tests/tl2b (with an argument). *
2454a238c70SJohn Marino ***************************************************************************/
2464a238c70SJohn Marino
2474a238c70SJohn Marino #if 0
2484a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
2494a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x0000, 0x8000 };
2504a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
2514a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x80000000 };
2524a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
2534a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x8000000000000000 };
2544a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
2554a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x800000000000000000000000 };
2564a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
2574a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x80000000000000000000000000000000 };
2584a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
2594a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
2604a238c70SJohn Marino #endif
2614a238c70SJohn Marino
2624a238c70SJohn Marino #if 0
2634a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
2644a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 };
2654a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
2664a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 };
2674a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
2684a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x0000000000000000, 0x8000000000000000 };
2694a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
2704a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x800000000000000000000000 };
2714a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
2724a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x80000000000000000000000000000000 };
2734a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
2744a238c70SJohn Marino const mp_limb_t mpfr_l2b_2_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
2754a238c70SJohn Marino #endif
2764a238c70SJohn Marino
2774a238c70SJohn Marino #if 0
2784a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
2794a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_0__tab[] = { 0x0e00, 0xcae0 };
2804a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
2814a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e00 };
2824a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
2834a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e0000000000 };
2844a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
2854a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e000000000000000000 };
2864a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
2874a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e00000000000000000000000000 };
2884a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
2894a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_0__tab[] = { 0xcae00e0000000000000000000000000000000000000000000000000000000000 };
2904a238c70SJohn Marino #endif
2914a238c70SJohn Marino
2924a238c70SJohn Marino #if 0
2934a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
2944a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x0448, 0xe94e, 0xa9a9, 0x9cc1, 0xa184 };
2954a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
2964a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x04480000, 0xa9a9e94e, 0xa1849cc1 };
2974a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
2984a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_1__tab[] = { 0x0448000000000000, 0xa1849cc1a9a9e94e };
2994a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
3004a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e04480000 };
3014a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
3024a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e0448000000000000 };
3034a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
3044a238c70SJohn Marino const mp_limb_t mpfr_l2b_3_1__tab[] = { 0xa1849cc1a9a9e94e044800000000000000000000000000000000000000000000 };
3054a238c70SJohn Marino #endif
3064a238c70SJohn Marino
3074a238c70SJohn Marino #if 0
3084a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
3094a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x0000, 0x8000 };
3104a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
3114a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x80000000 };
3124a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
3134a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x8000000000000000 };
3144a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
3154a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x800000000000000000000000 };
3164a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
3174a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x80000000000000000000000000000000 };
3184a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
3194a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
3204a238c70SJohn Marino #endif
3214a238c70SJohn Marino
3224a238c70SJohn Marino #if 0
3234a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
3244a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 };
3254a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
3264a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 };
3274a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
3284a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x0000000000000000, 0x8000000000000000 };
3294a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
3304a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x800000000000000000000000 };
3314a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
3324a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x80000000000000000000000000000000 };
3334a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
3344a238c70SJohn Marino const mp_limb_t mpfr_l2b_4_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
3354a238c70SJohn Marino #endif
3364a238c70SJohn Marino
3374a238c70SJohn Marino #if 0
3384a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
3394a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x7a00, 0x949a };
3404a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
3414a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a00 };
3424a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
3434a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a0000000000 };
3444a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
3454a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a000000000000000000 };
3464a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
3474a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a00000000000000000000000000 };
3484a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
3494a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_0__tab[] = { 0x949a7a0000000000000000000000000000000000000000000000000000000000 };
3504a238c70SJohn Marino #endif
3514a238c70SJohn Marino
3524a238c70SJohn Marino #if 0
3534a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
3544a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b8, 0x9728, 0x287b, 0xa348, 0xdc81 };
3554a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
3564a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b80000, 0x287b9728, 0xdc81a348 };
3574a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
3584a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_1__tab[] = { 0x67b8000000000000, 0xdc81a348287b9728 };
3594a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
3604a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b80000 };
3614a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
3624a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b8000000000000 };
3634a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
3644a238c70SJohn Marino const mp_limb_t mpfr_l2b_5_1__tab[] = { 0xdc81a348287b972867b800000000000000000000000000000000000000000000 };
3654a238c70SJohn Marino #endif
3664a238c70SJohn Marino
3674a238c70SJohn Marino #if 0
3684a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
3694a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_0__tab[] = { 0x0800, 0xa570 };
3704a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
3714a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa5700800 };
3724a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
3734a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa570080000000000 };
3744a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
3754a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa57008000000000000000000 };
3764a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
3774a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa5700800000000000000000000000000 };
3784a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
3794a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_0__tab[] = { 0xa570080000000000000000000000000000000000000000000000000000000000 };
3804a238c70SJohn Marino #endif
3814a238c70SJohn Marino
3824a238c70SJohn Marino #if 0
3834a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
3844a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff10, 0xf9e9, 0xe054, 0x9236, 0xc611 };
3854a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
3864a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff100000, 0xe054f9e9, 0xc6119236 };
3874a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
3884a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xff10000000000000, 0xc6119236e054f9e9 };
3894a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
3904a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff100000 };
3914a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
3924a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff10000000000000 };
3934a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
3944a238c70SJohn Marino const mp_limb_t mpfr_l2b_6_1__tab[] = { 0xc6119236e054f9e9ff1000000000000000000000000000000000000000000000 };
3954a238c70SJohn Marino #endif
3964a238c70SJohn Marino
3974a238c70SJohn Marino #if 0
3984a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
3994a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb400, 0xb3ab };
4004a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
4014a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb400 };
4024a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
4034a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb40000000000 };
4044a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
4054a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb4000000000000000000 };
4064a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
4074a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb400000000000000000000000000 };
4084a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
4094a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_0__tab[] = { 0xb3abb40000000000000000000000000000000000000000000000000000000000 };
4104a238c70SJohn Marino #endif
4114a238c70SJohn Marino
4124a238c70SJohn Marino #if 0
4134a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
4144a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b8, 0xa711, 0x754d, 0xc9d6, 0xb660 };
4154a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
4164a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b80000, 0x754da711, 0xb660c9d6 };
4174a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
4184a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_1__tab[] = { 0x37b8000000000000, 0xb660c9d6754da711 };
4194a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
4204a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b80000 };
4214a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
4224a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b8000000000000 };
4234a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
4244a238c70SJohn Marino const mp_limb_t mpfr_l2b_7_1__tab[] = { 0xb660c9d6754da71137b800000000000000000000000000000000000000000000 };
4254a238c70SJohn Marino #endif
4264a238c70SJohn Marino
4274a238c70SJohn Marino #if 0
4284a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
4294a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_0__tab[] = { 0x0000, 0xc000 };
4304a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
4314a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc0000000 };
4324a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
4334a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc000000000000000 };
4344a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
4354a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc00000000000000000000000 };
4364a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
4374a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc0000000000000000000000000000000 };
4384a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
4394a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_0__tab[] = { 0xc000000000000000000000000000000000000000000000000000000000000000 };
4404a238c70SJohn Marino #endif
4414a238c70SJohn Marino
4424a238c70SJohn Marino #if 0
4434a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
4444a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab0, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa };
4454a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
4464a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab00000, 0xaaaaaaaa, 0xaaaaaaaa };
4474a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
4484a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaab0000000000000, 0xaaaaaaaaaaaaaaaa };
4494a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
4504a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab00000 };
4514a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
4524a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab0000000000000 };
4534a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
4544a238c70SJohn Marino const mp_limb_t mpfr_l2b_8_1__tab[] = { 0xaaaaaaaaaaaaaaaaaab000000000000000000000000000000000000000000000 };
4554a238c70SJohn Marino #endif
4564a238c70SJohn Marino
4574a238c70SJohn Marino #if 0
4584a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
4594a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_0__tab[] = { 0x0e00, 0xcae0 };
4604a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
4614a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e00 };
4624a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
4634a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e0000000000 };
4644a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
4654a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e000000000000000000 };
4664a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
4674a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e00000000000000000000000000 };
4684a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
4694a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_0__tab[] = { 0xcae00e0000000000000000000000000000000000000000000000000000000000 };
4704a238c70SJohn Marino #endif
4714a238c70SJohn Marino
4724a238c70SJohn Marino #if 0
4734a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
4744a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x0448, 0xe94e, 0xa9a9, 0x9cc1, 0xa184 };
4754a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
4764a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x04480000, 0xa9a9e94e, 0xa1849cc1 };
4774a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
4784a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_1__tab[] = { 0x0448000000000000, 0xa1849cc1a9a9e94e };
4794a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
4804a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e04480000 };
4814a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
4824a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e0448000000000000 };
4834a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
4844a238c70SJohn Marino const mp_limb_t mpfr_l2b_9_1__tab[] = { 0xa1849cc1a9a9e94e044800000000000000000000000000000000000000000000 };
4854a238c70SJohn Marino #endif
4864a238c70SJohn Marino
4874a238c70SJohn Marino #if 0
4884a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
4894a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_0__tab[] = { 0x7a00, 0xd49a };
4904a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
4914a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a00 };
4924a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
4934a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a0000000000 };
4944a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
4954a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a000000000000000000 };
4964a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
4974a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a00000000000000000000000000 };
4984a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
4994a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_0__tab[] = { 0xd49a7a0000000000000000000000000000000000000000000000000000000000 };
5004a238c70SJohn Marino #endif
5014a238c70SJohn Marino
5024a238c70SJohn Marino #if 0
5034a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
5044a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f90, 0xf798, 0xfbcf, 0x9a84, 0x9a20 };
5054a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
5064a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f900000, 0xfbcff798, 0x9a209a84 };
5074a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
5084a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x8f90000000000000, 0x9a209a84fbcff798 };
5094a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
5104a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f900000 };
5114a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
5124a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f90000000000000 };
5134a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
5144a238c70SJohn Marino const mp_limb_t mpfr_l2b_10_1__tab[] = { 0x9a209a84fbcff7988f9000000000000000000000000000000000000000000000 };
5154a238c70SJohn Marino #endif
5164a238c70SJohn Marino
5174a238c70SJohn Marino #if 0
5184a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
5194a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_0__tab[] = { 0x5400, 0xdd67 };
5204a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
5214a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd675400 };
5224a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
5234a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd67540000000000 };
5244a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
5254a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd6754000000000000000000 };
5264a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
5274a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd675400000000000000000000000000 };
5284a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
5294a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_0__tab[] = { 0xdd67540000000000000000000000000000000000000000000000000000000000 };
5304a238c70SJohn Marino #endif
5314a238c70SJohn Marino
5324a238c70SJohn Marino #if 0
5334a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
5344a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe170, 0x9d10, 0xeb22, 0x4e0e, 0x9400 };
5354a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
5364a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe1700000, 0xeb229d10, 0x94004e0e };
5374a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
5384a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_1__tab[] = { 0xe170000000000000, 0x94004e0eeb229d10 };
5394a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
5404a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e1700000 };
5414a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
5424a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e170000000000000 };
5434a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
5444a238c70SJohn Marino const mp_limb_t mpfr_l2b_11_1__tab[] = { 0x94004e0eeb229d10e17000000000000000000000000000000000000000000000 };
5454a238c70SJohn Marino #endif
5464a238c70SJohn Marino
5474a238c70SJohn Marino #if 0
5484a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
5494a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_0__tab[] = { 0x0800, 0xe570 };
5504a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
5514a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe5700800 };
5524a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
5534a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe570080000000000 };
5544a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
5554a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe57008000000000000000000 };
5564a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
5574a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe5700800000000000000000000000000 };
5584a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
5594a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_0__tab[] = { 0xe570080000000000000000000000000000000000000000000000000000000000 };
5604a238c70SJohn Marino #endif
5614a238c70SJohn Marino
5624a238c70SJohn Marino #if 0
5634a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
5644a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe28, 0x1c24, 0x0b03, 0x9c1a, 0x8ed1 };
5654a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
5664a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe280000, 0x0b031c24, 0x8ed19c1a };
5674a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
5684a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_1__tab[] = { 0xfe28000000000000, 0x8ed19c1a0b031c24 };
5694a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
5704a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe280000 };
5714a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
5724a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe28000000000000 };
5734a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
5744a238c70SJohn Marino const mp_limb_t mpfr_l2b_12_1__tab[] = { 0x8ed19c1a0b031c24fe2800000000000000000000000000000000000000000000 };
5754a238c70SJohn Marino #endif
5764a238c70SJohn Marino
5774a238c70SJohn Marino #if 0
5784a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
5794a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_0__tab[] = { 0x0200, 0xecd4 };
5804a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
5814a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd40200 };
5824a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
5834a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd4020000000000 };
5844a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
5854a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd402000000000000000000 };
5864a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
5874a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd40200000000000000000000000000 };
5884a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
5894a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_0__tab[] = { 0xecd4020000000000000000000000000000000000000000000000000000000000 };
5904a238c70SJohn Marino #endif
5914a238c70SJohn Marino
5924a238c70SJohn Marino #if 0
5934a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
5944a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f8, 0xf7b4, 0xcb20, 0xa7c6, 0x8a5c };
5954a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
5964a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f80000, 0xcb20f7b4, 0x8a5ca7c6 };
5974a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
5984a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x57f8000000000000, 0x8a5ca7c6cb20f7b4 };
5994a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
6004a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f80000 };
6014a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
6024a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f8000000000000 };
6034a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
6044a238c70SJohn Marino const mp_limb_t mpfr_l2b_13_1__tab[] = { 0x8a5ca7c6cb20f7b457f800000000000000000000000000000000000000000000 };
6054a238c70SJohn Marino #endif
6064a238c70SJohn Marino
6074a238c70SJohn Marino #if 0
6084a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
6094a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xb400, 0xf3ab };
6104a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
6114a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb400 };
6124a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
6134a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb40000000000 };
6144a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
6154a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb4000000000000000000 };
6164a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
6174a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb400000000000000000000000000 };
6184a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
6194a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_0__tab[] = { 0xf3abb40000000000000000000000000000000000000000000000000000000000 };
6204a238c70SJohn Marino #endif
6214a238c70SJohn Marino
6224a238c70SJohn Marino #if 0
6234a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
6244a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a8, 0x5cab, 0x96b5, 0xfff6, 0x8679 };
6254a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
6264a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a80000, 0x96b55cab, 0x8679fff6 };
6274a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
6284a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x85a8000000000000, 0x8679fff696b55cab };
6294a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
6304a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a80000 };
6314a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
6324a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a8000000000000 };
6334a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
6344a238c70SJohn Marino const mp_limb_t mpfr_l2b_14_1__tab[] = { 0x8679fff696b55cab85a800000000000000000000000000000000000000000000 };
6354a238c70SJohn Marino #endif
6364a238c70SJohn Marino
6374a238c70SJohn Marino #if 0
6384a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
6394a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_0__tab[] = { 0x8000, 0xfa0a };
6404a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
6414a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a8000 };
6424a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
6434a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a800000000000 };
6444a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
6454a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a80000000000000000000 };
6464a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
6474a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a8000000000000000000000000000 };
6484a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
6494a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_0__tab[] = { 0xfa0a800000000000000000000000000000000000000000000000000000000000 };
6504a238c70SJohn Marino #endif
6514a238c70SJohn Marino
6524a238c70SJohn Marino #if 0
6534a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
6544a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f80, 0xa6aa, 0x69f0, 0xee23, 0x830c };
6554a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
6564a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f800000, 0x69f0a6aa, 0x830cee23 };
6574a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
6584a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x6f80000000000000, 0x830cee2369f0a6aa };
6594a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
6604a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f800000 };
6614a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
6624a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f80000000000000 };
6634a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
6644a238c70SJohn Marino const mp_limb_t mpfr_l2b_15_1__tab[] = { 0x830cee2369f0a6aa6f8000000000000000000000000000000000000000000000 };
6654a238c70SJohn Marino #endif
6664a238c70SJohn Marino
6674a238c70SJohn Marino #if 0
6684a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
6694a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x0000, 0x8000 };
6704a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
6714a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x80000000 };
6724a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
6734a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x8000000000000000 };
6744a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
6754a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x800000000000000000000000 };
6764a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
6774a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x80000000000000000000000000000000 };
6784a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
6794a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_0__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
6804a238c70SJohn Marino #endif
6814a238c70SJohn Marino
6824a238c70SJohn Marino #if 0
6834a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
6844a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x8000 };
6854a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
6864a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x00000000, 0x00000000, 0x80000000 };
6874a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
6884a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x0000000000000000, 0x8000000000000000 };
6894a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
6904a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x800000000000000000000000 };
6914a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
6924a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x80000000000000000000000000000000 };
6934a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
6944a238c70SJohn Marino const mp_limb_t mpfr_l2b_16_1__tab[] = { 0x8000000000000000000000000000000000000000000000000000000000000000 };
6954a238c70SJohn Marino #endif
6964a238c70SJohn Marino
6974a238c70SJohn Marino #if 0
6984a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
6994a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x8000, 0x82cc };
7004a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
7014a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc8000 };
7024a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
7034a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc800000000000 };
7044a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
7054a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc80000000000000000000 };
7064a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
7074a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc8000000000000000000000000000 };
7084a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
7094a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_0__tab[] = { 0x82cc800000000000000000000000000000000000000000000000000000000000 };
7104a238c70SJohn Marino #endif
7114a238c70SJohn Marino
7124a238c70SJohn Marino #if 0
7134a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
7144a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x8720, 0x259b, 0x62c4, 0xabf5, 0xfa85 };
7154a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
7164a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x87200000, 0x62c4259b, 0xfa85abf5 };
7174a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
7184a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_1__tab[] = { 0x8720000000000000, 0xfa85abf562c4259b };
7194a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
7204a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b87200000 };
7214a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
7224a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b8720000000000000 };
7234a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
7244a238c70SJohn Marino const mp_limb_t mpfr_l2b_17_1__tab[] = { 0xfa85abf562c4259b872000000000000000000000000000000000000000000000 };
7254a238c70SJohn Marino #endif
7264a238c70SJohn Marino
7274a238c70SJohn Marino #if 0
7284a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
7294a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x0800, 0x8570 };
7304a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
7314a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x85700800 };
7324a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
7334a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x8570080000000000 };
7344a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
7354a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x857008000000000000000000 };
7364a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
7374a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x85700800000000000000000000000000 };
7384a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
7394a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_0__tab[] = { 0x8570080000000000000000000000000000000000000000000000000000000000 };
7404a238c70SJohn Marino #endif
7414a238c70SJohn Marino
7424a238c70SJohn Marino #if 0
7434a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
7444a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x3698, 0x1378, 0x5537, 0x6634, 0xf591 };
7454a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
7464a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x36980000, 0x55371378, 0xf5916634 };
7474a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
7484a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_1__tab[] = { 0x3698000000000000, 0xf591663455371378 };
7494a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
7504a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf59166345537137836980000 };
7514a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
7524a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf5916634553713783698000000000000 };
7534a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
7544a238c70SJohn Marino const mp_limb_t mpfr_l2b_18_1__tab[] = { 0xf591663455371378369800000000000000000000000000000000000000000000 };
7554a238c70SJohn Marino #endif
7564a238c70SJohn Marino
7574a238c70SJohn Marino #if 0
7584a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
7594a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x0600, 0x87ef };
7604a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
7614a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef0600 };
7624a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
7634a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef060000000000 };
7644a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
7654a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef06000000000000000000 };
7664a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
7674a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef0600000000000000000000000000 };
7684a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
7694a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_0__tab[] = { 0x87ef060000000000000000000000000000000000000000000000000000000000 };
7704a238c70SJohn Marino #endif
7714a238c70SJohn Marino
7724a238c70SJohn Marino #if 0
7734a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
7744a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db8, 0x558c, 0x62ed, 0x08c0, 0xf10f };
7754a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
7764a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db80000, 0x62ed558c, 0xf10f08c0 };
7774a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
7784a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_1__tab[] = { 0x0db8000000000000, 0xf10f08c062ed558c };
7794a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
7804a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db80000 };
7814a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
7824a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db8000000000000 };
7834a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
7844a238c70SJohn Marino const mp_limb_t mpfr_l2b_19_1__tab[] = { 0xf10f08c062ed558c0db800000000000000000000000000000000000000000000 };
7854a238c70SJohn Marino #endif
7864a238c70SJohn Marino
7874a238c70SJohn Marino #if 0
7884a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
7894a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x3e00, 0x8a4d };
7904a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
7914a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e00 };
7924a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
7934a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e0000000000 };
7944a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
7954a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e000000000000000000 };
7964a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
7974a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e00000000000000000000000000 };
7984a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
7994a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_0__tab[] = { 0x8a4d3e0000000000000000000000000000000000000000000000000000000000 };
8004a238c70SJohn Marino #endif
8014a238c70SJohn Marino
8024a238c70SJohn Marino #if 0
8034a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
8044a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b40, 0xa71c, 0x1cc1, 0x690a, 0xecee };
8054a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
8064a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b400000, 0x1cc1a71c, 0xecee690a };
8074a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
8084a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_1__tab[] = { 0x0b40000000000000, 0xecee690a1cc1a71c };
8094a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
8104a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b400000 };
8114a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
8124a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b40000000000000 };
8134a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
8144a238c70SJohn Marino const mp_limb_t mpfr_l2b_20_1__tab[] = { 0xecee690a1cc1a71c0b4000000000000000000000000000000000000000000000 };
8154a238c70SJohn Marino #endif
8164a238c70SJohn Marino
8174a238c70SJohn Marino #if 0
8184a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
8194a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_0__tab[] = { 0xde00, 0x8c8d };
8204a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
8214a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde00 };
8224a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
8234a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde0000000000 };
8244a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
8254a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde000000000000000000 };
8264a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
8274a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde00000000000000000000000000 };
8284a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
8294a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_0__tab[] = { 0x8c8dde0000000000000000000000000000000000000000000000000000000000 };
8304a238c70SJohn Marino #endif
8314a238c70SJohn Marino
8324a238c70SJohn Marino #if 0
8334a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
8344a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x4108, 0x6b26, 0xb3d0, 0x63c1, 0xe922 };
8354a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
8364a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x41080000, 0xb3d06b26, 0xe92263c1 };
8374a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
8384a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_1__tab[] = { 0x4108000000000000, 0xe92263c1b3d06b26 };
8394a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
8404a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b2641080000 };
8414a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
8424a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b264108000000000000 };
8434a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
8444a238c70SJohn Marino const mp_limb_t mpfr_l2b_21_1__tab[] = { 0xe92263c1b3d06b26410800000000000000000000000000000000000000000000 };
8454a238c70SJohn Marino #endif
8464a238c70SJohn Marino
8474a238c70SJohn Marino #if 0
8484a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
8494a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_0__tab[] = { 0xaa00, 0x8eb3 };
8504a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
8514a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa00 };
8524a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
8534a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa0000000000 };
8544a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
8554a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa000000000000000000 };
8564a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
8574a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa00000000000000000000000000 };
8584a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
8594a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_0__tab[] = { 0x8eb3aa0000000000000000000000000000000000000000000000000000000000 };
8604a238c70SJohn Marino #endif
8614a238c70SJohn Marino
8624a238c70SJohn Marino #if 0
8634a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
8644a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe8, 0xf061, 0x60b9, 0x2c4d, 0xe5a0 };
8654a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
8664a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe80000, 0x60b9f061, 0xe5a02c4d };
8674a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
8684a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xdbe8000000000000, 0xe5a02c4d60b9f061 };
8694a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
8704a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe80000 };
8714a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
8724a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe8000000000000 };
8734a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
8744a238c70SJohn Marino const mp_limb_t mpfr_l2b_22_1__tab[] = { 0xe5a02c4d60b9f061dbe800000000000000000000000000000000000000000000 };
8754a238c70SJohn Marino #endif
8764a238c70SJohn Marino
8774a238c70SJohn Marino #if 0
8784a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
8794a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x0600, 0x90c1 };
8804a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
8814a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c10600 };
8824a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
8834a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c1060000000000 };
8844a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
8854a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c106000000000000000000 };
8864a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
8874a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c10600000000000000000000000000 };
8884a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
8894a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_0__tab[] = { 0x90c1060000000000000000000000000000000000000000000000000000000000 };
8904a238c70SJohn Marino #endif
8914a238c70SJohn Marino
8924a238c70SJohn Marino #if 0
8934a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
8944a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e0, 0x586a, 0x46b9, 0xcadd, 0xe25e };
8954a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
8964a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e00000, 0x46b9586a, 0xe25ecadd };
8974a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
8984a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xc3e0000000000000, 0xe25ecadd46b9586a };
8994a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
9004a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e00000 };
9014a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
9024a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e0000000000000 };
9034a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
9044a238c70SJohn Marino const mp_limb_t mpfr_l2b_23_1__tab[] = { 0xe25ecadd46b9586ac3e000000000000000000000000000000000000000000000 };
9054a238c70SJohn Marino #endif
9064a238c70SJohn Marino
9074a238c70SJohn Marino #if 0
9084a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
9094a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x0400, 0x92b8 };
9104a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
9114a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b80400 };
9124a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
9134a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b8040000000000 };
9144a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
9154a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b804000000000000000000 };
9164a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
9174a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b80400000000000000000000000000 };
9184a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
9194a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_0__tab[] = { 0x92b8040000000000000000000000000000000000000000000000000000000000 };
9204a238c70SJohn Marino #endif
9214a238c70SJohn Marino
9224a238c70SJohn Marino #if 0
9234a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
9244a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x3668, 0x7263, 0xc7c6, 0xbb44, 0xdf56 };
9254a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
9264a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x36680000, 0xc7c67263, 0xdf56bb44 };
9274a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
9284a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_1__tab[] = { 0x3668000000000000, 0xdf56bb44c7c67263 };
9294a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
9304a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c6726336680000 };
9314a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
9324a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c672633668000000000000 };
9334a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
9344a238c70SJohn Marino const mp_limb_t mpfr_l2b_24_1__tab[] = { 0xdf56bb44c7c67263366800000000000000000000000000000000000000000000 };
9354a238c70SJohn Marino #endif
9364a238c70SJohn Marino
9374a238c70SJohn Marino #if 0
9384a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
9394a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x7a00, 0x949a };
9404a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
9414a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a00 };
9424a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
9434a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a0000000000 };
9444a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
9454a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a000000000000000000 };
9464a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
9474a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a00000000000000000000000000 };
9484a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
9494a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_0__tab[] = { 0x949a7a0000000000000000000000000000000000000000000000000000000000 };
9504a238c70SJohn Marino #endif
9514a238c70SJohn Marino
9524a238c70SJohn Marino #if 0
9534a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
9544a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b8, 0x9728, 0x287b, 0xa348, 0xdc81 };
9554a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
9564a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b80000, 0x287b9728, 0xdc81a348 };
9574a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
9584a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_1__tab[] = { 0x67b8000000000000, 0xdc81a348287b9728 };
9594a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
9604a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b80000 };
9614a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
9624a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b8000000000000 };
9634a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
9644a238c70SJohn Marino const mp_limb_t mpfr_l2b_25_1__tab[] = { 0xdc81a348287b972867b800000000000000000000000000000000000000000000 };
9654a238c70SJohn Marino #endif
9664a238c70SJohn Marino
9674a238c70SJohn Marino #if 0
9684a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
9694a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x0200, 0x966a };
9704a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
9714a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a0200 };
9724a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
9734a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a020000000000 };
9744a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
9754a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a02000000000000000000 };
9764a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
9774a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a0200000000000000000000000000 };
9784a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
9794a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_0__tab[] = { 0x966a020000000000000000000000000000000000000000000000000000000000 };
9804a238c70SJohn Marino #endif
9814a238c70SJohn Marino
9824a238c70SJohn Marino #if 0
9834a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
9844a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x6458, 0x78a4, 0x7583, 0x19f9, 0xd9da };
9854a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
9864a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x64580000, 0x758378a4, 0xd9da19f9 };
9874a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
9884a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_1__tab[] = { 0x6458000000000000, 0xd9da19f9758378a4 };
9894a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
9904a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a464580000 };
9914a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
9924a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a46458000000000000 };
9934a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
9944a238c70SJohn Marino const mp_limb_t mpfr_l2b_26_1__tab[] = { 0xd9da19f9758378a4645800000000000000000000000000000000000000000000 };
9954a238c70SJohn Marino #endif
9964a238c70SJohn Marino
9974a238c70SJohn Marino #if 0
9984a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
9994a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x0a00, 0x9828 };
10004a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
10014a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a00 };
10024a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
10034a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a0000000000 };
10044a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
10054a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a000000000000000000 };
10064a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
10074a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a00000000000000000000000000 };
10084a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
10094a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_0__tab[] = { 0x98280a0000000000000000000000000000000000000000000000000000000000 };
10104a238c70SJohn Marino #endif
10114a238c70SJohn Marino
10124a238c70SJohn Marino #if 0
10134a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
10144a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b08, 0xe1bd, 0xe237, 0x7bac, 0xd75b };
10154a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
10164a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b080000, 0xe237e1bd, 0xd75b7bac };
10174a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
10184a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_1__tab[] = { 0x5b08000000000000, 0xd75b7bace237e1bd };
10194a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
10204a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b080000 };
10214a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
10224a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b08000000000000 };
10234a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
10244a238c70SJohn Marino const mp_limb_t mpfr_l2b_27_1__tab[] = { 0xd75b7bace237e1bd5b0800000000000000000000000000000000000000000000 };
10254a238c70SJohn Marino #endif
10264a238c70SJohn Marino
10274a238c70SJohn Marino #if 0
10284a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
10294a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_0__tab[] = { 0xda00, 0x99d5 };
10304a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
10314a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da00 };
10324a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
10334a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da0000000000 };
10344a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
10354a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da000000000000000000 };
10364a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
10374a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da00000000000000000000000000 };
10384a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
10394a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_0__tab[] = { 0x99d5da0000000000000000000000000000000000000000000000000000000000 };
10404a238c70SJohn Marino #endif
10414a238c70SJohn Marino
10424a238c70SJohn Marino #if 0
10434a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
10444a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb8, 0xe8b8, 0x71df, 0xc758, 0xd501 };
10454a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
10464a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb80000, 0x71dfe8b8, 0xd501c758 };
10474a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
10484a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xdeb8000000000000, 0xd501c75871dfe8b8 };
10494a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
10504a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb80000 };
10514a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
10524a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb8000000000000 };
10534a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
10544a238c70SJohn Marino const mp_limb_t mpfr_l2b_28_1__tab[] = { 0xd501c75871dfe8b8deb800000000000000000000000000000000000000000000 };
10554a238c70SJohn Marino #endif
10564a238c70SJohn Marino
10574a238c70SJohn Marino #if 0
10584a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
10594a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9600, 0x9b74 };
10604a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
10614a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b749600 };
10624a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
10634a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b74960000000000 };
10644a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
10654a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b7496000000000000000000 };
10664a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
10674a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b749600000000000000000000000000 };
10684a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
10694a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_0__tab[] = { 0x9b74960000000000000000000000000000000000000000000000000000000000 };
10704a238c70SJohn Marino #endif
10714a238c70SJohn Marino
10724a238c70SJohn Marino #if 0
10734a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
10744a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc8, 0x62b3, 0x9c6c, 0x8315, 0xd2c9 };
10754a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
10764a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc80000, 0x9c6c62b3, 0xd2c98315 };
10774a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
10784a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xccc8000000000000, 0xd2c983159c6c62b3 };
10794a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
10804a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc80000 };
10814a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
10824a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc8000000000000 };
10834a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
10844a238c70SJohn Marino const mp_limb_t mpfr_l2b_29_1__tab[] = { 0xd2c983159c6c62b3ccc800000000000000000000000000000000000000000000 };
10854a238c70SJohn Marino #endif
10864a238c70SJohn Marino
10874a238c70SJohn Marino #if 0
10884a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
10894a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x4000, 0x9d05 };
10904a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
10914a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d054000 };
10924a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
10934a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d05400000000000 };
10944a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
10954a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d0540000000000000000000 };
10964a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
10974a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d054000000000000000000000000000 };
10984a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
10994a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_0__tab[] = { 0x9d05400000000000000000000000000000000000000000000000000000000000 };
11004a238c70SJohn Marino #endif
11014a238c70SJohn Marino
11024a238c70SJohn Marino #if 0
11034a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
11044a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x3588, 0x1732, 0x5cad, 0xa619, 0xd0af };
11054a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
11064a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x35880000, 0x5cad1732, 0xd0afa619 };
11074a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
11084a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_1__tab[] = { 0x3588000000000000, 0xd0afa6195cad1732 };
11094a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
11104a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad173235880000 };
11114a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
11124a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad17323588000000000000 };
11134a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
11144a238c70SJohn Marino const mp_limb_t mpfr_l2b_30_1__tab[] = { 0xd0afa6195cad1732358800000000000000000000000000000000000000000000 };
11154a238c70SJohn Marino #endif
11164a238c70SJohn Marino
11174a238c70SJohn Marino #if 0
11184a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
11194a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_0__tab[] = { 0xc800, 0x9e88 };
11204a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
11214a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c800 };
11224a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
11234a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c80000000000 };
11244a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
11254a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c8000000000000000000 };
11264a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
11274a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c800000000000000000000000000 };
11284a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
11294a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_0__tab[] = { 0x9e88c80000000000000000000000000000000000000000000000000000000000 };
11304a238c70SJohn Marino #endif
11314a238c70SJohn Marino
11324a238c70SJohn Marino #if 0
11334a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
11344a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd578, 0xf7ca, 0x63ee, 0x86e6, 0xceb1 };
11354a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
11364a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd5780000, 0x63eef7ca, 0xceb186e6 };
11374a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
11384a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xd578000000000000, 0xceb186e663eef7ca };
11394a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
11404a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad5780000 };
11414a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
11424a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad578000000000000 };
11434a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
11444a238c70SJohn Marino const mp_limb_t mpfr_l2b_31_1__tab[] = { 0xceb186e663eef7cad57800000000000000000000000000000000000000000000 };
11454a238c70SJohn Marino #endif
11464a238c70SJohn Marino
11474a238c70SJohn Marino #if 0
11484a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
11494a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_0__tab[] = { 0x0000, 0xa000 };
11504a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
11514a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa0000000 };
11524a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
11534a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa000000000000000 };
11544a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
11554a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa00000000000000000000000 };
11564a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
11574a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa0000000000000000000000000000000 };
11584a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
11594a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_0__tab[] = { 0xa000000000000000000000000000000000000000000000000000000000000000 };
11604a238c70SJohn Marino #endif
11614a238c70SJohn Marino
11624a238c70SJohn Marino #if 0
11634a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
11644a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd0, 0xcccc, 0xcccc, 0xcccc, 0xcccc };
11654a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
11664a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd00000, 0xcccccccc, 0xcccccccc };
11674a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
11684a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccd0000000000000, 0xcccccccccccccccc };
11694a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
11704a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd00000 };
11714a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
11724a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd0000000000000 };
11734a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
11744a238c70SJohn Marino const mp_limb_t mpfr_l2b_32_1__tab[] = { 0xccccccccccccccccccd000000000000000000000000000000000000000000000 };
11754a238c70SJohn Marino #endif
11764a238c70SJohn Marino
11774a238c70SJohn Marino #if 0
11784a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
11794a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xae00, 0xa16b };
11804a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
11814a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae00 };
11824a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
11834a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae0000000000 };
11844a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
11854a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae000000000000000000 };
11864a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
11874a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae00000000000000000000000000 };
11884a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
11894a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_0__tab[] = { 0xa16bae0000000000000000000000000000000000000000000000000000000000 };
11904a238c70SJohn Marino #endif
11914a238c70SJohn Marino
11924a238c70SJohn Marino #if 0
11934a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
11944a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x0888, 0xa187, 0x5304, 0x6404, 0xcaff };
11954a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
11964a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x08880000, 0x5304a187, 0xcaff6404 };
11974a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
11984a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_1__tab[] = { 0x0888000000000000, 0xcaff64045304a187 };
11994a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
12004a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a18708880000 };
12014a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
12024a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a1870888000000000000 };
12034a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
12044a238c70SJohn Marino const mp_limb_t mpfr_l2b_33_1__tab[] = { 0xcaff64045304a187088800000000000000000000000000000000000000000000 };
12054a238c70SJohn Marino #endif
12064a238c70SJohn Marino
12074a238c70SJohn Marino #if 0
12084a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
12094a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_0__tab[] = { 0x8000, 0xa2cc };
12104a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
12114a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc8000 };
12124a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
12134a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc800000000000 };
12144a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
12154a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc80000000000000000000 };
12164a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
12174a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc8000000000000000000000000000 };
12184a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
12194a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_0__tab[] = { 0xa2cc800000000000000000000000000000000000000000000000000000000000 };
12204a238c70SJohn Marino #endif
12214a238c70SJohn Marino
12224a238c70SJohn Marino #if 0
12234a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
12244a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb50, 0x17ca, 0x5a79, 0x73d8, 0xc947 };
12254a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
12264a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb500000, 0x5a7917ca, 0xc94773d8 };
12274a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
12284a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xfb50000000000000, 0xc94773d85a7917ca };
12294a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
12304a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb500000 };
12314a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
12324a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb50000000000000 };
12334a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
12344a238c70SJohn Marino const mp_limb_t mpfr_l2b_34_1__tab[] = { 0xc94773d85a7917cafb5000000000000000000000000000000000000000000000 };
12354a238c70SJohn Marino #endif
12364a238c70SJohn Marino
12374a238c70SJohn Marino #if 0
12384a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
12394a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_0__tab[] = { 0x1800, 0xa423 };
12404a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
12414a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa4231800 };
12424a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
12434a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa423180000000000 };
12444a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
12454a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa42318000000000000000000 };
12464a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
12474a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa4231800000000000000000000000000 };
12484a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
12494a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_0__tab[] = { 0xa423180000000000000000000000000000000000000000000000000000000000 };
12504a238c70SJohn Marino #endif
12514a238c70SJohn Marino
12524a238c70SJohn Marino #if 0
12534a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
12544a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x6960, 0x18c2, 0x6037, 0x567c, 0xc7a3 };
12554a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
12564a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x69600000, 0x603718c2, 0xc7a3567c };
12574a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
12584a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_1__tab[] = { 0x6960000000000000, 0xc7a3567c603718c2 };
12594a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
12604a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c269600000 };
12614a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
12624a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c26960000000000000 };
12634a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
12644a238c70SJohn Marino const mp_limb_t mpfr_l2b_35_1__tab[] = { 0xc7a3567c603718c2696000000000000000000000000000000000000000000000 };
12654a238c70SJohn Marino #endif
12664a238c70SJohn Marino
12674a238c70SJohn Marino #if 0
12684a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
12694a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_0__tab[] = { 0x0800, 0xa570 };
12704a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
12714a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa5700800 };
12724a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
12734a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa570080000000000 };
12744a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
12754a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa57008000000000000000000 };
12764a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
12774a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa5700800000000000000000000000000 };
12784a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
12794a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_0__tab[] = { 0xa570080000000000000000000000000000000000000000000000000000000000 };
12804a238c70SJohn Marino #endif
12814a238c70SJohn Marino
12824a238c70SJohn Marino #if 0
12834a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
12844a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff10, 0xf9e9, 0xe054, 0x9236, 0xc611 };
12854a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
12864a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff100000, 0xe054f9e9, 0xc6119236 };
12874a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
12884a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xff10000000000000, 0xc6119236e054f9e9 };
12894a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
12904a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff100000 };
12914a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
12924a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff10000000000000 };
12934a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
12944a238c70SJohn Marino const mp_limb_t mpfr_l2b_36_1__tab[] = { 0xc6119236e054f9e9ff1000000000000000000000000000000000000000000000 };
12954a238c70SJohn Marino #endif
12964a238c70SJohn Marino
12974a238c70SJohn Marino #if 0
12984a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
12994a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xd800, 0xa6b3 };
13004a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
13014a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d800 };
13024a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
13034a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d80000000000 };
13044a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
13054a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d8000000000000000000 };
13064a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
13074a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d800000000000000000000000000 };
13084a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
13094a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_0__tab[] = { 0xa6b3d80000000000000000000000000000000000000000000000000000000000 };
13104a238c70SJohn Marino #endif
13114a238c70SJohn Marino
13124a238c70SJohn Marino #if 0
13134a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
13144a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x1618, 0x6b36, 0x70d7, 0xd3a2, 0xc490 };
13154a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
13164a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x16180000, 0x70d76b36, 0xc490d3a2 };
13174a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
13184a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_1__tab[] = { 0x1618000000000000, 0xc490d3a270d76b36 };
13194a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
13204a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b3616180000 };
13214a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
13224a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b361618000000000000 };
13234a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
13244a238c70SJohn Marino const mp_limb_t mpfr_l2b_37_1__tab[] = { 0xc490d3a270d76b36161800000000000000000000000000000000000000000000 };
13254a238c70SJohn Marino #endif
13264a238c70SJohn Marino
13274a238c70SJohn Marino #if 0
13284a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
13294a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_0__tab[] = { 0x0600, 0xa7ef };
13304a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
13314a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef0600 };
13324a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
13334a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef060000000000 };
13344a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
13354a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef06000000000000000000 };
13364a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
13374a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef0600000000000000000000000000 };
13384a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
13394a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_0__tab[] = { 0xa7ef060000000000000000000000000000000000000000000000000000000000 };
13404a238c70SJohn Marino #endif
13414a238c70SJohn Marino
13424a238c70SJohn Marino #if 0
13434a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
13444a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e0, 0x9505, 0x5182, 0xe8d2, 0xc31f };
13454a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
13464a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e00000, 0x51829505, 0xc31fe8d2 };
13474a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
13484a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xa3e0000000000000, 0xc31fe8d251829505 };
13494a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
13504a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e00000 };
13514a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
13524a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e0000000000000 };
13534a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
13544a238c70SJohn Marino const mp_limb_t mpfr_l2b_38_1__tab[] = { 0xc31fe8d251829505a3e000000000000000000000000000000000000000000000 };
13554a238c70SJohn Marino #endif
13564a238c70SJohn Marino
13574a238c70SJohn Marino #if 0
13584a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
13594a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_0__tab[] = { 0x0400, 0xa922 };
13604a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
13614a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa9220400 };
13624a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
13634a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa922040000000000 };
13644a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
13654a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa92204000000000000000000 };
13664a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
13674a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa9220400000000000000000000000000 };
13684a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
13694a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_0__tab[] = { 0xa922040000000000000000000000000000000000000000000000000000000000 };
13704a238c70SJohn Marino #endif
13714a238c70SJohn Marino
13724a238c70SJohn Marino #if 0
13734a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
13744a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf8, 0xf1b5, 0x10ca, 0xbd32, 0xc1bd };
13754a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
13764a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf80000, 0x10caf1b5, 0xc1bdbd32 };
13774a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
13784a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xfcf8000000000000, 0xc1bdbd3210caf1b5 };
13794a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
13804a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf80000 };
13814a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
13824a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf8000000000000 };
13834a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
13844a238c70SJohn Marino const mp_limb_t mpfr_l2b_39_1__tab[] = { 0xc1bdbd3210caf1b5fcf800000000000000000000000000000000000000000000 };
13854a238c70SJohn Marino #endif
13864a238c70SJohn Marino
13874a238c70SJohn Marino #if 0
13884a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
13894a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_0__tab[] = { 0x3e00, 0xaa4d };
13904a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
13914a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e00 };
13924a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
13934a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e0000000000 };
13944a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
13954a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e000000000000000000 };
13964a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
13974a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e00000000000000000000000000 };
13984a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
13994a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_0__tab[] = { 0xaa4d3e0000000000000000000000000000000000000000000000000000000000 };
14004a238c70SJohn Marino #endif
14014a238c70SJohn Marino
14024a238c70SJohn Marino #if 0
14034a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
14044a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce8, 0x4948, 0xeff7, 0x55ff, 0xc069 };
14054a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
14064a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce80000, 0xeff74948, 0xc06955ff };
14074a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
14084a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xdce8000000000000, 0xc06955ffeff74948 };
14094a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
14104a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce80000 };
14114a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
14124a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce8000000000000 };
14134a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
14144a238c70SJohn Marino const mp_limb_t mpfr_l2b_40_1__tab[] = { 0xc06955ffeff74948dce800000000000000000000000000000000000000000000 };
14154a238c70SJohn Marino #endif
14164a238c70SJohn Marino
14174a238c70SJohn Marino #if 0
14184a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
14194a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_0__tab[] = { 0x1200, 0xab71 };
14204a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
14214a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab711200 };
14224a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
14234a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab71120000000000 };
14244a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
14254a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab7112000000000000000000 };
14264a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
14274a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab711200000000000000000000000000 };
14284a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
14294a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_0__tab[] = { 0xab71120000000000000000000000000000000000000000000000000000000000 };
14304a238c70SJohn Marino #endif
14314a238c70SJohn Marino
14324a238c70SJohn Marino #if 0
14334a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
14344a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc28, 0x7cef, 0xf695, 0xcf47, 0xbf21 };
14354a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
14364a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc280000, 0xf6957cef, 0xbf21cf47 };
14374a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
14384a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xdc28000000000000, 0xbf21cf47f6957cef };
14394a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
14404a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc280000 };
14414a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
14424a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc28000000000000 };
14434a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
14444a238c70SJohn Marino const mp_limb_t mpfr_l2b_41_1__tab[] = { 0xbf21cf47f6957cefdc2800000000000000000000000000000000000000000000 };
14454a238c70SJohn Marino #endif
14464a238c70SJohn Marino
14474a238c70SJohn Marino #if 0
14484a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
14494a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xde00, 0xac8d };
14504a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
14514a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde00 };
14524a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
14534a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde0000000000 };
14544a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
14554a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde000000000000000000 };
14564a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
14574a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde00000000000000000000000000 };
14584a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
14594a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_0__tab[] = { 0xac8dde0000000000000000000000000000000000000000000000000000000000 };
14604a238c70SJohn Marino #endif
14614a238c70SJohn Marino
14624a238c70SJohn Marino #if 0
14634a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
14644a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba10, 0x7125, 0x939b, 0x594a, 0xbde6 };
14654a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
14664a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba100000, 0x939b7125, 0xbde6594a };
14674a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
14684a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xba10000000000000, 0xbde6594a939b7125 };
14694a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
14704a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba100000 };
14714a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
14724a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba10000000000000 };
14734a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
14744a238c70SJohn Marino const mp_limb_t mpfr_l2b_42_1__tab[] = { 0xbde6594a939b7125ba1000000000000000000000000000000000000000000000 };
14754a238c70SJohn Marino #endif
14764a238c70SJohn Marino
14774a238c70SJohn Marino #if 0
14784a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
14794a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xf600, 0xada3 };
14804a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
14814a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f600 };
14824a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
14834a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f60000000000 };
14844a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
14854a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f6000000000000000000 };
14864a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
14874a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f600000000000000000000000000 };
14884a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
14894a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_0__tab[] = { 0xada3f60000000000000000000000000000000000000000000000000000000000 };
14904a238c70SJohn Marino #endif
14914a238c70SJohn Marino
14924a238c70SJohn Marino #if 0
14934a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
14944a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x9560, 0x2ab5, 0x9118, 0x363d, 0xbcb6 };
14954a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
14964a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x95600000, 0x91182ab5, 0xbcb6363d };
14974a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
14984a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_1__tab[] = { 0x9560000000000000, 0xbcb6363d91182ab5 };
14994a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
15004a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab595600000 };
15014a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
15024a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab59560000000000000 };
15034a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
15044a238c70SJohn Marino const mp_limb_t mpfr_l2b_43_1__tab[] = { 0xbcb6363d91182ab5956000000000000000000000000000000000000000000000 };
15054a238c70SJohn Marino #endif
15064a238c70SJohn Marino
15074a238c70SJohn Marino #if 0
15084a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
15094a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaa00, 0xaeb3 };
15104a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
15114a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa00 };
15124a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
15134a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa0000000000 };
15144a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
15154a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa000000000000000000 };
15164a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
15174a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa00000000000000000000000000 };
15184a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
15194a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_0__tab[] = { 0xaeb3aa0000000000000000000000000000000000000000000000000000000000 };
15204a238c70SJohn Marino #endif
15214a238c70SJohn Marino
15224a238c70SJohn Marino #if 0
15234a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
15244a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x1590, 0x4e90, 0x3a3d, 0xb859, 0xbb90 };
15254a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
15264a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x15900000, 0x3a3d4e90, 0xbb90b859 };
15274a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
15284a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_1__tab[] = { 0x1590000000000000, 0xbb90b8593a3d4e90 };
15294a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
15304a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e9015900000 };
15314a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
15324a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e901590000000000000 };
15334a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
15344a238c70SJohn Marino const mp_limb_t mpfr_l2b_44_1__tab[] = { 0xbb90b8593a3d4e90159000000000000000000000000000000000000000000000 };
15354a238c70SJohn Marino #endif
15364a238c70SJohn Marino
15374a238c70SJohn Marino #if 0
15384a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
15394a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_0__tab[] = { 0x4400, 0xafbd };
15404a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
15414a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd4400 };
15424a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
15434a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd440000000000 };
15444a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
15454a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd44000000000000000000 };
15464a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
15474a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd4400000000000000000000000000 };
15484a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
15494a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_0__tab[] = { 0xafbd440000000000000000000000000000000000000000000000000000000000 };
15504a238c70SJohn Marino #endif
15514a238c70SJohn Marino
15524a238c70SJohn Marino #if 0
15534a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
15544a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e78, 0x76f5, 0x1010, 0x4026, 0xba75 };
15554a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
15564a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e780000, 0x101076f5, 0xba754026 };
15574a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
15584a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_1__tab[] = { 0x1e78000000000000, 0xba754026101076f5 };
15594a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
15604a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e780000 };
15614a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
15624a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e78000000000000 };
15634a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
15644a238c70SJohn Marino const mp_limb_t mpfr_l2b_45_1__tab[] = { 0xba754026101076f51e7800000000000000000000000000000000000000000000 };
15654a238c70SJohn Marino #endif
15664a238c70SJohn Marino
15674a238c70SJohn Marino #if 0
15684a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
15694a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_0__tab[] = { 0x0600, 0xb0c1 };
15704a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
15714a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c10600 };
15724a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
15734a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c1060000000000 };
15744a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
15754a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c106000000000000000000 };
15764a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
15774a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c10600000000000000000000000000 };
15784a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
15794a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_0__tab[] = { 0xb0c1060000000000000000000000000000000000000000000000000000000000 };
15804a238c70SJohn Marino #endif
15814a238c70SJohn Marino
15824a238c70SJohn Marino #if 0
15834a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
15844a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb670, 0x0512, 0x69aa, 0x3b01, 0xb963 };
15854a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
15864a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb6700000, 0x69aa0512, 0xb9633b01 };
15874a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
15884a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb670000000000000, 0xb9633b0169aa0512 };
15894a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
15904a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b6700000 };
15914a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
15924a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b670000000000000 };
15934a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
15944a238c70SJohn Marino const mp_limb_t mpfr_l2b_46_1__tab[] = { 0xb9633b0169aa0512b67000000000000000000000000000000000000000000000 };
15954a238c70SJohn Marino #endif
15964a238c70SJohn Marino
15974a238c70SJohn Marino #if 0
15984a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
15994a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_0__tab[] = { 0x3200, 0xb1bf };
16004a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
16014a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf3200 };
16024a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
16034a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf320000000000 };
16044a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
16054a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf32000000000000000000 };
16064a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
16074a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf3200000000000000000000000000 };
16084a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
16094a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_0__tab[] = { 0xb1bf320000000000000000000000000000000000000000000000000000000000 };
16104a238c70SJohn Marino #endif
16114a238c70SJohn Marino
16124a238c70SJohn Marino #if 0
16134a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
16144a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x5118, 0x4133, 0xfbe4, 0x21d0, 0xb85a };
16154a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
16164a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x51180000, 0xfbe44133, 0xb85a21d0 };
16174a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
16184a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_1__tab[] = { 0x5118000000000000, 0xb85a21d0fbe44133 };
16194a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
16204a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe4413351180000 };
16214a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
16224a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe441335118000000000000 };
16234a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
16244a238c70SJohn Marino const mp_limb_t mpfr_l2b_47_1__tab[] = { 0xb85a21d0fbe44133511800000000000000000000000000000000000000000000 };
16254a238c70SJohn Marino #endif
16264a238c70SJohn Marino
16274a238c70SJohn Marino #if 0
16284a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
16294a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_0__tab[] = { 0x0400, 0xb2b8 };
16304a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
16314a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b80400 };
16324a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
16334a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b8040000000000 };
16344a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
16354a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b804000000000000000000 };
16364a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
16374a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b80400000000000000000000000000 };
16384a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
16394a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_0__tab[] = { 0xb2b8040000000000000000000000000000000000000000000000000000000000 };
16404a238c70SJohn Marino #endif
16414a238c70SJohn Marino
16424a238c70SJohn Marino #if 0
16434a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
16444a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x0490, 0x663d, 0x960d, 0x77de, 0xb759 };
16454a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
16464a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x04900000, 0x960d663d, 0xb75977de };
16474a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
16484a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_1__tab[] = { 0x0490000000000000, 0xb75977de960d663d };
16494a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
16504a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d04900000 };
16514a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
16524a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d0490000000000000 };
16534a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
16544a238c70SJohn Marino const mp_limb_t mpfr_l2b_48_1__tab[] = { 0xb75977de960d663d049000000000000000000000000000000000000000000000 };
16554a238c70SJohn Marino #endif
16564a238c70SJohn Marino
16574a238c70SJohn Marino #if 0
16584a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
16594a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb400, 0xb3ab };
16604a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
16614a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb400 };
16624a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
16634a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb40000000000 };
16644a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
16654a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb4000000000000000000 };
16664a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
16674a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb400000000000000000000000000 };
16684a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
16694a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_0__tab[] = { 0xb3abb40000000000000000000000000000000000000000000000000000000000 };
16704a238c70SJohn Marino #endif
16714a238c70SJohn Marino
16724a238c70SJohn Marino #if 0
16734a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
16744a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b8, 0xa711, 0x754d, 0xc9d6, 0xb660 };
16754a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
16764a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b80000, 0x754da711, 0xb660c9d6 };
16774a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
16784a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_1__tab[] = { 0x37b8000000000000, 0xb660c9d6754da711 };
16794a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
16804a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b80000 };
16814a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
16824a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b8000000000000 };
16834a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
16844a238c70SJohn Marino const mp_limb_t mpfr_l2b_49_1__tab[] = { 0xb660c9d6754da71137b800000000000000000000000000000000000000000000 };
16854a238c70SJohn Marino #endif
16864a238c70SJohn Marino
16874a238c70SJohn Marino #if 0
16884a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
16894a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_0__tab[] = { 0x7a00, 0xb49a };
16904a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
16914a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a00 };
16924a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
16934a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a0000000000 };
16944a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
16954a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a000000000000000000 };
16964a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
16974a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a00000000000000000000000000 };
16984a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
16994a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_0__tab[] = { 0xb49a7a0000000000000000000000000000000000000000000000000000000000 };
17004a238c70SJohn Marino #endif
17014a238c70SJohn Marino
17024a238c70SJohn Marino #if 0
17034a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
17044a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f0, 0xe532, 0x7344, 0xace3, 0xb56f };
17054a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
17064a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f00000, 0x7344e532, 0xb56face3 };
17074a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
17084a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_1__tab[] = { 0x27f0000000000000, 0xb56face37344e532 };
17094a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
17104a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f00000 };
17114a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
17124a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f0000000000000 };
17134a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
17144a238c70SJohn Marino const mp_limb_t mpfr_l2b_50_1__tab[] = { 0xb56face37344e53227f000000000000000000000000000000000000000000000 };
17154a238c70SJohn Marino #endif
17164a238c70SJohn Marino
17174a238c70SJohn Marino #if 0
17184a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
17194a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_0__tab[] = { 0x8400, 0xb584 };
17204a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
17214a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb5848400 };
17224a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
17234a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb584840000000000 };
17244a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
17254a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb58484000000000000000000 };
17264a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
17274a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb5848400000000000000000000000000 };
17284a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
17294a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_0__tab[] = { 0xb584840000000000000000000000000000000000000000000000000000000000 };
17304a238c70SJohn Marino #endif
17314a238c70SJohn Marino
17324a238c70SJohn Marino #if 0
17334a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
17344a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x4000, 0xe9a9, 0x0f8a, 0xbde5, 0xb485 };
17354a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
17364a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x40000000, 0x0f8ae9a9, 0xb485bde5 };
17374a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
17384a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_1__tab[] = { 0x4000000000000000, 0xb485bde50f8ae9a9 };
17394a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
17404a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a940000000 };
17414a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
17424a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a94000000000000000 };
17434a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
17444a238c70SJohn Marino const mp_limb_t mpfr_l2b_51_1__tab[] = { 0xb485bde50f8ae9a9400000000000000000000000000000000000000000000000 };
17454a238c70SJohn Marino #endif
17464a238c70SJohn Marino
17474a238c70SJohn Marino #if 0
17484a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
17494a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_0__tab[] = { 0x0200, 0xb66a };
17504a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
17514a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a0200 };
17524a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
17534a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a020000000000 };
17544a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
17554a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a02000000000000000000 };
17564a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
17574a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a0200000000000000000000000000 };
17584a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
17594a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_0__tab[] = { 0xb66a020000000000000000000000000000000000000000000000000000000000 };
17604a238c70SJohn Marino #endif
17614a238c70SJohn Marino
17624a238c70SJohn Marino #if 0
17634a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
17644a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x4608, 0xfcb3, 0xeecf, 0xa0bb, 0xb3a2 };
17654a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
17664a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x46080000, 0xeecffcb3, 0xb3a2a0bb };
17674a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
17684a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_1__tab[] = { 0x4608000000000000, 0xb3a2a0bbeecffcb3 };
17694a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
17704a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb346080000 };
17714a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
17724a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb34608000000000000 };
17734a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
17744a238c70SJohn Marino const mp_limb_t mpfr_l2b_52_1__tab[] = { 0xb3a2a0bbeecffcb3460800000000000000000000000000000000000000000000 };
17754a238c70SJohn Marino #endif
17764a238c70SJohn Marino
17774a238c70SJohn Marino #if 0
17784a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
17794a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_0__tab[] = { 0x2000, 0xb74b };
17804a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
17814a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b2000 };
17824a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
17834a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b200000000000 };
17844a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
17854a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b20000000000000000000 };
17864a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
17874a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b2000000000000000000000000000 };
17884a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
17894a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_0__tab[] = { 0xb74b200000000000000000000000000000000000000000000000000000000000 };
17904a238c70SJohn Marino #endif
17914a238c70SJohn Marino
17924a238c70SJohn Marino #if 0
17934a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
17944a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa360, 0x8ccb, 0xeb5f, 0xffa9, 0xb2c5 };
17954a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
17964a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa3600000, 0xeb5f8ccb, 0xb2c5ffa9 };
17974a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
17984a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xa360000000000000, 0xb2c5ffa9eb5f8ccb };
17994a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
18004a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba3600000 };
18014a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
18024a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba360000000000000 };
18034a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
18044a238c70SJohn Marino const mp_limb_t mpfr_l2b_53_1__tab[] = { 0xb2c5ffa9eb5f8ccba36000000000000000000000000000000000000000000000 };
18054a238c70SJohn Marino #endif
18064a238c70SJohn Marino
18074a238c70SJohn Marino #if 0
18084a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
18094a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_0__tab[] = { 0x0a00, 0xb828 };
18104a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
18114a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a00 };
18124a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
18134a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a0000000000 };
18144a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
18154a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a000000000000000000 };
18164a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
18174a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a00000000000000000000000000 };
18184a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
18194a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_0__tab[] = { 0xb8280a0000000000000000000000000000000000000000000000000000000000 };
18204a238c70SJohn Marino #endif
18214a238c70SJohn Marino
18224a238c70SJohn Marino #if 0
18234a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
18244a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf368, 0xe940, 0x3e86, 0x8ac3, 0xb1ef };
18254a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
18264a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf3680000, 0x3e86e940, 0xb1ef8ac3 };
18274a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
18284a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xf368000000000000, 0xb1ef8ac33e86e940 };
18294a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
18304a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f3680000 };
18314a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
18324a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f368000000000000 };
18334a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
18344a238c70SJohn Marino const mp_limb_t mpfr_l2b_54_1__tab[] = { 0xb1ef8ac33e86e940f36800000000000000000000000000000000000000000000 };
18354a238c70SJohn Marino #endif
18364a238c70SJohn Marino
18374a238c70SJohn Marino #if 0
18384a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
18394a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xe800, 0xb900 };
18404a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
18414a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e800 };
18424a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
18434a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e80000000000 };
18444a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
18454a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e8000000000000000000 };
18464a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
18474a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e800000000000000000000000000 };
18484a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
18494a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_0__tab[] = { 0xb900e80000000000000000000000000000000000000000000000000000000000 };
18504a238c70SJohn Marino #endif
18514a238c70SJohn Marino
18524a238c70SJohn Marino #if 0
18534a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
18544a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a40, 0xd18e, 0xa4b5, 0xf76e, 0xb11e };
18554a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
18564a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a400000, 0xa4b5d18e, 0xb11ef76e };
18574a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
18584a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_1__tab[] = { 0x7a40000000000000, 0xb11ef76ea4b5d18e };
18594a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
18604a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a400000 };
18614a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
18624a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a40000000000000 };
18634a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
18644a238c70SJohn Marino const mp_limb_t mpfr_l2b_55_1__tab[] = { 0xb11ef76ea4b5d18e7a4000000000000000000000000000000000000000000000 };
18654a238c70SJohn Marino #endif
18664a238c70SJohn Marino
18674a238c70SJohn Marino #if 0
18684a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
18694a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xda00, 0xb9d5 };
18704a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
18714a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da00 };
18724a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
18734a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da0000000000 };
18744a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
18754a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da000000000000000000 };
18764a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
18774a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da00000000000000000000000000 };
18784a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
18794a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_0__tab[] = { 0xb9d5da0000000000000000000000000000000000000000000000000000000000 };
18804a238c70SJohn Marino #endif
18814a238c70SJohn Marino
18824a238c70SJohn Marino #if 0
18834a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
18844a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe818, 0x4c7b, 0xaa2c, 0xfff2, 0xb053 };
18854a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
18864a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe8180000, 0xaa2c4c7b, 0xb053fff2 };
18874a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
18884a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xe818000000000000, 0xb053fff2aa2c4c7b };
18894a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
18904a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be8180000 };
18914a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
18924a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be818000000000000 };
18934a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
18944a238c70SJohn Marino const mp_limb_t mpfr_l2b_56_1__tab[] = { 0xb053fff2aa2c4c7be81800000000000000000000000000000000000000000000 };
18954a238c70SJohn Marino #endif
18964a238c70SJohn Marino
18974a238c70SJohn Marino #if 0
18984a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
18994a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_0__tab[] = { 0x0a00, 0xbaa7 };
19004a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
19014a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a00 };
19024a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
19034a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a0000000000 };
19044a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
19054a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a000000000000000000 };
19064a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
19074a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a00000000000000000000000000 };
19084a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
19094a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_0__tab[] = { 0xbaa70a0000000000000000000000000000000000000000000000000000000000 };
19104a238c70SJohn Marino #endif
19114a238c70SJohn Marino
19124a238c70SJohn Marino #if 0
19134a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
19144a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb0, 0x814f, 0x8e2f, 0x630e, 0xaf8e };
19154a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
19164a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb00000, 0x8e2f814f, 0xaf8e630e };
19174a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
19184a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xefb0000000000000, 0xaf8e630e8e2f814f };
19194a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
19204a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb00000 };
19214a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
19224a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb0000000000000 };
19234a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
19244a238c70SJohn Marino const mp_limb_t mpfr_l2b_57_1__tab[] = { 0xaf8e630e8e2f814fefb000000000000000000000000000000000000000000000 };
19254a238c70SJohn Marino #endif
19264a238c70SJohn Marino
19274a238c70SJohn Marino #if 0
19284a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
19294a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_0__tab[] = { 0x9600, 0xbb74 };
19304a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
19314a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb749600 };
19324a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
19334a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb74960000000000 };
19344a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
19354a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb7496000000000000000000 };
19364a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
19374a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb749600000000000000000000000000 };
19384a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
19394a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_0__tab[] = { 0xbb74960000000000000000000000000000000000000000000000000000000000 };
19404a238c70SJohn Marino #endif
19414a238c70SJohn Marino
19424a238c70SJohn Marino #if 0
19434a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
19444a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d18, 0x41a1, 0x6114, 0xe39d, 0xaecd };
19454a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
19464a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d180000, 0x611441a1, 0xaecde39d };
19474a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
19484a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_1__tab[] = { 0x5d18000000000000, 0xaecde39d611441a1 };
19494a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
19504a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d180000 };
19514a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
19524a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d18000000000000 };
19534a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
19544a238c70SJohn Marino const mp_limb_t mpfr_l2b_58_1__tab[] = { 0xaecde39d611441a15d1800000000000000000000000000000000000000000000 };
19554a238c70SJohn Marino #endif
19564a238c70SJohn Marino
19574a238c70SJohn Marino #if 0
19584a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
19594a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_0__tab[] = { 0x9e00, 0xbc3e };
19604a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
19614a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e00 };
19624a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
19634a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e0000000000 };
19644a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
19654a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e000000000000000000 };
19664a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
19674a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e00000000000000000000000000 };
19684a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
19694a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_0__tab[] = { 0xbc3e9e0000000000000000000000000000000000000000000000000000000000 };
19704a238c70SJohn Marino #endif
19714a238c70SJohn Marino
19724a238c70SJohn Marino #if 0
19734a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
19744a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd000, 0x97df, 0x2f97, 0x4842, 0xae12 };
19754a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
19764a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd0000000, 0x2f9797df, 0xae124842 };
19774a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
19784a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xd000000000000000, 0xae1248422f9797df };
19794a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
19804a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd0000000 };
19814a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
19824a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd000000000000000 };
19834a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
19844a238c70SJohn Marino const mp_limb_t mpfr_l2b_59_1__tab[] = { 0xae1248422f9797dfd00000000000000000000000000000000000000000000000 };
19854a238c70SJohn Marino #endif
19864a238c70SJohn Marino
19874a238c70SJohn Marino #if 0
19884a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
19894a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_0__tab[] = { 0x4000, 0xbd05 };
19904a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
19914a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd054000 };
19924a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
19934a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd05400000000000 };
19944a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
19954a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd0540000000000000000000 };
19964a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
19974a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd054000000000000000000000000000 };
19984a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
19994a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_0__tab[] = { 0xbd05400000000000000000000000000000000000000000000000000000000000 };
20004a238c70SJohn Marino #endif
20014a238c70SJohn Marino
20024a238c70SJohn Marino #if 0
20034a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
20044a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe58, 0x206d, 0x3555, 0x5b1c, 0xad5b };
20054a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
20064a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe580000, 0x3555206d, 0xad5b5b1c };
20074a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
20084a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xfe58000000000000, 0xad5b5b1c3555206d };
20094a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
20104a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe580000 };
20114a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
20124a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe58000000000000 };
20134a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
20144a238c70SJohn Marino const mp_limb_t mpfr_l2b_60_1__tab[] = { 0xad5b5b1c3555206dfe5800000000000000000000000000000000000000000000 };
20154a238c70SJohn Marino #endif
20164a238c70SJohn Marino
20174a238c70SJohn Marino #if 0
20184a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
20194a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_0__tab[] = { 0x9a00, 0xbdc8 };
20204a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
20214a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a00 };
20224a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
20234a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a0000000000 };
20244a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
20254a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a000000000000000000 };
20264a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
20274a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a00000000000000000000000000 };
20284a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
20294a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_0__tab[] = { 0xbdc89a0000000000000000000000000000000000000000000000000000000000 };
20304a238c70SJohn Marino #endif
20314a238c70SJohn Marino
20324a238c70SJohn Marino #if 0
20334a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
20344a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df8, 0x7757, 0x31cb, 0xe982, 0xaca8 };
20354a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
20364a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df80000, 0x31cb7757, 0xaca8e982 };
20374a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
20384a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_1__tab[] = { 0x4df8000000000000, 0xaca8e98231cb7757 };
20394a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
20404a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df80000 };
20414a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
20424a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df8000000000000 };
20434a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
20444a238c70SJohn Marino const mp_limb_t mpfr_l2b_61_1__tab[] = { 0xaca8e98231cb77574df800000000000000000000000000000000000000000000 };
20454a238c70SJohn Marino #endif
20464a238c70SJohn Marino
20474a238c70SJohn Marino #if 0
20484a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
20494a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xc800, 0xbe88 };
20504a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
20514a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c800 };
20524a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
20534a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c80000000000 };
20544a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
20554a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c8000000000000000000 };
20564a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
20574a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c800000000000000000000000000 };
20584a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
20594a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_0__tab[] = { 0xbe88c80000000000000000000000000000000000000000000000000000000000 };
20604a238c70SJohn Marino #endif
20614a238c70SJohn Marino
20624a238c70SJohn Marino #if 0
20634a238c70SJohn Marino #elif GMP_NUMB_BITS == 16
20644a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f8, 0xf905, 0x1831, 0xc3c4, 0xabfa };
20654a238c70SJohn Marino #elif GMP_NUMB_BITS == 32
20664a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f80000, 0x1831f905, 0xabfac3c4 };
20674a238c70SJohn Marino #elif GMP_NUMB_BITS == 64
20684a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_1__tab[] = { 0x74f8000000000000, 0xabfac3c41831f905 };
20694a238c70SJohn Marino #elif GMP_NUMB_BITS == 96
20704a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f80000 };
20714a238c70SJohn Marino #elif GMP_NUMB_BITS == 128
20724a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f8000000000000 };
20734a238c70SJohn Marino #elif GMP_NUMB_BITS == 256
20744a238c70SJohn Marino const mp_limb_t mpfr_l2b_62_1__tab[] = { 0xabfac3c41831f90574f800000000000000000000000000000000000000000000 };
20754a238c70SJohn Marino #endif
20764a238c70SJohn Marino
20774a238c70SJohn Marino const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2] = {
20784a238c70SJohn Marino { { 23, 1, 1, (mp_limb_t *) mpfr_l2b_2_0__tab },
20794a238c70SJohn Marino { 77, 1, 1, (mp_limb_t *) mpfr_l2b_2_1__tab } },
20804a238c70SJohn Marino { { 23, 1, 1, (mp_limb_t *) mpfr_l2b_3_0__tab },
20814a238c70SJohn Marino { 77, 1, 0, (mp_limb_t *) mpfr_l2b_3_1__tab } },
20824a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_4_0__tab },
20834a238c70SJohn Marino { 77, 1, 0, (mp_limb_t *) mpfr_l2b_4_1__tab } },
20844a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_5_0__tab },
20854a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_5_1__tab } },
20864a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_6_0__tab },
20874a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_6_1__tab } },
20884a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_7_0__tab },
20894a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_7_1__tab } },
20904a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_8_0__tab },
20914a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_8_1__tab } },
20924a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_9_0__tab },
20934a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_9_1__tab } },
20944a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_10_0__tab },
20954a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_10_1__tab } },
20964a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_11_0__tab },
20974a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_11_1__tab } },
20984a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_12_0__tab },
20994a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_12_1__tab } },
21004a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_13_0__tab },
21014a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_13_1__tab } },
21024a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_14_0__tab },
21034a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_14_1__tab } },
21044a238c70SJohn Marino { { 23, 1, 2, (mp_limb_t *) mpfr_l2b_15_0__tab },
21054a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_15_1__tab } },
21064a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_16_0__tab },
21074a238c70SJohn Marino { 77, 1, -1, (mp_limb_t *) mpfr_l2b_16_1__tab } },
21084a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_17_0__tab },
21094a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_17_1__tab } },
21104a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_18_0__tab },
21114a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_18_1__tab } },
21124a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_19_0__tab },
21134a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_19_1__tab } },
21144a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_20_0__tab },
21154a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_20_1__tab } },
21164a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_21_0__tab },
21174a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_21_1__tab } },
21184a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_22_0__tab },
21194a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_22_1__tab } },
21204a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_23_0__tab },
21214a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_23_1__tab } },
21224a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_24_0__tab },
21234a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_24_1__tab } },
21244a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_25_0__tab },
21254a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_25_1__tab } },
21264a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_26_0__tab },
21274a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_26_1__tab } },
21284a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_27_0__tab },
21294a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_27_1__tab } },
21304a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_28_0__tab },
21314a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_28_1__tab } },
21324a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_29_0__tab },
21334a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_29_1__tab } },
21344a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_30_0__tab },
21354a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_30_1__tab } },
21364a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_31_0__tab },
21374a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_31_1__tab } },
21384a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_32_0__tab },
21394a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_32_1__tab } },
21404a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_33_0__tab },
21414a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_33_1__tab } },
21424a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_34_0__tab },
21434a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_34_1__tab } },
21444a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_35_0__tab },
21454a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_35_1__tab } },
21464a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_36_0__tab },
21474a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_36_1__tab } },
21484a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_37_0__tab },
21494a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_37_1__tab } },
21504a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_38_0__tab },
21514a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_38_1__tab } },
21524a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_39_0__tab },
21534a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_39_1__tab } },
21544a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_40_0__tab },
21554a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_40_1__tab } },
21564a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_41_0__tab },
21574a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_41_1__tab } },
21584a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_42_0__tab },
21594a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_42_1__tab } },
21604a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_43_0__tab },
21614a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_43_1__tab } },
21624a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_44_0__tab },
21634a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_44_1__tab } },
21644a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_45_0__tab },
21654a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_45_1__tab } },
21664a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_46_0__tab },
21674a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_46_1__tab } },
21684a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_47_0__tab },
21694a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_47_1__tab } },
21704a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_48_0__tab },
21714a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_48_1__tab } },
21724a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_49_0__tab },
21734a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_49_1__tab } },
21744a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_50_0__tab },
21754a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_50_1__tab } },
21764a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_51_0__tab },
21774a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_51_1__tab } },
21784a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_52_0__tab },
21794a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_52_1__tab } },
21804a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_53_0__tab },
21814a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_53_1__tab } },
21824a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_54_0__tab },
21834a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_54_1__tab } },
21844a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_55_0__tab },
21854a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_55_1__tab } },
21864a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_56_0__tab },
21874a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_56_1__tab } },
21884a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_57_0__tab },
21894a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_57_1__tab } },
21904a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_58_0__tab },
21914a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_58_1__tab } },
21924a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_59_0__tab },
21934a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_59_1__tab } },
21944a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_60_0__tab },
21954a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_60_1__tab } },
21964a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_61_0__tab },
21974a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_61_1__tab } },
21984a238c70SJohn Marino { { 23, 1, 3, (mp_limb_t *) mpfr_l2b_62_0__tab },
21994a238c70SJohn Marino { 77, 1, -2, (mp_limb_t *) mpfr_l2b_62_1__tab } } };
22004a238c70SJohn Marino
22014a238c70SJohn Marino /***************************************************************************/
22024a238c70SJohn Marino
22034a238c70SJohn Marino /* returns ceil(e * log2(b)^((-1)^i)), or ... + 1.
22044a238c70SJohn Marino For i=0, uses a 23-bit upper approximation to log(beta)/log(2).
22054a238c70SJohn Marino For i=1, uses a 76-bit upper approximation to log(2)/log(beta).
22064a238c70SJohn Marino Note: this function should be called only in the extended exponent range.
22074a238c70SJohn Marino */
22084a238c70SJohn Marino mpfr_exp_t
mpfr_ceil_mul(mpfr_exp_t e,int beta,int i)22094a238c70SJohn Marino mpfr_ceil_mul (mpfr_exp_t e, int beta, int i)
22104a238c70SJohn Marino {
22114a238c70SJohn Marino mpfr_srcptr p;
22124a238c70SJohn Marino mpfr_t t;
22134a238c70SJohn Marino mpfr_exp_t r;
22144a238c70SJohn Marino
22154a238c70SJohn Marino p = &__gmpfr_l2b[beta-2][i];
22164a238c70SJohn Marino mpfr_init2 (t, sizeof (mpfr_exp_t) * CHAR_BIT);
22174a238c70SJohn Marino mpfr_set_exp_t (t, e, MPFR_RNDU);
22184a238c70SJohn Marino mpfr_mul (t, t, p, MPFR_RNDU);
22194a238c70SJohn Marino r = mpfr_get_exp_t (t, MPFR_RNDU);
22204a238c70SJohn Marino mpfr_clear (t);
22214a238c70SJohn Marino return r;
22224a238c70SJohn Marino }
22234a238c70SJohn Marino
22244a238c70SJohn Marino /* prints the mantissa of x in the string s, and writes the corresponding
22254a238c70SJohn Marino exponent in e.
22264a238c70SJohn Marino x is rounded with direction rnd, m is the number of digits of the mantissa,
22274a238c70SJohn Marino b is the given base (2 <= b <= 62).
22284a238c70SJohn Marino
22294a238c70SJohn Marino Return value:
22304a238c70SJohn Marino if s=NULL, allocates a string to store the mantissa, with
22314a238c70SJohn Marino m characters, plus a final '\0', plus a possible minus sign
22324a238c70SJohn Marino (thus m+1 or m+2 characters).
22334a238c70SJohn Marino
22344a238c70SJohn Marino Important: when you call this function with s=NULL, don't forget to free
22354a238c70SJohn Marino the memory space allocated, with free(s, strlen(s)).
22364a238c70SJohn Marino */
22374a238c70SJohn Marino char*
mpfr_get_str(char * s,mpfr_exp_t * e,int b,size_t m,mpfr_srcptr x,mpfr_rnd_t rnd)22384a238c70SJohn Marino mpfr_get_str (char *s, mpfr_exp_t *e, int b, size_t m, mpfr_srcptr x, mpfr_rnd_t rnd)
22394a238c70SJohn Marino {
22404a238c70SJohn Marino const char *num_to_text;
22414a238c70SJohn Marino int exact; /* exact result */
22424a238c70SJohn Marino mpfr_exp_t exp, g;
22434a238c70SJohn Marino mpfr_exp_t prec; /* precision of the computation */
22444a238c70SJohn Marino long err;
22454a238c70SJohn Marino mp_limb_t *a;
22464a238c70SJohn Marino mpfr_exp_t exp_a;
22474a238c70SJohn Marino mp_limb_t *result;
22484a238c70SJohn Marino mp_limb_t *xp;
22494a238c70SJohn Marino mp_limb_t *reste;
22504a238c70SJohn Marino size_t nx, nx1;
22514a238c70SJohn Marino size_t n, i;
22524a238c70SJohn Marino char *s0;
22534a238c70SJohn Marino int neg;
22544a238c70SJohn Marino int ret; /* return value of mpfr_get_str_aux */
22554a238c70SJohn Marino MPFR_ZIV_DECL (loop);
22564a238c70SJohn Marino MPFR_SAVE_EXPO_DECL (expo);
22574a238c70SJohn Marino MPFR_TMP_DECL(marker);
22584a238c70SJohn Marino
22594a238c70SJohn Marino /* if exact = 1 then err is undefined */
22604a238c70SJohn Marino /* otherwise err is such that |x*b^(m-g)-a*2^exp_a| < 2^(err+exp_a) */
22614a238c70SJohn Marino
22624a238c70SJohn Marino /* is the base valid? */
22634a238c70SJohn Marino if (b < 2 || b > 62)
22644a238c70SJohn Marino return NULL;
22654a238c70SJohn Marino
22664a238c70SJohn Marino num_to_text = b < 37 ? num_to_text36 : num_to_text62;
22674a238c70SJohn Marino
22684a238c70SJohn Marino if (MPFR_UNLIKELY (MPFR_IS_NAN (x)))
22694a238c70SJohn Marino {
22704a238c70SJohn Marino if (s == NULL)
22714a238c70SJohn Marino s = (char *) (*__gmp_allocate_func) (6);
22724a238c70SJohn Marino strcpy (s, "@NaN@");
22734a238c70SJohn Marino return s;
22744a238c70SJohn Marino }
22754a238c70SJohn Marino
22764a238c70SJohn Marino neg = MPFR_SIGN(x) < 0; /* 0 if positive, 1 if negative */
22774a238c70SJohn Marino
22784a238c70SJohn Marino if (MPFR_UNLIKELY (MPFR_IS_INF (x)))
22794a238c70SJohn Marino {
22804a238c70SJohn Marino if (s == NULL)
22814a238c70SJohn Marino s = (char *) (*__gmp_allocate_func) (neg + 6);
22824a238c70SJohn Marino strcpy (s, (neg) ? "-@Inf@" : "@Inf@");
22834a238c70SJohn Marino return s;
22844a238c70SJohn Marino }
22854a238c70SJohn Marino
22864a238c70SJohn Marino MPFR_SAVE_EXPO_MARK (expo); /* needed for mpfr_ceil_mul (at least) */
22874a238c70SJohn Marino
22884a238c70SJohn Marino if (m == 0)
22894a238c70SJohn Marino {
22904a238c70SJohn Marino
22914a238c70SJohn Marino /* take at least 1 + ceil(n*log(2)/log(b)) digits, where n is the
22924a238c70SJohn Marino number of bits of the mantissa, to ensure back conversion from
22934a238c70SJohn Marino the output gives the same floating-point.
22944a238c70SJohn Marino
22954a238c70SJohn Marino Warning: if b = 2^k, this may be too large. The worst case is when
22964a238c70SJohn Marino the first base-b digit contains only one bit, so we get
22974a238c70SJohn Marino 1 + ceil((n-1)/k) = 2 + floor((n-2)/k) instead.
22984a238c70SJohn Marino */
22994a238c70SJohn Marino m = 1 +
23004a238c70SJohn Marino mpfr_ceil_mul (IS_POW2(b) ? MPFR_PREC(x) - 1 : MPFR_PREC(x), b, 1);
23014a238c70SJohn Marino if (m < 2)
23024a238c70SJohn Marino m = 2;
23034a238c70SJohn Marino }
23044a238c70SJohn Marino
23054a238c70SJohn Marino /* the code below for non-power-of-two bases works for m=1 */
23064a238c70SJohn Marino MPFR_ASSERTN (m >= 2 || (IS_POW2(b) == 0 && m >= 1));
23074a238c70SJohn Marino
23084a238c70SJohn Marino /* x is a floating-point number */
23094a238c70SJohn Marino
23104a238c70SJohn Marino if (MPFR_IS_ZERO(x))
23114a238c70SJohn Marino {
23124a238c70SJohn Marino if (s == NULL)
23134a238c70SJohn Marino s = (char*) (*__gmp_allocate_func) (neg + m + 1);
23144a238c70SJohn Marino s0 = s;
23154a238c70SJohn Marino if (neg)
23164a238c70SJohn Marino *s++ = '-';
23174a238c70SJohn Marino memset (s, '0', m);
23184a238c70SJohn Marino s[m] = '\0';
23194a238c70SJohn Marino *e = 0; /* a bit like frexp() in ISO C99 */
23204a238c70SJohn Marino MPFR_SAVE_EXPO_FREE (expo);
23214a238c70SJohn Marino return s0; /* strlen(s0) = neg + m */
23224a238c70SJohn Marino }
23234a238c70SJohn Marino
23244a238c70SJohn Marino if (s == NULL)
23254a238c70SJohn Marino s = (char*) (*__gmp_allocate_func) (neg + m + 1);
23264a238c70SJohn Marino s0 = s;
23274a238c70SJohn Marino if (neg)
23284a238c70SJohn Marino *s++ = '-';
23294a238c70SJohn Marino
23304a238c70SJohn Marino xp = MPFR_MANT(x);
23314a238c70SJohn Marino
23324a238c70SJohn Marino if (IS_POW2(b))
23334a238c70SJohn Marino {
23344a238c70SJohn Marino int pow2;
23354a238c70SJohn Marino mpfr_exp_t f, r;
23364a238c70SJohn Marino mp_limb_t *x1;
23374a238c70SJohn Marino mp_size_t nb;
23384a238c70SJohn Marino int inexp;
23394a238c70SJohn Marino
23404a238c70SJohn Marino count_leading_zeros (pow2, (mp_limb_t) b);
23414a238c70SJohn Marino pow2 = GMP_NUMB_BITS - pow2 - 1; /* base = 2^pow2 */
23424a238c70SJohn Marino
23434a238c70SJohn Marino /* set MPFR_EXP(x) = f*pow2 + r, 1 <= r <= pow2 */
23444a238c70SJohn Marino f = (MPFR_GET_EXP (x) - 1) / pow2;
23454a238c70SJohn Marino r = MPFR_GET_EXP (x) - f * pow2;
23464a238c70SJohn Marino if (r <= 0)
23474a238c70SJohn Marino {
23484a238c70SJohn Marino f --;
23494a238c70SJohn Marino r += pow2;
23504a238c70SJohn Marino }
23514a238c70SJohn Marino
23524a238c70SJohn Marino /* the first digit will contain only r bits */
23534a238c70SJohn Marino prec = (m - 1) * pow2 + r; /* total number of bits */
2354*ab6d115fSJohn Marino n = MPFR_PREC2LIMBS (prec);
23554a238c70SJohn Marino
23564a238c70SJohn Marino MPFR_TMP_MARK (marker);
23574a238c70SJohn Marino x1 = MPFR_TMP_LIMBS_ALLOC (n + 1);
23584a238c70SJohn Marino nb = n * GMP_NUMB_BITS - prec;
23594a238c70SJohn Marino /* round xp to the precision prec, and put it into x1
23604a238c70SJohn Marino put the carry into x1[n] */
23614a238c70SJohn Marino if ((x1[n] = mpfr_round_raw (x1, xp, MPFR_PREC(x),
23624a238c70SJohn Marino MPFR_IS_STRICTNEG(x),
23634a238c70SJohn Marino prec, rnd, &inexp)))
23644a238c70SJohn Marino {
23654a238c70SJohn Marino /* overflow when rounding x: x1 = 2^prec */
23664a238c70SJohn Marino if (r == pow2) /* prec = m * pow2,
23674a238c70SJohn Marino 2^prec will need (m+1) digits in base 2^pow2 */
23684a238c70SJohn Marino {
23694a238c70SJohn Marino /* divide x1 by 2^pow2, and increase the exponent */
23704a238c70SJohn Marino mpn_rshift (x1, x1, n + 1, pow2);
23714a238c70SJohn Marino f ++;
23724a238c70SJohn Marino }
23734a238c70SJohn Marino else /* 2^prec needs still m digits, but x1 may need n+1 limbs */
23744a238c70SJohn Marino n ++;
23754a238c70SJohn Marino }
23764a238c70SJohn Marino
23774a238c70SJohn Marino /* it remains to shift x1 by nb limbs to the right, since mpn_get_str
23784a238c70SJohn Marino expects a right-normalized number */
23794a238c70SJohn Marino if (nb != 0)
23804a238c70SJohn Marino {
23814a238c70SJohn Marino mpn_rshift (x1, x1, n, nb);
23824a238c70SJohn Marino /* the most significant word may be zero */
23834a238c70SJohn Marino if (x1[n - 1] == 0)
23844a238c70SJohn Marino n --;
23854a238c70SJohn Marino }
23864a238c70SJohn Marino
23874a238c70SJohn Marino mpn_get_str ((unsigned char*) s, b, x1, n);
23884a238c70SJohn Marino for (i=0; i<m; i++)
23894a238c70SJohn Marino s[i] = num_to_text[(int) s[i]];
23904a238c70SJohn Marino s[m] = 0;
23914a238c70SJohn Marino
23924a238c70SJohn Marino /* the exponent of s is f + 1 */
23934a238c70SJohn Marino *e = f + 1;
23944a238c70SJohn Marino
23954a238c70SJohn Marino MPFR_TMP_FREE(marker);
23964a238c70SJohn Marino MPFR_SAVE_EXPO_FREE (expo);
23974a238c70SJohn Marino return (s0);
23984a238c70SJohn Marino }
23994a238c70SJohn Marino
24004a238c70SJohn Marino /* if x < 0, reduce to x > 0 */
24014a238c70SJohn Marino if (neg)
24024a238c70SJohn Marino rnd = MPFR_INVERT_RND(rnd);
24034a238c70SJohn Marino
24044a238c70SJohn Marino g = mpfr_ceil_mul (MPFR_GET_EXP (x) - 1, b, 1);
24054a238c70SJohn Marino exact = 1;
24064a238c70SJohn Marino prec = mpfr_ceil_mul (m, b, 0) + 1;
24074a238c70SJohn Marino exp = ((mpfr_exp_t) m < g) ? g - (mpfr_exp_t) m : (mpfr_exp_t) m - g;
24084a238c70SJohn Marino prec += MPFR_INT_CEIL_LOG2 (prec); /* number of guard bits */
24094a238c70SJohn Marino if (exp != 0) /* add maximal exponentiation error */
24104a238c70SJohn Marino prec += 3 * (mpfr_exp_t) MPFR_INT_CEIL_LOG2 (exp);
24114a238c70SJohn Marino
24124a238c70SJohn Marino MPFR_ZIV_INIT (loop, prec);
24134a238c70SJohn Marino for (;;)
24144a238c70SJohn Marino {
24154a238c70SJohn Marino MPFR_TMP_MARK(marker);
24164a238c70SJohn Marino
24174a238c70SJohn Marino exact = 1;
24184a238c70SJohn Marino
24194a238c70SJohn Marino /* number of limbs */
2420*ab6d115fSJohn Marino n = MPFR_PREC2LIMBS (prec);
24214a238c70SJohn Marino
24224a238c70SJohn Marino /* a will contain the approximation of the mantissa */
24234a238c70SJohn Marino a = MPFR_TMP_LIMBS_ALLOC (n);
24244a238c70SJohn Marino
2425*ab6d115fSJohn Marino nx = MPFR_LIMB_SIZE (x);
24264a238c70SJohn Marino
24274a238c70SJohn Marino if ((mpfr_exp_t) m == g) /* final exponent is 0, no multiplication or
24284a238c70SJohn Marino division to perform */
24294a238c70SJohn Marino {
24304a238c70SJohn Marino if (nx > n)
24314a238c70SJohn Marino exact = mpn_scan1 (xp, 0) >= (nx - n) * GMP_NUMB_BITS;
24324a238c70SJohn Marino err = !exact;
24334a238c70SJohn Marino MPN_COPY2 (a, n, xp, nx);
24344a238c70SJohn Marino exp_a = MPFR_GET_EXP (x) - n * GMP_NUMB_BITS;
24354a238c70SJohn Marino }
24364a238c70SJohn Marino else if ((mpfr_exp_t) m > g) /* we have to multiply x by b^exp */
24374a238c70SJohn Marino {
24384a238c70SJohn Marino mp_limb_t *x1;
24394a238c70SJohn Marino
24404a238c70SJohn Marino /* a2*2^exp_a = b^e */
24414a238c70SJohn Marino err = mpfr_mpn_exp (a, &exp_a, b, exp, n);
24424a238c70SJohn Marino /* here, the error on a is at most 2^err ulps */
24434a238c70SJohn Marino exact = (err == -1);
24444a238c70SJohn Marino
24454a238c70SJohn Marino /* x = x1*2^(n*GMP_NUMB_BITS) */
24464a238c70SJohn Marino x1 = (nx >= n) ? xp + nx - n : xp;
24474a238c70SJohn Marino nx1 = (nx >= n) ? n : nx; /* nx1 = min(n, nx) */
24484a238c70SJohn Marino
24494a238c70SJohn Marino /* test si exact */
24504a238c70SJohn Marino if (nx > n)
24514a238c70SJohn Marino exact = (exact &&
24524a238c70SJohn Marino ((mpn_scan1 (xp, 0) >= (nx - n) * GMP_NUMB_BITS)));
24534a238c70SJohn Marino
24544a238c70SJohn Marino /* we loose one more bit in the multiplication,
24554a238c70SJohn Marino except when err=0 where we loose two bits */
24564a238c70SJohn Marino err = (err <= 0) ? 2 : err + 1;
24574a238c70SJohn Marino
24584a238c70SJohn Marino /* result = a * x */
24594a238c70SJohn Marino result = MPFR_TMP_LIMBS_ALLOC (n + nx1);
24604a238c70SJohn Marino mpn_mul (result, a, n, x1, nx1);
24614a238c70SJohn Marino exp_a += MPFR_GET_EXP (x);
24624a238c70SJohn Marino if (mpn_scan1 (result, 0) < (nx1 * GMP_NUMB_BITS))
24634a238c70SJohn Marino exact = 0;
24644a238c70SJohn Marino
24654a238c70SJohn Marino /* normalize a and truncate */
24664a238c70SJohn Marino if ((result[n + nx1 - 1] & MPFR_LIMB_HIGHBIT) == 0)
24674a238c70SJohn Marino {
24684a238c70SJohn Marino mpn_lshift (a, result + nx1, n , 1);
24694a238c70SJohn Marino a[0] |= result[nx1 - 1] >> (GMP_NUMB_BITS - 1);
24704a238c70SJohn Marino exp_a --;
24714a238c70SJohn Marino }
24724a238c70SJohn Marino else
24734a238c70SJohn Marino MPN_COPY (a, result + nx1, n);
24744a238c70SJohn Marino }
24754a238c70SJohn Marino else
24764a238c70SJohn Marino {
24774a238c70SJohn Marino mp_limb_t *x1;
24784a238c70SJohn Marino
24794a238c70SJohn Marino /* a2*2^exp_a = b^e */
24804a238c70SJohn Marino err = mpfr_mpn_exp (a, &exp_a, b, exp, n);
24814a238c70SJohn Marino exact = (err == -1);
24824a238c70SJohn Marino
24834a238c70SJohn Marino /* allocate memory for x1, result and reste */
24844a238c70SJohn Marino x1 = MPFR_TMP_LIMBS_ALLOC (2 * n);
24854a238c70SJohn Marino result = MPFR_TMP_LIMBS_ALLOC (n + 1);
24864a238c70SJohn Marino reste = MPFR_TMP_LIMBS_ALLOC (n);
24874a238c70SJohn Marino
24884a238c70SJohn Marino /* initialize x1 = x */
24894a238c70SJohn Marino MPN_COPY2 (x1, 2 * n, xp, nx);
24904a238c70SJohn Marino if ((exact) && (nx > 2 * n) &&
24914a238c70SJohn Marino (mpn_scan1 (xp, 0) < (nx - 2 * n) * GMP_NUMB_BITS))
24924a238c70SJohn Marino exact = 0;
24934a238c70SJohn Marino
24944a238c70SJohn Marino /* result = x / a */
24954a238c70SJohn Marino mpn_tdiv_qr (result, reste, 0, x1, 2 * n, a, n);
24964a238c70SJohn Marino exp_a = MPFR_GET_EXP (x) - exp_a - 2 * n * GMP_NUMB_BITS;
24974a238c70SJohn Marino
24984a238c70SJohn Marino /* test if division was exact */
24994a238c70SJohn Marino if (exact)
25004a238c70SJohn Marino exact = mpn_popcount (reste, n) == 0;
25014a238c70SJohn Marino
25024a238c70SJohn Marino /* normalize the result and copy into a */
25034a238c70SJohn Marino if (result[n] == 1)
25044a238c70SJohn Marino {
25054a238c70SJohn Marino mpn_rshift (a, result, n, 1);
25064a238c70SJohn Marino a[n - 1] |= MPFR_LIMB_HIGHBIT;;
25074a238c70SJohn Marino exp_a ++;
25084a238c70SJohn Marino }
25094a238c70SJohn Marino else
25104a238c70SJohn Marino MPN_COPY (a, result, n);
25114a238c70SJohn Marino
25124a238c70SJohn Marino err = (err == -1) ? 2 : err + 2;
25134a238c70SJohn Marino }
25144a238c70SJohn Marino
25154a238c70SJohn Marino /* check if rounding is possible */
25164a238c70SJohn Marino if (exact)
25174a238c70SJohn Marino err = -1;
25184a238c70SJohn Marino ret = mpfr_get_str_aux (s, e, a, n, exp_a, err, b, m, rnd);
25194a238c70SJohn Marino if (ret == MPFR_ROUND_FAILED)
25204a238c70SJohn Marino {
25214a238c70SJohn Marino /* too large error: increment the working precision */
25224a238c70SJohn Marino MPFR_ZIV_NEXT (loop, prec);
25234a238c70SJohn Marino }
25244a238c70SJohn Marino else if (ret == -MPFR_ROUND_FAILED)
25254a238c70SJohn Marino {
25264a238c70SJohn Marino /* too many digits in mantissa: exp = |m-g| */
25274a238c70SJohn Marino if ((mpfr_exp_t) m > g) /* exp = m - g, multiply by b^exp */
25284a238c70SJohn Marino {
25294a238c70SJohn Marino g++;
25304a238c70SJohn Marino exp --;
25314a238c70SJohn Marino }
25324a238c70SJohn Marino else /* exp = g - m, divide by b^exp */
25334a238c70SJohn Marino {
25344a238c70SJohn Marino g++;
25354a238c70SJohn Marino exp ++;
25364a238c70SJohn Marino }
25374a238c70SJohn Marino }
25384a238c70SJohn Marino else
25394a238c70SJohn Marino break;
25404a238c70SJohn Marino
25414a238c70SJohn Marino MPFR_TMP_FREE(marker);
25424a238c70SJohn Marino }
25434a238c70SJohn Marino MPFR_ZIV_FREE (loop);
25444a238c70SJohn Marino
25454a238c70SJohn Marino *e += g;
25464a238c70SJohn Marino
25474a238c70SJohn Marino MPFR_TMP_FREE(marker);
25484a238c70SJohn Marino MPFR_SAVE_EXPO_FREE (expo);
25494a238c70SJohn Marino return s0;
25504a238c70SJohn Marino }
25514a238c70SJohn Marino
mpfr_free_str(char * str)25524a238c70SJohn Marino void mpfr_free_str (char *str)
25534a238c70SJohn Marino {
25544a238c70SJohn Marino (*__gmp_free_func) (str, strlen (str) + 1);
25554a238c70SJohn Marino }
2556