Lines Matching refs:ob_digit
33 return ((stwodigits)Py_SIZE(x)) * x->ob_digit[0];
130 while (i > 0 && v->ob_digit[i-1] == 0)
142 ((PY_SSIZE_T_MAX - offsetof(PyLongObject, ob_digit))/sizeof(digit))
156 /* Number of bytes needed is: offsetof(PyLongObject, ob_digit) +
161 result = PyObject_Malloc(offsetof(PyLongObject, ob_digit) +
191 result->ob_digit[i] = src->ob_digit[i];
211 v->ob_digit[0] = abs_x;
242 digit *p = v->ob_digit;
315 digit *p = v->ob_digit;
342 digit *p = v->ob_digit; \
421 v->ob_digit[i] = bits;
485 res = -(sdigit)v->ob_digit[0];
491 res = v->ob_digit[0];
502 x = (x << PyLong_SHIFT) | v->ob_digit[i];
586 case -1: return -(sdigit)v->ob_digit[0];
588 case 1: return v->ob_digit[0];
598 x = (x << PyLong_SHIFT) | v->ob_digit[i];
648 case 1: return v->ob_digit[0];
652 x = (x << PyLong_SHIFT) | v->ob_digit[i];
692 case 1: return v->ob_digit[0];
696 x = (x << PyLong_SHIFT) | v->ob_digit[i];
725 case 1: return v->ob_digit[0];
734 x = (x << PyLong_SHIFT) | v->ob_digit[i];
795 assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0);
797 digit msd = v->ob_digit[ndigits - 1];
824 Py_ssize_t idigit = 0; /* next free index in v->ob_digit */
906 v->ob_digit[idigit] = (digit)(accum & PyLong_MASK);
916 v->ob_digit[idigit] = (digit)accum;
930 Py_ssize_t i; /* index into v->ob_digit */
969 assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0);
975 digit thisdigit = v->ob_digit[i];
1142 digit *p = v->ob_digit;
1185 digit *p = v->ob_digit;
1225 bytes = -(sdigit)v->ob_digit[0];
1231 bytes = v->ob_digit[0];
1270 case 1: return v->ob_digit[0];
1301 case 1: return v->ob_digit[0];
1311 x = (x << PyLong_SHIFT) | v->ob_digit[i];
1382 res = -(sdigit)v->ob_digit[0];
1388 res = v->ob_digit[0];
1399 x = (x << PyLong_SHIFT) + v->ob_digit[i];
1670 *prem = inplace_divrem1(z->ob_digit, a->ob_digit, size, n);
1699 (long)inplace_rem1(a->ob_digit, size, n)
1772 pin = a->ob_digit;
1773 pout = scratch->ob_digit;
1978 bit_length_digit(a->ob_digit[size_a - 1]);
2015 accum |= (twodigits)a->ob_digit[i] << accumbits; \
2232 pdigit = z->ob_digit;
2244 assert(pdigit - z->ob_digit <= n);
2253 assert(pdigit - z->ob_digit <= n);
2255 while (pdigit - z->ob_digit < n)
2495 * need to initialize z->ob_digit -- no slot is read up before
2551 pz = z->ob_digit;
2574 memcpy(tmp->ob_digit,
2575 z->ob_digit,
2579 z->ob_digit[size_z] = (digit)c;
2712 a->ob_digit[size_a-1] < b->ob_digit[size_b-1])) {
2725 z = divrem1(a, b->ob_digit[0], &rem);
2777 a->ob_digit[size_a-1] < b->ob_digit[size_b-1])) {
2783 *prem = rem1(a, b->ob_digit[0]);
2843 d = PyLong_SHIFT - bit_length_digit(w1->ob_digit[size_w-1]);
2844 carry = v_lshift(w->ob_digit, w1->ob_digit, size_w, d);
2846 carry = v_lshift(v->ob_digit, v1->ob_digit, size_v, d);
2847 if (carry != 0 || v->ob_digit[size_v-1] >= w->ob_digit[size_w-1]) {
2848 v->ob_digit[size_v] = carry;
2852 /* Now v->ob_digit[size_v-1] < w->ob_digit[size_w-1], so quotient has
2863 v0 = v->ob_digit;
2864 w0 = w->ob_digit;
2867 for (vk = v0+k, ak = a->ob_digit + k; vk-- > v0;) {
2972 a_bits = bit_length_digit(a->ob_digit[a_size-1]);
3010 rem = v_lshift(x_digits + x_size, a->ob_digit, a_size,
3018 rem = v_rshift(x_digits, a->ob_digit + shift_digits,
3029 if (a->ob_digit[--shift_digits]) {
3109 diff = (sdigit) a->ob_digit[i] - (sdigit) b->ob_digit[i];
3140 case -1: return v->ob_digit[0]==1 ? -2 : -(sdigit)v->ob_digit[0];
3142 case 1: return v->ob_digit[0];
3152 want to compute x * 2**PyLong_SHIFT + v->ob_digit[i] modulo
3178 x += v->ob_digit[i];
3210 carry += a->ob_digit[i] + b->ob_digit[i];
3211 z->ob_digit[i] = carry & PyLong_MASK;
3215 carry += a->ob_digit[i];
3216 z->ob_digit[i] = carry & PyLong_MASK;
3219 z->ob_digit[i] = carry;
3245 while (--i >= 0 && a->ob_digit[i] == b->ob_digit[i])
3249 if (a->ob_digit[i] < b->ob_digit[i]) {
3261 borrow = a->ob_digit[i] - b->ob_digit[i] - borrow;
3262 z->ob_digit[i] = borrow & PyLong_MASK;
3267 borrow = a->ob_digit[i] - borrow;
3268 z->ob_digit[i] = borrow & PyLong_MASK;
3369 memset(z->ob_digit, 0, Py_SIZE(z) * sizeof(digit));
3377 digit *paend = a->ob_digit + size_a;
3380 twodigits f = a->ob_digit[i];
3381 digit *pz = z->ob_digit + (i << 1);
3382 digit *pa = a->ob_digit + i + 1;
3431 twodigits f = a->ob_digit[i];
3432 digit *pz = z->ob_digit + i;
3433 digit *pb = b->ob_digit;
3434 digit *pbend = b->ob_digit + size_b;
3482 memcpy(lo->ob_digit, n->ob_digit, size_lo * sizeof(digit));
3483 memcpy(hi->ob_digit, n->ob_digit + size_lo, size_hi * sizeof(digit));
3583 memset(ret->ob_digit, 0xDF, Py_SIZE(ret) * sizeof(digit));
3590 memcpy(ret->ob_digit + 2*shift, t1->ob_digit,
3596 memset(ret->ob_digit + 2*shift + Py_SIZE(t1), 0,
3606 memcpy(ret->ob_digit, t2->ob_digit, Py_SIZE(t2) * sizeof(digit));
3611 memset(ret->ob_digit + Py_SIZE(t2), 0, i * sizeof(digit));
3617 (void)v_isub(ret->ob_digit + shift, i, t2->ob_digit, Py_SIZE(t2));
3620 (void)v_isub(ret->ob_digit + shift, i, t1->ob_digit, Py_SIZE(t1));
3650 (void)v_iadd(ret->ob_digit + shift, i, t3->ob_digit, Py_SIZE(t3));
3733 memset(ret->ob_digit, 0, Py_SIZE(ret) * sizeof(digit));
3746 memcpy(bslice->ob_digit, b->ob_digit + nbdone,
3754 (void)v_iadd(ret->ob_digit + nbdone, Py_SIZE(ret) - nbdone,
3755 product->ob_digit, Py_SIZE(product));
3803 sdigit left = a->ob_digit[0];
3804 sdigit right = b->ob_digit[0];
3826 sdigit left = a->ob_digit[0];
3827 sdigit right = b->ob_digit[0];
4100 a->ob_digit[MANT_DIG_DIGITS] >> MANT_DIG_BITS == 0);
4103 b->ob_digit[MANT_DIG_DIGITS] >> MANT_DIG_BITS == 0);
4106 da = a->ob_digit[--a_size];
4108 da = da * PyLong_BASE + a->ob_digit[--a_size];
4109 db = b->ob_digit[--b_size];
4111 db = db * PyLong_BASE + b->ob_digit[--b_size];
4125 diff = diff * PyLong_SHIFT + bit_length_digit(a->ob_digit[a_size - 1]) -
4126 bit_length_digit(b->ob_digit[b_size - 1]);
4155 x->ob_digit[i] = 0;
4156 rem = v_lshift(x->ob_digit + shift_digits, a->ob_digit,
4158 x->ob_digit[a_size + shift_digits] = rem;
4168 rem = v_rshift(x->ob_digit, a->ob_digit + shift_digits,
4174 if (a->ob_digit[--shift_digits])
4183 digit rem = inplace_divrem1(x->ob_digit, x->ob_digit, x_size,
4184 b->ob_digit[0]);
4202 x_bits = (x_size-1)*PyLong_SHIFT+bit_length_digit(x->ob_digit[x_size-1]);
4210 low = x->ob_digit[0] | inexact;
4213 x->ob_digit[0] = low & ~(2U*mask-1U);
4216 dx = x->ob_digit[--x_size];
4218 dx = dx * PyLong_BASE + x->ob_digit[--x_size];
4443 if ((Py_SIZE(c) == 1) && (c->ob_digit[0] == 1)) {
4522 digit bi = i ? b->ob_digit[i-1] : 0;
4570 bi = b->ob_digit[i];
4617 const digit bi = b->ob_digit[i];
4789 accum = a->ob_digit[wordshift];
4806 sticky |= a->ob_digit[j];
4813 accum += (twodigits)a->ob_digit[j] << hishift;
4814 z->ob_digit[i] = (digit)(accum & PyLong_MASK);
4818 z->ob_digit[newsize - 1] = (digit)accum;
4886 z->ob_digit[i] = 0;
4889 accum |= (twodigits)a->ob_digit[j] << remshift;
4890 z->ob_digit[i] = (digit)(accum & PyLong_MASK);
4894 z->ob_digit[newsize-1] = (digit)accum;
4977 v_complement(z->ob_digit, a->ob_digit, size_a);
4993 v_complement(z->ob_digit, b->ob_digit, size_b);
5043 z->ob_digit[i] = a->ob_digit[i] & b->ob_digit[i];
5047 z->ob_digit[i] = a->ob_digit[i] | b->ob_digit[i];
5051 z->ob_digit[i] = a->ob_digit[i] ^ b->ob_digit[i];
5060 z->ob_digit[i] = a->ob_digit[i] ^ PyLong_MASK;
5062 memcpy(&z->ob_digit[i], &a->ob_digit[i],
5068 z->ob_digit[size_z] = PyLong_MASK;
5069 v_complement(z->ob_digit, z->ob_digit, size_z+1);
5163 nbits = bit_length_digit(a->ob_digit[size_a-1]);
5180 x = (((twodigits)a->ob_digit[size_a-1] << (2*PyLong_SHIFT-nbits)) |
5181 ((twodigits)a->ob_digit[size_a-2] << (PyLong_SHIFT-nbits)) |
5182 (a->ob_digit[size_a-3] >> nbits));
5184 y = ((size_b >= size_a - 2 ? b->ob_digit[size_a-3] >> nbits : 0) |
5185 (size_b >= size_a - 1 ? (twodigits)b->ob_digit[size_a-2] << (PyLong_SHIFT-nbits) : 0) |
5186 (size_b >= size_a ? (twodigits)b->ob_digit[size_a-1] << (2*PyLong_SHIFT-nbits) : 0));
5251 a_end = a->ob_digit + size_a;
5252 b_end = b->ob_digit + size_b;
5255 a_digit = a->ob_digit;
5256 b_digit = b->ob_digit;
5257 c_digit = c->ob_digit;
5258 d_digit = d->ob_digit;
5431 newobj->ob_digit[i] = tmp->ob_digit[i];
5542 quo_is_odd = Py_SIZE(quo) != 0 && ((quo->ob_digit[0] & 1) != 0);
5669 res = offsetof(PyLongObject, ob_digit)
5703 msd = ((PyLongObject *)self)->ob_digit[ndigits-1];
5778 bit_count += popcount_digit(z->ob_digit[i]);
5788 PyObject *x = PyLong_FromLong(popcount_digit(z->ob_digit[i]));
6061 offsetof(PyLongObject, ob_digit), /* tp_basicsize */