Home | History | Annotate | Download | only in Objects

Lines Matching defs:ah

2703     PyLongObject *ah = NULL;
2712 /* (ah*X+al)(bh*X+bl) = ah*bh*X*X + (ah*bl + al*bh)*X + al*bl
2713 * Let k = (ah+al)*(bh+bl) = ah*bl + al*bh + ah*bh + al*bl
2715 * ah*bh*X*X + (k - ah*bh - al*bl)*X + al*bl
2743 * case with ah==0, and Karatsuba may be (even much) less efficient
2753 if (kmul_split(a, shift, &ah, &al) < 0) goto fail;
2754 assert(Py_SIZE(ah) > 0); /* the split isn't degenerate */
2757 bh = ah;
2767 * 2. Compute ah*bh, and copy into result at 2*shift.
2775 * 5. Subtract ah*bh from the result, starting at shift.
2776 * 6. Compute (ah+al)*(bh+bl), and add it into the result starting
2788 /* 2. t1 <- ah*bh, and copy into high digits of result. */
2789 if ((t1 = k_mul(ah, bh)) == NULL) goto fail;
2795 /* Zero-out the digits higher than the ah*bh copy. */
2815 /* 4 & 5. Subtract ah*bh (t1) and al*bl (t2). We do al*bl first
2825 /* 6. t3 <- (ah+al)(bh+bl), and add into result. */
2826 if ((t1 = x_add(ah, al)) == NULL) goto fail;
2827 Py_DECREF(ah);
2829 ah = al = NULL;
2859 Py_XDECREF(ah);
2886 If asize == bsize, ah has c(bsize/2) digits, else ah has at most f(bsize/2)
2887 digits, and al has at most f(bsize/2) digits in any case. So ah+al has at
2890 The product (ah+al)*(bh+bl) therefore has at most
2906 Note that since there's always enough room for (ah+al)*(bh+bl), and that's
2907 clearly >= each of ah*bh and al*bl, there's always enough room to subtract
2908 ah*bh and al*bl too.