diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-09-18 15:13:40 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-09-18 15:13:40 (GMT) |
commit | db596f769f7d0d74193f88b121b949bce6853ebf (patch) | |
tree | feb67968040c4869b021497e6e8859e0e90e41be /libtommath/bn_mp_add.c | |
parent | 36098aafd9bbd015808f0607f94acc590d192e0d (diff) | |
parent | 7a4fe54c26332c21cd95b01cc07bd74714d060ae (diff) | |
download | tcl-z_modifier.zip tcl-z_modifier.tar.gz tcl-z_modifier.tar.bz2 |
Merge trunkz_modifier
Diffstat (limited to 'libtommath/bn_mp_add.c')
-rw-r--r-- | libtommath/bn_mp_add.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/libtommath/bn_mp_add.c b/libtommath/bn_mp_add.c index bdb166f..d31d5a0 100644 --- a/libtommath/bn_mp_add.c +++ b/libtommath/bn_mp_add.c @@ -16,34 +16,34 @@ */ /* high level addition (handles signs) */ -int mp_add (mp_int * a, mp_int * b, mp_int * c) +int mp_add(const mp_int *a, const mp_int *b, mp_int *c) { - int sa, sb, res; + int sa, sb, res; - /* get sign of both inputs */ - sa = a->sign; - sb = b->sign; + /* get sign of both inputs */ + sa = a->sign; + sb = b->sign; - /* handle two cases, not four */ - if (sa == sb) { - /* both positive or both negative */ - /* add their magnitudes, copy the sign */ - c->sign = sa; - res = s_mp_add (a, b, c); - } else { - /* one positive, the other negative */ - /* subtract the one with the greater magnitude from */ - /* the one of the lesser magnitude. The result gets */ - /* the sign of the one with the greater magnitude. */ - if (mp_cmp_mag (a, b) == MP_LT) { - c->sign = sb; - res = s_mp_sub (b, a, c); - } else { + /* handle two cases, not four */ + if (sa == sb) { + /* both positive or both negative */ + /* add their magnitudes, copy the sign */ c->sign = sa; - res = s_mp_sub (a, b, c); - } - } - return res; + res = s_mp_add(a, b, c); + } else { + /* one positive, the other negative */ + /* subtract the one with the greater magnitude from */ + /* the one of the lesser magnitude. The result gets */ + /* the sign of the one with the greater magnitude. */ + if (mp_cmp_mag(a, b) == MP_LT) { + c->sign = sb; + res = s_mp_sub(b, a, c); + } else { + c->sign = sa; + res = s_mp_sub(a, b, c); + } + } + return res; } #endif |