diff options
author | Torbjorn Granlund <tege@gmplib.org> | 2011-11-13 21:31:57 +0100 |
---|---|---|
committer | Torbjorn Granlund <tege@gmplib.org> | 2011-11-13 21:31:57 +0100 |
commit | e037315eefee1b249bbe052bfd84c1a1c01c6f72 (patch) | |
tree | 2b35e55f2dd56d23f887d8d0b3e551f5e8628b25 /mpn/generic | |
parent | 890e8c8008d6518223533612dfe95b07db2c696d (diff) | |
download | gmp-e037315eefee1b249bbe052bfd84c1a1c01c6f72.tar.gz |
Add support for POWM_SEC_TABLE table.
Diffstat (limited to 'mpn/generic')
-rw-r--r-- | mpn/generic/powm_sec.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/mpn/generic/powm_sec.c b/mpn/generic/powm_sec.c index 3a6f55403..c6358947b 100644 --- a/mpn/generic/powm_sec.c +++ b/mpn/generic/powm_sec.c @@ -189,15 +189,27 @@ getbits (const mp_limb_t *p, mp_bitcnt_t bi, int nbits) } } +#ifndef POWM_SEC_TABLE +#if GMP_NUMB_BITS < 50 +#define POWM_SEC_TABLE 2,33,96,780,2741 +#else +#define POWM_SEC_TABLE 2,130,524,2578 +#endif +#endif + +#if TUNE_PROGRAM_BUILD +extern int win_size (mp_bitcnt_t); +#else static inline int win_size (mp_bitcnt_t eb) { int k; - static mp_bitcnt_t x[] = {0,4,27,100,325,1026,2905,7848,20457,51670,~(mp_bitcnt_t)0}; + static mp_bitcnt_t x[] = {0,POWM_SEC_TABLE,~(mp_bitcnt_t)0}; for (k = 1; eb > x[k]; k++) ; return k; } +#endif /* Convert U to REDC form, U_r = B^n * U mod M */ static void |