diff options
author | Christian Grothoff <grothoff@gnunet.org> | 2023-12-06 23:29:57 +0900 |
---|---|---|
committer | Christian Grothoff <grothoff@gnunet.org> | 2023-12-07 00:06:54 +0900 |
commit | 257417b697d7e011646e6f69088fd907f92b896d (patch) | |
tree | 012a688b91e7af875ec0e75793cd9aacf1e84594 | |
parent | c44d1c803e6264930b07fb2d3cc79e4b3ce63e20 (diff) | |
download | libgpuverify-257417b697d7e011646e6f69088fd907f92b896d.tar.gz libgpuverify-257417b697d7e011646e6f69088fd907f92b896d.tar.bz2 libgpuverify-257417b697d7e011646e6f69088fd907f92b896d.zip |
-remove get base info
-rw-r--r-- | source/montgomery.cl | 71 |
1 files changed, 6 insertions, 65 deletions
diff --git a/source/montgomery.cl b/source/montgomery.cl index 3b13a6b..aad002d 100644 --- a/source/montgomery.cl +++ b/source/montgomery.cl @@ -380,8 +380,6 @@ int mpz_tstbit (const mpz_t d, mp_bitcnt_t bit_index); mp_bitcnt_t mpn_limb_size_in_base_2 (mp_limb_t u); -size_t -mpz_sizeinbase (const mpz_t u, int base); int mpz_sgn (const mpz_t u); mp_bitcnt_t @@ -413,7 +411,6 @@ mpz_addmul_ui (mpz_t r, const mpz_t u, unsigned long int v); unsigned mpn_base_power_of_two_p (unsigned b); void -mpn_get_base_info (struct mpn_base_info *info, mp_limb_t b); int isspace_gpu(unsigned char c); int strlen_c(__global char *c); mp_size_t mpn_set_str_bits (mp_ptr rp, const unsigned char *sp, size_t sn, @@ -1889,22 +1886,13 @@ mpn_limb_size_in_base_2 (mp_limb_t u) } size_t -mpz_sizeinbase (const mpz_t u, int base) +mpz_sizeinbase2 (const mpz_t u) { - mp_size_t un, tn; + mp_size_t un; mp_srcptr up; - //mp_ptr tp; - mpz_t tp; mp_bitcnt_t bits; - struct gmp_div_inverse bi; - size_t ndigits; - mpz_init(tp); - - assert (base >= 2); -assert (base <= 62); - un = GMP_ABS (u->_mp_size); if (un == 0) return 1; @@ -1912,39 +1900,7 @@ assert (base <= 62); up = u->_mp_d; bits = (un - 1) * GMP_LIMB_BITS + mpn_limb_size_in_base_2 (up[un-1]); - switch (base) - { - case 2: - return bits; - case 4: - return (bits + 1) / 2; - case 8: - return (bits + 2) / 3; - case 16: - return (bits + 3) / 4; - case 32: - return (bits + 4) / 5; - /* FIXME: Do something more clever for the common case of base - 10. */ - } - - //tp = gmp_alloc_limbs (un); - - mpn_copyi (tp->_mp_d, up, un); - mpn_div_qr_1_invert (&bi, base); - - tn = un; - ndigits = 0; - do - { - ndigits++; - mpn_div_qr_1_preinv (tp->_mp_d, tp->_mp_d, tn, &bi); - tn -= (tp->_mp_d[tn-1] == 0); - } - while (tn > 0); - - //gmp_free_limbs (tp, un); - return ndigits; + return bits; } int @@ -2324,21 +2280,6 @@ mpz_addmul_ui (mpz_t r, const mpz_t u, unsigned long int v) } -void -mpn_get_base_info (struct mpn_base_info *info, mp_limb_t b) -{ - mp_limb_t m; - mp_limb_t p; - unsigned exp; - - m = GMP_LIMB_MAX / b; - for (exp = 1, p = b; p <= m; exp++) - p *= b; - - info->exp = exp; - info->bb = p; -} - // Montgomery multiplication @@ -2399,7 +2340,7 @@ void mont_prepare(mpz_t b, mpz_t e, mpz_t m, mpz_init_set_si(one,1); mpz_init_set_si(oo,0); - //unsigned long len = mpz_sizeinbase(m,2); + //unsigned long len = mpz_sizeinbase2(m); unsigned long len = 2049; @@ -2451,7 +2392,7 @@ void mont_modexp(mpz_t ret, mpz_init_set(aa, M); mpz_init_set(xx, a); - int k = (int)mpz_sizeinbase(e,2); + int k = (int)mpz_sizeinbase2(e); for (int i = k - 1; i >= 0; i--) { @@ -2511,7 +2452,7 @@ void mont_product(mpz_t ret, mpz_add(ab, ab, mn); - unsigned long sz = mpz_sizeinbase(r,2) - 1; + unsigned long sz = mpz_sizeinbase2(r) - 1; mpz_tdiv_q_2exp(u, ab, sz); // this is essentially a bit shift, instead of a division if (mpz_cmp(u, n) >= 0) |