Lines Matching defs:a_bits
2956 Py_ssize_t a_size, a_bits, shift_digits, shift_bits, x_size;
2972 a_bits = bit_length_digit(a->ob_digit[a_size-1]);
2974 "if ((a_size - 1) * PyLong_SHIFT + a_bits > PY_SSIZE_T_MAX) ..." */
2977 a_bits > (PY_SSIZE_T_MAX - 1) % PyLong_SHIFT + 1))
2979 a_bits = (a_size - 1) * PyLong_SHIFT + a_bits;
2982 (shifting left if a_bits <= DBL_MANT_DIG + 2).
2987 1 + a_size + (DBL_MANT_DIG + 2 - a_bits) // PyLong_SHIFT
2991 a_size - (a_bits - DBL_MANT_DIG - 2) // PyLong_SHIFT
2993 digits. Using a_size = 1 + (a_bits - 1) // PyLong_SHIFT along with
3006 if (a_bits <= DBL_MANT_DIG + 2) {
3007 shift_digits = (DBL_MANT_DIG + 2 - a_bits) / PyLong_SHIFT;
3008 shift_bits = (DBL_MANT_DIG + 2 - a_bits) % PyLong_SHIFT;
3016 shift_digits = (a_bits - DBL_MANT_DIG - 2) / PyLong_SHIFT;
3017 shift_bits = (a_bits - DBL_MANT_DIG - 2) % PyLong_SHIFT;
3045 if (a_bits == PY_SSIZE_T_MAX)
3048 a_bits += 1;
3051 *e = a_bits;
4010 at the end. Now write a_bits and b_bits for the bit lengths of a
4011 and b respectively (that is, a_bits = 1 + floor(log_2(a)); likewise
4014 2**(a_bits - b_bits - 1) < a/b < 2**(a_bits - b_bits + 1).
4016 So if a_bits - b_bits > DBL_MAX_EXP then a/b > 2**DBL_MAX_EXP and
4017 so overflows. Similarly, if a_bits - b_bits < DBL_MIN_EXP -
4021 DBL_MIN_EXP - DBL_MANT_DIG - 1 <= a_bits - b_bits <= DBL_MAX_EXP.
4025 in the rounding decisions. Writing a_bits and b_bits for the
4029 shift = a_bits - b_bits - DBL_MANT_DIG - 2
4036 shift = MAX(a_bits - b_bits, DBL_MIN_EXP) - DBL_MANT_DIG - 2
4045 a_bits - b_bits >= DBL_MIN_EXP - DBL_MANT_DIG - 1, it follows
4127 /* Now diff = a_bits - b_bits. */