MANT_DIG
if (bits > MANT_DIG)
const mp_size_t least_idx = (bits - MANT_DIG) / BITS_PER_MP_LIMB;
const mp_size_t least_bit = (bits - MANT_DIG) % BITS_PER_MP_LIMB;
const mp_size_t target_bit = (MANT_DIG - 1) % BITS_PER_MP_LIMB;
if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 1)
dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 1;
if (BITS_PER_MP_LIMB - cnt > MANT_DIG) \
used = MANT_DIG + cnt; \
bits = MANT_DIG + 1; \
else if (bits + BITS_PER_MP_LIMB <= MANT_DIG) \
used = MANT_DIG - bits; \
while (bits <= MANT_DIG);
if (bits + BITS_PER_MP_LIMB <= MANT_DIG)
used = MANT_DIG - bits;
while (bits <= MANT_DIG)
if (bits + empty * BITS_PER_MP_LIMB <= MANT_DIG)
used = MANT_DIG - bits;
while (bits <= MANT_DIG)
#define NDIG (MAX_10_EXP - MIN_10_EXP + 2 * MANT_DIG)
#define HEXNDIG ((MAX_EXP - MIN_EXP + 7) / 8 + 2 * MANT_DIG)
#define RETURN_LIMB_SIZE howmany (MANT_DIG, BITS_PER_MP_LIMB)
#define MPNSIZE (howmany (MAX_EXP + 2 * MANT_DIG, BITS_PER_MP_LIMB) \
if (shift > MANT_DIG)
if (shift == MANT_DIG)
round_bit = (MANT_DIG - 1) % BITS_PER_MP_LIMB;
if (((MANT_DIG % BITS_PER_MP_LIMB) == 0 && cy) ||
((MANT_DIG % BITS_PER_MP_LIMB) != 0 &&
& (((mp_limb_t) 1) << (MANT_DIG % BITS_PER_MP_LIMB))) != 0))
|= ((mp_limb_t) 1) << ((MANT_DIG - 1) % BITS_PER_MP_LIMB);
& (((mp_limb_t) 1) << ((MANT_DIG - 1) % BITS_PER_MP_LIMB)))
-MIN_EXP + MANT_DIG + 4 * int_no :
-MIN_10_EXP + MANT_DIG + int_no :
int idx = (MANT_DIG - 1) / BITS_PER_MP_LIMB;
int pos = (MANT_DIG - 1) % BITS_PER_MP_LIMB;