diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2019-11-09 12:47:42 +0100 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2019-11-09 12:47:42 +0100 |
commit | b621455485570bc24d2873336439cf6bdfd7e375 (patch) | |
tree | 300512ab6aec3bd16953e2c7a16c87f58160f9e3 /tune | |
parent | 65d0c41ccaf684366e7395c4406b63472075974e (diff) | |
download | gmp-b621455485570bc24d2873336439cf6bdfd7e375.tar.gz |
tune/speed*: add optional r flag for mpz_powm
Diffstat (limited to 'tune')
-rw-r--r-- | tune/speed.c | 2 | ||||
-rw-r--r-- | tune/speed.h | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/tune/speed.c b/tune/speed.c index 4f5a348ae..b861fa491 100644 --- a/tune/speed.c +++ b/tune/speed.c @@ -417,7 +417,7 @@ const struct routine_t { { "mpz_2fac_ui", speed_mpz_2fac_ui, FLAG_NODATA }, { "mpz_mfac_uiui", speed_mpz_mfac_uiui, FLAG_NODATA | FLAG_R_OPTIONAL }, { "mpz_primorial_ui", speed_mpz_primorial_ui, FLAG_NODATA }, - { "mpz_powm", speed_mpz_powm }, + { "mpz_powm", speed_mpz_powm, FLAG_R_OPTIONAL }, { "mpz_powm_mod", speed_mpz_powm_mod }, { "mpz_powm_redc", speed_mpz_powm_redc }, { "mpz_powm_sec", speed_mpz_powm_sec }, diff --git a/tune/speed.h b/tune/speed.h index 18f54600a..d66a79418 100644 --- a/tune/speed.h +++ b/tune/speed.h @@ -2638,7 +2638,10 @@ int speed_routine_count_zeros_setup (struct speed_params *, mp_ptr, int, int); SPEED_RESTRICT_COND (s->size >= 1); \ \ mpz_init (r); \ - mpz_init_set_n (b, s->xp, s->size); \ + if (s->r < 2) \ + mpz_init_set_n (b, s->xp, s->size); \ + else \ + mpz_init_set_ui (b, s->r); \ mpz_init_set_n (m, s->yp, s->size); \ mpz_setbit (m, 0); /* force m to odd */ \ mpz_init_set_n (e, s->xp_block, 6); \ |