Lines Matching refs:n2

303 /* r is 2*n2 words in size,
304 * a and b are both n2 words in size.
305 * n2 must be a power of 2.
307 * t must be 2*n2 words in size
313 /* dnX may not be positive, but n2/2+dnX has to be */
314 static void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,
316 int n = n2 / 2, c1, c2;
321 /* Only call bn_mul_comba 8 if n2 == 8 and the
324 if (n2 == 8 && dna == 0 && dnb == 0) {
330 if (n2 < BN_MUL_RECURSIVE_SIZE_NORMAL) {
331 bn_mul_normal(r, a, n2 + dna, b, n2 + dnb);
333 memset(&r[2 * n2 + dna + dnb], 0, sizeof(BN_ULONG) * -(dna + dnb));
376 bn_mul_comba4(&(t[n2]), t, &(t[n]));
378 memset(&(t[n2]), 0, 8 * sizeof(BN_ULONG));
382 bn_mul_comba4(&(r[n2]), &(a[n]), &(b[n]));
386 bn_mul_comba8(&(t[n2]), t, &(t[n]));
388 memset(&(t[n2]), 0, 16 * sizeof(BN_ULONG));
392 bn_mul_comba8(&(r[n2]), &(a[n]), &(b[n]));
394 p = &(t[n2 * 2]);
396 bn_mul_recursive(&(t[n2]), t, &(t[n]), n, 0, 0, p);
398 memset(&(t[n2]), 0, n2 * sizeof(BN_ULONG));
401 bn_mul_recursive(&(r[n2]), &(a[n]), &(b[n]), n, dna, dnb, p);
408 c1 = (int)(bn_add_words(t, r, &(r[n2]), n2));
412 c1 -= (int)(bn_sub_words(&(t[n2]), t, &(t[n2]), n2));
415 c1 += (int)(bn_add_words(&(t[n2]), &(t[n2]), t, n2));
422 c1 += (int)(bn_add_words(&(r[n]), &(r[n]), &(t[n2]), n2));
424 p = &(r[n + n2]);
447 int i, j, n2 = n * 2;
490 bn_mul_comba8(&(t[n2]), t, &(t[n]));
492 bn_mul_normal(&(r[n2]), &(a[n]), tna, &(b[n]), tnb);
493 memset(&(r[n2 + tna + tnb]), 0, sizeof(BN_ULONG) * (n2 - tna - tnb));
495 p = &(t[n2 * 2]);
496 bn_mul_recursive(&(t[n2]), t, &(t[n]), n, 0, 0, p);
508 bn_mul_recursive(&(r[n2]), &(a[n]), &(b[n]), i, tna - i, tnb - i, p);
509 memset(&(r[n2 + i * 2]), 0, sizeof(BN_ULONG) * (n2 - i * 2));
512 bn_mul_part_recursive(&(r[n2]), &(a[n]), &(b[n]), i, tna - i, tnb - i, p);
513 memset(&(r[n2 + tna + tnb]), 0, sizeof(BN_ULONG) * (n2 - tna - tnb));
516 memset(&(r[n2]), 0, sizeof(BN_ULONG) * n2);
519 bn_mul_normal(&(r[n2]), &(a[n]), tna, &(b[n]), tnb);
527 bn_mul_part_recursive(&(r[n2]), &(a[n]), &(b[n]), i, tna - i,
531 bn_mul_recursive(&(r[n2]), &(a[n]), &(b[n]), i, tna - i, tnb - i,
545 c1 = (int)(bn_add_words(t, r, &(r[n2]), n2));
549 c1 -= (int)(bn_sub_words(&(t[n2]), t, &(t[n2]), n2));
552 c1 += (int)(bn_add_words(&(t[n2]), &(t[n2]), t, n2));
559 c1 += (int)(bn_add_words(&(r[n]), &(r[n]), &(t[n2]), n2));
561 p = &(r[n + n2]);
721 static void bn_sqr_recursive(BN_ULONG *r, const BN_ULONG *a, int n2, BN_ULONG *t) {
722 int n = n2 / 2;
726 if (n2 == 4) {
729 } else if (n2 == 8) {
733 if (n2 < BN_SQR_RECURSIVE_SIZE_NORMAL) {
734 bn_sqr_normal(r, a, n2, t);
749 p = &(t[n2 * 2]);
752 bn_sqr_recursive(&(t[n2]), t, n, p);
754 memset(&(t[n2]), 0, n2 * sizeof(BN_ULONG));
757 bn_sqr_recursive(&(r[n2]), &(a[n]), n, p);
763 c1 = (int)(bn_add_words(t, r, &(r[n2]), n2));
766 c1 -= (int)(bn_sub_words(&(t[n2]), t, &(t[n2]), n2));
772 c1 += (int)(bn_add_words(&(r[n]), &(r[n]), &(t[n2]), n2));
774 p = &(r[n + n2]);