summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2023-12-06 23:29:57 +0900
committerChristian Grothoff <grothoff@gnunet.org>2023-12-07 00:06:54 +0900
commit257417b697d7e011646e6f69088fd907f92b896d (patch)
tree012a688b91e7af875ec0e75793cd9aacf1e84594
parentc44d1c803e6264930b07fb2d3cc79e4b3ce63e20 (diff)
downloadlibgpuverify-257417b697d7e011646e6f69088fd907f92b896d.tar.gz
libgpuverify-257417b697d7e011646e6f69088fd907f92b896d.tar.bz2
libgpuverify-257417b697d7e011646e6f69088fd907f92b896d.zip
-remove get base info
-rw-r--r--source/montgomery.cl71
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)