Lines Matching refs:BNS

183 mp_add(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
186 BNS carry; /* carry flag */
226 mp_sub(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
229 BNS carry; /* carry flag */
275 mp_lshift(BNS *rop, BNS *op, BNI len, long shift)
285 BNS hi, lo;
306 memmove(rop + size - len, op, sizeof(BNS) * len);
309 memset(rop, '\0', sizeof(BNS) * words);
315 mp_rshift(BNS *rop, BNS *op, BNI len, long shift)
326 BNS hi, lo;
350 memmove(rop, op + len - size, size * sizeof(BNS));
359 mp_base_mul(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
363 BNS carry; /* carry value */
370 carry = (BNS)(value >> BNSBITS);
374 carry = (BNS)(value >> BNSBITS);
385 carry = (BNS)(value >> BNSBITS);
390 carry = (BNS)(value >> BNSBITS);
417 mp_karatsuba_mul(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
421 BNS *t; /* temporary memory for t product */
422 BNS *u; /* temporary memory for u product */
423 BNS *r; /* pointer to rop */
440 t = mp_malloc(sizeof(BNS) * tlen);
447 u = mp_malloc(sizeof(BNS) * ulen);
464 memset(t, '\0', sizeof(BNS) * tlen);
469 memset(u, '\0', sizeof(BNS) * ulen);
581 mp_toom_mul(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
585 BNS carry;
589 BNS *a, *b, *c, *d, *e, *U[3], *V[3];
597 U[0] = mp_malloc(sizeof(BNS) * (x + 2));
598 V[0] = mp_malloc(sizeof(BNS) * (x + 2));
599 U[1] = mp_malloc(sizeof(BNS) * (x + 1));
600 V[1] = mp_malloc(sizeof(BNS) * (x + 1));
601 U[2] = mp_malloc(sizeof(BNS) * (x + 2));
602 V[2] = mp_malloc(sizeof(BNS) * (x + 2));
650 b = mp_calloc(1, sizeof(BNS) * (Ul[0] * Vl[0]));
656 c = mp_calloc(1, sizeof(BNS) * (Ul[1] * Vl[1]));
662 d = mp_calloc(1, sizeof(BNS) * (Ul[2] * Vl[2]));
668 a = mp_calloc(1, sizeof(BNS) * (x + x));
672 e = mp_calloc(1, sizeof(BNS) * (l1 + l2));
721 b[i] = (BNS)(value / 3);
737 memset(rop, '\0', sizeof(BNS) * (len1 + len2));
766 mp_mul(BNS *rop, BNS *op1, BNS *op2, BNI len1, BNI len2)
779 BNS *ptr;
791 ptr = mp_calloc(1, sizeof(BNS) * (len2 + len2));
793 ptr = mp_calloc(1, sizeof(BNS) * (len1 + len2));
804 memset(ptr, '\0', sizeof(BNS) * (MIN(len1, len2) + len2));