diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-09-18 08:31:55 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-09-18 08:31:55 (GMT) |
commit | a708ae2da22c8e6b6cbe9c0023a21557b27ee78b (patch) | |
tree | 6b7bbde03122d1571d4543d10eccfe88610bd680 /libtommath/bn_mp_div_d.c | |
parent | 8f339500a2b79c84698261987f664ed30af94814 (diff) | |
parent | d4e73bcab52ca3c76e007a1acc7cb76f50b8feb5 (diff) | |
download | tcl-a708ae2da22c8e6b6cbe9c0023a21557b27ee78b.zip tcl-a708ae2da22c8e6b6cbe9c0023a21557b27ee78b.tar.gz tcl-a708ae2da22c8e6b6cbe9c0023a21557b27ee78b.tar.bz2 |
Merge libtommath upstream changes (astyle formatting only). No functional changes. All Tcl-specific modifications are kept.
Diffstat (limited to 'libtommath/bn_mp_div_d.c')
-rw-r--r-- | libtommath/bn_mp_div_d.c | 124 |
1 files changed, 62 insertions, 62 deletions
diff --git a/libtommath/bn_mp_div_d.c b/libtommath/bn_mp_div_d.c index 4767565..9997646 100644 --- a/libtommath/bn_mp_div_d.c +++ b/libtommath/bn_mp_div_d.c @@ -21,7 +21,7 @@ static int s_is_power_of_two(mp_digit b, int *p) /* quick out - if (b & (b-1)) isn't zero, b isn't a power of two */ if ((b == 0) || ((b & (b-1)) != 0)) { - return 0; + return 0; } for (x = 1; x < DIGIT_BIT; x++) { if (b == (((mp_digit)1)<<x)) { @@ -33,78 +33,78 @@ static int s_is_power_of_two(mp_digit b, int *p) } /* single digit division (based on routine from MPI) */ -int mp_div_d (const mp_int * a, mp_digit b, mp_int * c, mp_digit * d) +int mp_div_d(const mp_int *a, mp_digit b, mp_int *c, mp_digit *d) { - mp_int q; - mp_word w; - mp_digit t; - int res, ix; + mp_int q; + mp_word w; + mp_digit t; + int res, ix; - /* cannot divide by zero */ - if (b == 0) { - return MP_VAL; - } + /* cannot divide by zero */ + if (b == 0) { + return MP_VAL; + } - /* quick outs */ - if ((b == 1) || (mp_iszero(a) == MP_YES)) { - if (d != NULL) { - *d = 0; - } - if (c != NULL) { - return mp_copy(a, c); - } - return MP_OKAY; - } + /* quick outs */ + if ((b == 1) || (mp_iszero(a) == MP_YES)) { + if (d != NULL) { + *d = 0; + } + if (c != NULL) { + return mp_copy(a, c); + } + return MP_OKAY; + } - /* power of two ? */ - if (s_is_power_of_two(b, &ix) == 1) { - if (d != NULL) { - *d = a->dp[0] & ((((mp_digit)1)<<ix) - 1); - } - if (c != NULL) { - return mp_div_2d(a, ix, c, NULL); - } - return MP_OKAY; - } + /* power of two ? */ + if (s_is_power_of_two(b, &ix) == 1) { + if (d != NULL) { + *d = a->dp[0] & ((((mp_digit)1)<<ix) - 1); + } + if (c != NULL) { + return mp_div_2d(a, ix, c, NULL); + } + return MP_OKAY; + } #ifdef BN_MP_DIV_3_C - /* three? */ - if (b == 3) { - return mp_div_3(a, c, d); - } + /* three? */ + if (b == 3) { + return mp_div_3(a, c, d); + } #endif - /* no easy answer [c'est la vie]. Just division */ - if ((res = mp_init_size(&q, a->used)) != MP_OKAY) { - return res; - } - - q.used = a->used; - q.sign = a->sign; - w = 0; - for (ix = a->used - 1; ix >= 0; ix--) { - w = (w << ((mp_word)DIGIT_BIT)) | ((mp_word)a->dp[ix]); - - if (w >= b) { - t = (mp_digit)(w / b); - w -= ((mp_word)t) * ((mp_word)b); + /* no easy answer [c'est la vie]. Just division */ + if ((res = mp_init_size(&q, a->used)) != MP_OKAY) { + return res; + } + + q.used = a->used; + q.sign = a->sign; + w = 0; + for (ix = a->used - 1; ix >= 0; ix--) { + w = (w << ((mp_word)DIGIT_BIT)) | ((mp_word)a->dp[ix]); + + if (w >= b) { + t = (mp_digit)(w / b); + w -= ((mp_word)t) * ((mp_word)b); } else { - t = 0; + t = 0; } q.dp[ix] = (mp_digit)t; - } - - if (d != NULL) { - *d = (mp_digit)w; - } - - if (c != NULL) { - mp_clamp(&q); - mp_exch(&q, c); - } - mp_clear(&q); - - return res; + } + + if (d != NULL) { + *d = (mp_digit)w; + } + + if (c != NULL) { + mp_clamp(&q); + mp_exch(&q, c); + } + mp_clear(&q); + + return res; } #endif |