diff options
| author | Damien George <damien.p.george@gmail.com> | 2016-05-08 22:21:21 +0100 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2016-05-08 22:21:21 +0100 |
| commit | 65402ab1ec05fd552ceae63e2dcac69095ab1338 (patch) | |
| tree | 865761d91fe0deefa7b8395b2cc2447ff3cfd0df /py/objint_mpz.c | |
| parent | dc3faea0405dea803828f5a2be314734b8c166b6 (diff) | |
py/mpz: Do Python style division/modulo within bignum divmod routine.
This patch consolidates the Python logic for division/modulo to one place
within the bignum code.
Diffstat (limited to 'py/objint_mpz.c')
| -rw-r--r-- | py/objint_mpz.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/py/objint_mpz.c b/py/objint_mpz.c index dc083827c..3a30eb9d9 100644 --- a/py/objint_mpz.c +++ b/py/objint_mpz.c @@ -239,12 +239,6 @@ mp_obj_t mp_obj_int_binary_op(mp_uint_t op, mp_obj_t lhs_in, mp_obj_t rhs_in) { } mpz_t rem; mpz_init_zero(&rem); mpz_divmod_inpl(&res->mpz, &rem, zlhs, zrhs); - if (zlhs->neg != zrhs->neg) { - if (!mpz_is_zero(&rem)) { - mpz_t mpzone; mpz_init_from_int(&mpzone, -1); - mpz_add_inpl(&res->mpz, &res->mpz, &mpzone); - } - } mpz_deinit(&rem); break; } @@ -256,10 +250,6 @@ mp_obj_t mp_obj_int_binary_op(mp_uint_t op, mp_obj_t lhs_in, mp_obj_t rhs_in) { mpz_t quo; mpz_init_zero(&quo); mpz_divmod_inpl(&quo, &res->mpz, zlhs, zrhs); mpz_deinit(&quo); - // Check signs and do Python style modulo - if (zlhs->neg != zrhs->neg) { - mpz_add_inpl(&res->mpz, &res->mpz, zrhs); - } break; } @@ -303,10 +293,6 @@ mp_obj_t mp_obj_int_binary_op(mp_uint_t op, mp_obj_t lhs_in, mp_obj_t rhs_in) { } mp_obj_int_t *quo = mp_obj_int_new_mpz(); mpz_divmod_inpl(&quo->mpz, &res->mpz, zlhs, zrhs); - // Check signs and do Python style modulo - if (zlhs->neg != zrhs->neg) { - mpz_add_inpl(&res->mpz, &res->mpz, zrhs); - } mp_obj_t tuple[2] = {MP_OBJ_FROM_PTR(quo), MP_OBJ_FROM_PTR(res)}; return mp_obj_new_tuple(2, tuple); } |
