Lines Matching refs:n2
305 /* r is 2*n2 words in size,
306 * a and b are both n2 words in size.
307 * n2 must be a power of 2.
309 * t must be 2*n2 words in size
315 /* dnX may not be positive, but n2/2+dnX has to be */
316 static void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,
318 int n = n2 / 2, c1, c2;
323 /* Only call bn_mul_comba 8 if n2 == 8 and the
326 if (n2 == 8 && dna == 0 && dnb == 0) {
332 if (n2 < BN_MUL_RECURSIVE_SIZE_NORMAL) {
333 bn_mul_normal(r, a, n2 + dna, b, n2 + dnb);
335 memset(&r[2 * n2 + dna + dnb], 0, sizeof(BN_ULONG) * -(dna + dnb));
379 bn_mul_comba4(&(t[n2]), t, &(t[n]));
381 memset(&(t[n2]), 0, 8 * sizeof(BN_ULONG));
385 bn_mul_comba4(&(r[n2]), &(a[n]), &(b[n]));
389 bn_mul_comba8(&(t[n2]), t, &(t[n]));
391 memset(&(t[n2]), 0, 16 * sizeof(BN_ULONG));
395 bn_mul_comba8(&(r[n2]), &(a[n]), &(b[n]));
397 p = &(t[n2 * 2]);
399 bn_mul_recursive(&(t[n2]), t, &(t[n]), n, 0, 0, p);
401 memset(&(t[n2]), 0, n2 * sizeof(BN_ULONG));
404 bn_mul_recursive(&(r[n2]), &(a[n]), &(b[n]), n, dna, dnb, p);
411 c1 = (int)(bn_add_words(t, r, &(r[n2]), n2));
415 c1 -= (int)(bn_sub_words(&(t[n2]), t, &(t[n2]), n2));
418 c1 += (int)(bn_add_words(&(t[n2]), &(t[n2]), t, n2));
425 c1 += (int)(bn_add_words(&(r[n]), &(r[n]), &(t[n2]), n2));
427 p = &(r[n + n2]);
450 int i, j, n2 = n * 2;
493 bn_mul_comba8(&(t[n2]), t, &(t[n]));
495 bn_mul_normal(&(r[n2]), &(a[n]), tna, &(b[n]), tnb);
496 memset(&(r[n2 + tna + tnb]), 0, sizeof(BN_ULONG) * (n2 - tna - tnb));
498 p = &(t[n2 * 2]);
499 bn_mul_recursive(&(t[n2]), t, &(t[n]), n, 0, 0, p);
511 bn_mul_recursive(&(r[n2]), &(a[n]), &(b[n]), i, tna - i, tnb - i, p);
512 memset(&(r[n2 + i * 2]), 0, sizeof(BN_ULONG) * (n2 - i * 2));
515 bn_mul_part_recursive(&(r[n2]), &(a[n]), &(b[n]), i, tna - i, tnb - i, p);
516 memset(&(r[n2 + tna + tnb]), 0, sizeof(BN_ULONG) * (n2 - tna - tnb));
519 memset(&(r[n2]), 0, sizeof(BN_ULONG) * n2);
522 bn_mul_normal(&(r[n2]), &(a[n]), tna, &(b[n]), tnb);
530 bn_mul_part_recursive(&(r[n2]), &(a[n]), &(b[n]), i, tna - i,
534 bn_mul_recursive(&(r[n2]), &(a[n]), &(b[n]), i, tna - i, tnb - i,
548 c1 = (int)(bn_add_words(t, r, &(r[n2]), n2));
552 c1 -= (int)(bn_sub_words(&(t[n2]), t, &(t[n2]), n2));
555 c1 += (int)(bn_add_words(&(t[n2]), &(t[n2]), t, n2));
562 c1 += (int)(bn_add_words(&(r[n]), &(r[n]), &(t[n2]), n2));
564 p = &(r[n + n2]);
724 static void bn_sqr_recursive(BN_ULONG *r, const BN_ULONG *a, int n2, BN_ULONG *t) {
725 int n = n2 / 2;
729 if (n2 == 4) {
732 } else if (n2 == 8) {
736 if (n2 < BN_SQR_RECURSIVE_SIZE_NORMAL) {
737 bn_sqr_normal(r, a, n2, t);
752 p = &(t[n2 * 2]);
755 bn_sqr_recursive(&(t[n2]), t, n, p);
757 memset(&(t[n2]), 0, n2 * sizeof(BN_ULONG));
760 bn_sqr_recursive(&(r[n2]), &(a[n]), n, p);
766 c1 = (int)(bn_add_words(t, r, &(r[n2]), n2));
769 c1 -= (int)(bn_sub_words(&(t[n2]), t, &(t[n2]), n2));
775 c1 += (int)(bn_add_words(&(r[n]), &(r[n]), &(t[n2]), n2));
777 p = &(r[n + n2]);