Lines Matching refs:digs
138 static int s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs);
140 static int s_mp_mul_high_digs(mp_int * a, mp_int * b, mp_int * c, int digs);
142 static int fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs);
513 int digs = a->used + b->used + 1;
515 if ((digs < MP_WARRAY) &&
518 res = fast_s_mp_mul_digs (a, b, c, digs);
2330 /* multiplies |a| * |b| and only computes up to digs digits of result
2334 static int s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs)
2343 if (((digs) < MP_WARRAY) &&
2346 return fast_s_mp_mul_digs (a, b, c, digs);
2349 if ((res = mp_init_size (&t, digs)) != MP_OKAY) {
2352 t.used = digs;
2360 /* limit ourselves to making digs digits of output */
2361 pb = MIN (b->used, digs - ix);
2386 /* set carry if it is placed below digs */
2387 if (ix + iy < digs) {
2416 static int fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs)
2423 if (c->alloc < digs) {
2424 if ((res = mp_grow (c, digs)) != MP_OKAY) {
2430 pa = MIN(digs, a->used + b->used);
2579 /* multiplies |a| * |b| and does not compute the lower digs digits
2582 static int s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs)
2594 return fast_s_mp_mul_high_digs (a, b, c, digs);
2613 tmpt = &(t.dp[digs]);
2616 tmpy = b->dp + (digs - ix);
2618 for (iy = digs - ix; iy < pb; iy++) {