diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2022-03-04 10:03:38 +0100 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2022-03-04 10:03:38 +0100 |
commit | e1f46f7eab9585686149987dac252df761561866 (patch) | |
tree | 0f73a9a32ad55f0074805b9999c255cab59b618c /mpn | |
parent | 972565c100daf5df90b5e3c9c2a1bf92ead3ef4b (diff) | |
download | gmp-e1f46f7eab9585686149987dac252df761561866.tar.gz |
mpn/generic/mulmod_bnm1.c: Use mulmod_bknp1, on the bnp1 side.
Diffstat (limited to 'mpn')
-rw-r--r-- | mpn/generic/mulmod_bnm1.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/mpn/generic/mulmod_bnm1.c b/mpn/generic/mulmod_bnm1.c index ca8812521..daf556a39 100644 --- a/mpn/generic/mulmod_bnm1.c +++ b/mpn/generic/mulmod_bnm1.c @@ -68,6 +68,7 @@ mpn_bc_mulmod_bnp1 (mp_ptr rp, mp_srcptr ap, mp_srcptr bp, mp_size_t rn, mp_ptr tp) { mp_limb_t cy; + unsigned k; ASSERT (0 < rn); @@ -78,6 +79,17 @@ mpn_bc_mulmod_bnp1 (mp_ptr rp, mp_srcptr ap, mp_srcptr bp, mp_size_t rn, else /* ap[rn] == 0 */ cy = mpn_neg (rp, ap, rn); } + else if (MPN_MULMOD_BKNP1_USABLE (rn, k, MUL_FFT_MODF_THRESHOLD)) + { + mp_size_t n_k = rn / k; + TMP_DECL; + + TMP_MARK; + mpn_mulmod_bknp1 (rp, ap, bp, n_k, k, + TMP_ALLOC_LIMBS (mpn_mulmod_bknp1_itch (rn))); + TMP_FREE; + return; + } else { mpn_mul_n (tp, ap, bp, rn); |