Lines Matching defs:len1

183 mp_add(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
189 if (len1 < len2)
190 MP_SWAP(op1, op2, len1, len2);
204 for (; size < len1; size++) {
212 for (; carry && size < len1; size++) {
217 size = len1;
226 mp_sub(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
251 for (; size < len1; size++) {
259 for (; carry && size < len1; size++) {
264 size = len1;
355 /* rop must be a pointer to len1 + len2 elements
359 mp_base_mul(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
364 long size = len1 + len2;
380 for (i = 1; i < len1; i++) {
417 mp_karatsuba_mul(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
427 if (len1 >= len2)
428 x = (len1 + 1) >> 1;
434 la1 = len1 - x;
481 xlen = len1 + len2;
581 mp_toom_mul(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
592 x = (len1 + len2 + 4) / 6;
593 l1 = len1 - (x << 1); /* length of remaining piece of op1 */
737 memset(rop, '\0', sizeof(BNS) * (len1 + len2));
740 xsize = (len1 + len2) - i;
766 mp_mul(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
768 if (len1 < len2)
769 MP_SWAP(op1, op2, len1, len2);
771 if (len1 < KARATSUBA || len2 < KARATSUBA)
772 return (mp_base_mul(rop, op1, op2, len1, len2));
773 else if (len1 < TOOM && len2 < TOOM && len2 > ((len1 + 1) >> 1))
774 return (mp_karatsuba_mul(rop, op1, op2, len1, len2));
775 else if (len1 >= TOOM && len2 >= TOOM && (len2 + 2) / 3 == (len1 + 2) / 3)
776 return (mp_toom_mul(rop, op1, op2, len1, len2));
783 xsize = len1 + len2;
786 len1 -= len2;
790 if (len1 > len2)
793 ptr = mp_calloc(1, sizeof(BNS) * (len1 + len2));
796 while (len1 >= len2) {
800 len1 -= len2;
804 memset(ptr, '\0', sizeof(BNS) * (MIN(len1, len2) + len2));
807 /* len1 was not a multiple of len2 */
808 if (len1) {
810 psize = mp_mul(ptr, op2, op1, len2, len1);