diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2018-07-19 08:02:49 +0200 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2018-07-19 08:02:49 +0200 |
commit | 02be51d31564a0dc07f6723be66fb5e69f68efa4 (patch) | |
tree | d278162c43c661ad9974595b84f401f862f64ed1 /mpz | |
parent | f83a207dd6de75ae339022f721b7d88a7e070353 (diff) | |
download | gmp-02be51d31564a0dc07f6723be66fb5e69f68efa4.tar.gz |
mpz/powm_ui.c: Avoid a COPY
Diffstat (limited to 'mpz')
-rw-r--r-- | mpz/powm_ui.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/mpz/powm_ui.c b/mpz/powm_ui.c index 7d3644dc6..cfab66da8 100644 --- a/mpz/powm_ui.c +++ b/mpz/powm_ui.c @@ -251,17 +251,12 @@ mpz_powm_ui (mpz_ptr r, mpz_srcptr b, unsigned long int el, mpz_srcptr m) cy = mpn_lshift (tp, xp, xn, m_zero_cnt); tp[xn] = cy; xn += cy != 0; - if (xn < mn) - { - MPN_COPY (xp, tp, xn); - } - else + if (xn >= mn) { mod (tp, xn, mp, mn, &dinv, scratch); - MPN_COPY (xp, tp, mn); xn = mn; } - mpn_rshift (xp, xp, xn, m_zero_cnt); + mpn_rshift (xp, tp, xn, m_zero_cnt); } MPN_NORMALIZE (xp, xn); |