literal suffix

This commit is contained in:
Francois Perrad 2018-02-13 19:04:25 +01:00
parent e3598dc8b2
commit 9960fe3fe8
7 changed files with 127 additions and 127 deletions

@ -57,15 +57,15 @@ static int myrng(unsigned char *dst, int len, void *dat)
fprintf(stderr, "\nno /dev/urandom\n"); fprintf(stderr, "\nno /dev/urandom\n");
# endif # endif
} else { } else {
return fread(dst, 1, len, fd_urandom); return fread(dst, 1uL, len, fd_urandom);
} }
#endif #endif
for (x = 0; x < len;) { for (x = 0; x < len;) {
unsigned int r = (unsigned int)rand(); unsigned int r = (unsigned int)rand();
do { do {
dst[x++] = r & 0xFF; dst[x++] = r & 0xFFu;
r >>= 8; r >>= 8;
} while ((r != 0) && (x < len)); } while ((r != 0u) && (x < len));
} }
return len; return len;
} }
@ -195,7 +195,7 @@ int main(void)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
// a: -5-> b: -4 // a: -5-> b: -4
mp_add_d(&a, 1, &b); mp_add_d(&a, 1uL, &b);
if (mp_isneg(&b) != MP_YES) { if (mp_isneg(&b) != MP_YES) {
return EXIT_FAILURE; return EXIT_FAILURE;
} }
@ -203,18 +203,18 @@ int main(void)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
// a: -5-> b: 1 // a: -5-> b: 1
mp_add_d(&a, 6, &b); mp_add_d(&a, 6uL, &b);
if (mp_get_int(&b) != 1) { if (mp_get_int(&b) != 1) {
return EXIT_FAILURE; return EXIT_FAILURE;
} }
// a: -5-> a: 1 // a: -5-> a: 1
mp_add_d(&a, 6, &a); mp_add_d(&a, 6uL, &a);
if (mp_get_int(&a) != 1) { if (mp_get_int(&a) != 1) {
return EXIT_FAILURE; return EXIT_FAILURE;
} }
mp_zero(&a); mp_zero(&a);
// a: 0-> a: 6 // a: 0-> a: 6
mp_add_d(&a, 6, &a); mp_add_d(&a, 6uL, &a);
if (mp_get_int(&a) != 6) { if (mp_get_int(&a) != 6) {
return EXIT_FAILURE; return EXIT_FAILURE;
} }
@ -264,7 +264,7 @@ int main(void)
// test mp_get_int // test mp_get_int
printf("\n\nTesting: mp_get_int"); printf("\n\nTesting: mp_get_int");
for (i = 0; i < 1000; ++i) { for (i = 0; i < 1000; ++i) {
t = ((unsigned long) rand() * rand() + 1) & 0xFFFFFFFF; t = ((unsigned long) rand() * rand() + 1) & 0xFFFFFFFFuL;
mp_set_int(&a, t); mp_set_int(&a, t);
if (t != mp_get_int(&a)) { if (t != mp_get_int(&a)) {
printf("\nmp_get_int() bad result!"); printf("\nmp_get_int() bad result!");
@ -276,8 +276,8 @@ int main(void)
printf("\nmp_get_int() bad result!"); printf("\nmp_get_int() bad result!");
return EXIT_FAILURE; return EXIT_FAILURE;
} }
mp_set_int(&a, 0xffffffff); mp_set_int(&a, 0xFFFFFFFFuL);
if (mp_get_int(&a) != 0xffffffff) { if (mp_get_int(&a) != 0xFFFFFFFFuL) {
printf("\nmp_get_int() bad result!"); printf("\nmp_get_int() bad result!");
return EXIT_FAILURE; return EXIT_FAILURE;
} }
@ -364,7 +364,7 @@ int main(void)
} }
/* test for false positives */ /* test for false positives */
mp_add_d(&a, 1, &a); mp_add_d(&a, 1uL, &a);
if (mp_is_square(&a, &n) != MP_OKAY) { if (mp_is_square(&a, &n) != MP_OKAY) {
printf("\nfp:mp_is_square() error!"); printf("\nfp:mp_is_square() error!");
return EXIT_FAILURE; return EXIT_FAILURE;
@ -425,7 +425,7 @@ int main(void)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
/* let's see if it's really a safe prime */ /* let's see if it's really a safe prime */
mp_sub_d(&a, 1, &a); mp_sub_d(&a, 1uL, &a);
mp_div_2(&a, &a); mp_div_2(&a, &a);
mp_prime_is_prime(&a, 8, &cnt); mp_prime_is_prime(&a, 8, &cnt);
if (cnt != MP_YES) { if (cnt != MP_YES) {
@ -503,7 +503,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
/* test mp_cnt_lsb */ /* test mp_cnt_lsb */
printf("\n\nTesting: mp_cnt_lsb"); printf("\n\nTesting: mp_cnt_lsb");
mp_set(&a, 1); mp_set(&a, 1uL);
for (ix = 0; ix < 1024; ix++) { for (ix = 0; ix < 1024; ix++) {
if (mp_cnt_lsb(&a) != ix) { if (mp_cnt_lsb(&a) != ix) {
printf("Failed at %d, %d\n", ix, mp_cnt_lsb(&a)); printf("Failed at %d, %d\n", ix, mp_cnt_lsb(&a));
@ -518,7 +518,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
mp_digit tmp; mp_digit tmp;
mp_2expt(&a, cnt); mp_2expt(&a, cnt);
mp_sub_d(&a, 2, &a); /* a = 2**cnt - 2 */ mp_sub_d(&a, 2uL, &a); /* a = 2**cnt - 2 */
printf("\r %4d bits", cnt); printf("\r %4d bits", cnt);
printf("(%d)", mp_reduce_is_2k(&a)); printf("(%d)", mp_reduce_is_2k(&a));
@ -532,7 +532,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
mp_rand(&b, (cnt / DIGIT_BIT + 1) * 2); mp_rand(&b, (cnt / DIGIT_BIT + 1) * 2);
mp_copy(&c, &b); mp_copy(&c, &b);
mp_mod(&c, &a, &c); mp_mod(&c, &a, &c);
mp_reduce_2k(&b, &a, 2); mp_reduce_2k(&b, &a, 2uL);
if (mp_cmp(&c, &b)) { if (mp_cmp(&c, &b)) {
printf("FAILED\n"); printf("FAILED\n");
return EXIT_FAILURE; return EXIT_FAILURE;
@ -542,7 +542,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
/* test mp_div_3 */ /* test mp_div_3 */
printf("\n\nTesting: mp_div_3...\n"); printf("\n\nTesting: mp_div_3...\n");
mp_set(&d, 3); mp_set(&d, 3uL);
for (cnt = 0; cnt < 10000;) { for (cnt = 0; cnt < 10000;) {
mp_digit r2; mp_digit r2;
@ -582,7 +582,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
fflush(stdout); fflush(stdout);
} }
mp_sqr(&b, &b); mp_sqr(&b, &b);
mp_add_d(&b, 1, &b); mp_add_d(&b, 1uL, &b);
mp_copy(&b, &c); mp_copy(&b, &c);
mp_mod(&b, &a, &b); mp_mod(&b, &a, &b);
@ -632,10 +632,10 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
fflush(stdout); fflush(stdout);
for (cnt = 0; cnt < (int)(1UL << 20); cnt++) { for (cnt = 0; cnt < (int)(1UL << 20); cnt++) {
mp_sqr(&b, &b); mp_sqr(&b, &b);
mp_add_d(&b, 1, &b); mp_add_d(&b, 1uL, &b);
mp_reduce_2k_l(&b, &a, &d); mp_reduce_2k_l(&b, &a, &d);
mp_sqr(&c, &c); mp_sqr(&c, &c);
mp_add_d(&c, 1, &c); mp_add_d(&c, 1uL, &c);
mp_mod(&c, &a, &c); mp_mod(&c, &a, &c);
if (mp_cmp(&b, &c) != MP_EQ) { if (mp_cmp(&b, &c) != MP_EQ) {
printf("mp_reduce_2k_l() failed at step %d\n", cnt); printf("mp_reduce_2k_l() failed at step %d\n", cnt);
@ -693,7 +693,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
add_n, sub_n, mul_n, div_n, sqr_n, mul2d_n, div2d_n, gcd_n, lcm_n, add_n, sub_n, mul_n, div_n, sqr_n, mul2d_n, div2d_n, gcd_n, lcm_n,
expt_n, inv_n, div2_n, mul2_n, add_d_n, sub_d_n); expt_n, inv_n, div2_n, mul2_n, add_d_n, sub_d_n);
FGETS(cmd, 4095, stdin); FGETS(cmd, 4095, stdin);
cmd[strlen(cmd) - 1] = 0; cmd[strlen(cmd) - 1u] = '\0';
printf("%-6s ]\r", cmd); printf("%-6s ]\r", cmd);
fflush(stdout); fflush(stdout);
if (strcmp(cmd, "mul2d") == 0) { if (strcmp(cmd, "mul2d") == 0) {
@ -756,7 +756,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
rr = mp_signed_bin_size(&c); rr = mp_signed_bin_size(&c);
mp_to_signed_bin(&c, (unsigned char *) cmd); mp_to_signed_bin(&c, (unsigned char *) cmd);
memset(cmd + rr, rand() & 255, sizeof(cmd) - rr); memset(cmd + rr, rand() & 0xFFu, sizeof(cmd) - rr);
mp_read_signed_bin(&d, (unsigned char *) cmd, rr); mp_read_signed_bin(&d, (unsigned char *) cmd, rr);
if (mp_cmp(&c, &d) != MP_EQ) { if (mp_cmp(&c, &d) != MP_EQ) {
printf("mp_signed_bin failure!\n"); printf("mp_signed_bin failure!\n");
@ -768,7 +768,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
rr = mp_unsigned_bin_size(&c); rr = mp_unsigned_bin_size(&c);
mp_to_unsigned_bin(&c, (unsigned char *) cmd); mp_to_unsigned_bin(&c, (unsigned char *) cmd);
memset(cmd + rr, rand() & 255, sizeof(cmd) - rr); memset(cmd + rr, rand() & 0xFFu, sizeof(cmd) - rr);
mp_read_unsigned_bin(&d, (unsigned char *) cmd, rr); mp_read_unsigned_bin(&d, (unsigned char *) cmd, rr);
if (mp_cmp_mag(&c, &d) != MP_EQ) { if (mp_cmp_mag(&c, &d) != MP_EQ) {
printf("mp_unsigned_bin failure!\n"); printf("mp_unsigned_bin failure!\n");
@ -921,7 +921,7 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
mp_read_radix(&c, buf, 64); mp_read_radix(&c, buf, 64);
mp_invmod(&a, &b, &d); mp_invmod(&a, &b, &d);
mp_mulmod(&d, &a, &b, &e); mp_mulmod(&d, &a, &b, &e);
if (mp_cmp_d(&e, 1) != MP_EQ) { if (mp_cmp_d(&e, 1uL) != MP_EQ) {
printf("inv [wrong value from MPI?!] failure\n"); printf("inv [wrong value from MPI?!] failure\n");
draw(&a); draw(&a);
draw(&b); draw(&b);

@ -32,12 +32,12 @@ static void draw(mp_int *a)
} }
static unsigned long lfsr = 0xAAAAAAAAUL; static unsigned long lfsr = 0xAAAAAAAAuL;
static int lbit(void) static int lbit(void)
{ {
if ((lfsr & 0x80000000UL) != 0UL) { if ((lfsr & 0x80000000uL) != 0uL) {
lfsr = ((lfsr << 1) ^ 0x8000001BUL) & 0xFFFFFFFFUL; lfsr = ((lfsr << 1) ^ 0x8000001BuL) & 0xFFFFFFFFuL;
return 1; return 1;
} else { } else {
lfsr <<= 1; lfsr <<= 1;
@ -126,15 +126,15 @@ int main(void)
SLEEP; SLEEP;
mp_rand(&a, cnt); mp_rand(&a, cnt);
mp_rand(&b, cnt); mp_rand(&b, cnt);
rr = 0; rr = 0u;
tt = -1; tt = UINT64_MAX;
do { do {
gg = TIMFUNC(); gg = TIMFUNC();
DO(mp_add(&a, &b, &c)); DO(mp_add(&a, &b, &c));
gg = (TIMFUNC() - gg) >> 1; gg = (TIMFUNC() - gg) >> 1;
if (tt > gg) if (tt > gg)
tt = gg; tt = gg;
} while (++rr < 100000); } while (++rr < 100000u);
printf("Adding\t\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", printf("Adding\t\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n",
mp_count_bits(&a), CLK_PER_SEC / tt, tt); mp_count_bits(&a), CLK_PER_SEC / tt, tt);
FPRINTF(log, "%d %9" PRIu64 "\n", cnt * DIGIT_BIT, tt); FPRINTF(log, "%d %9" PRIu64 "\n", cnt * DIGIT_BIT, tt);
@ -147,15 +147,15 @@ int main(void)
SLEEP; SLEEP;
mp_rand(&a, cnt); mp_rand(&a, cnt);
mp_rand(&b, cnt); mp_rand(&b, cnt);
rr = 0; rr = 0u;
tt = -1; tt = UINT64_MAX;
do { do {
gg = TIMFUNC(); gg = TIMFUNC();
DO(mp_sub(&a, &b, &c)); DO(mp_sub(&a, &b, &c));
gg = (TIMFUNC() - gg) >> 1; gg = (TIMFUNC() - gg) >> 1;
if (tt > gg) if (tt > gg)
tt = gg; tt = gg;
} while (++rr < 100000); } while (++rr < 100000u);
printf("Subtracting\t\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", printf("Subtracting\t\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n",
mp_count_bits(&a), CLK_PER_SEC / tt, tt); mp_count_bits(&a), CLK_PER_SEC / tt, tt);
@ -183,15 +183,15 @@ int main(void)
SLEEP; SLEEP;
mp_rand(&a, cnt); mp_rand(&a, cnt);
mp_rand(&b, cnt); mp_rand(&b, cnt);
rr = 0; rr = 0u;
tt = -1; tt = UINT64_MAX;
do { do {
gg = TIMFUNC(); gg = TIMFUNC();
DO(mp_mul(&a, &b, &c)); DO(mp_mul(&a, &b, &c));
gg = (TIMFUNC() - gg) >> 1; gg = (TIMFUNC() - gg) >> 1;
if (tt > gg) if (tt > gg)
tt = gg; tt = gg;
} while (++rr < 100); } while (++rr < 100u);
printf("Multiplying\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", printf("Multiplying\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n",
mp_count_bits(&a), CLK_PER_SEC / tt, tt); mp_count_bits(&a), CLK_PER_SEC / tt, tt);
FPRINTF(log, "%d %9" PRIu64 "\n", mp_count_bits(&a), tt); FPRINTF(log, "%d %9" PRIu64 "\n", mp_count_bits(&a), tt);
@ -203,15 +203,15 @@ int main(void)
for (cnt = 4; cnt <= (10240 / DIGIT_BIT); cnt += 2) { for (cnt = 4; cnt <= (10240 / DIGIT_BIT); cnt += 2) {
SLEEP; SLEEP;
mp_rand(&a, cnt); mp_rand(&a, cnt);
rr = 0; rr = 0u;
tt = -1; tt = UINT64_MAX;
do { do {
gg = TIMFUNC(); gg = TIMFUNC();
DO(mp_sqr(&a, &b)); DO(mp_sqr(&a, &b));
gg = (TIMFUNC() - gg) >> 1; gg = (TIMFUNC() - gg) >> 1;
if (tt > gg) if (tt > gg)
tt = gg; tt = gg;
} while (++rr < 100); } while (++rr < 100u);
printf("Squaring\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", printf("Squaring\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n",
mp_count_bits(&a), CLK_PER_SEC / tt, tt); mp_count_bits(&a), CLK_PER_SEC / tt, tt);
FPRINTF(log, "%d %9" PRIu64 "\n", mp_count_bits(&a), tt); FPRINTF(log, "%d %9" PRIu64 "\n", mp_count_bits(&a), tt);
@ -267,23 +267,23 @@ int main(void)
b.dp[0] |= lbit(); b.dp[0] |= lbit();
b.used += 1; b.used += 1;
} }
mp_sub_d(&a, 1, &c); mp_sub_d(&a, 1uL, &c);
mp_mod(&b, &c, &b); mp_mod(&b, &c, &b);
mp_set(&c, 3); mp_set(&c, 3uL);
rr = 0; rr = 0u;
tt = -1; tt = UINT64_MAX;
do { do {
gg = TIMFUNC(); gg = TIMFUNC();
DO(mp_exptmod(&c, &b, &a, &d)); DO(mp_exptmod(&c, &b, &a, &d));
gg = (TIMFUNC() - gg) >> 1; gg = (TIMFUNC() - gg) >> 1;
if (tt > gg) if (tt > gg)
tt = gg; tt = gg;
} while (++rr < 10); } while (++rr < 10u);
mp_sub_d(&a, 1, &e); mp_sub_d(&a, 1uL, &e);
mp_sub(&e, &b, &b); mp_sub(&e, &b, &b);
mp_exptmod(&c, &b, &a, &e); /* c^(p-1-b) mod a */ mp_exptmod(&c, &b, &a, &e); /* c^(p-1-b) mod a */
mp_mulmod(&e, &d, &a, &d); /* c^b * c^(p-1-b) == c^p-1 == 1 */ mp_mulmod(&e, &d, &a, &d); /* c^b * c^(p-1-b) == c^p-1 == 1 */
if (mp_cmp_d(&d, 1) != MP_EQ) { if (mp_cmp_d(&d, 1uL) != MP_EQ) {
printf("Different (%d)!!!\n", mp_count_bits(&a)); printf("Different (%d)!!!\n", mp_count_bits(&a));
draw(&d); draw(&d);
exit(0); exit(0);
@ -306,21 +306,21 @@ int main(void)
mp_rand(&b, cnt); mp_rand(&b, cnt);
do { do {
mp_add_d(&b, 1, &b); mp_add_d(&b, 1uL, &b);
mp_gcd(&a, &b, &c); mp_gcd(&a, &b, &c);
} while (mp_cmp_d(&c, 1) != MP_EQ); } while (mp_cmp_d(&c, 1uL) != MP_EQ);
rr = 0; rr = 0u;
tt = -1; tt = UINT64_MAX;
do { do {
gg = TIMFUNC(); gg = TIMFUNC();
DO(mp_invmod(&b, &a, &c)); DO(mp_invmod(&b, &a, &c));
gg = (TIMFUNC() - gg) >> 1; gg = (TIMFUNC() - gg) >> 1;
if (tt > gg) if (tt > gg)
tt = gg; tt = gg;
} while (++rr < 1000); } while (++rr < 1000u);
mp_mulmod(&b, &c, &a, &d); mp_mulmod(&b, &c, &a, &d);
if (mp_cmp_d(&d, 1) != MP_EQ) { if (mp_cmp_d(&d, 1uL) != MP_EQ) {
printf("Failed to invert\n"); printf("Failed to invert\n");
return 0; return 0;
} }

@ -20,13 +20,13 @@ int main(void)
for (x = 0; x < (int)(sizeof(sizes) / sizeof(sizes[0])); x++) { for (x = 0; x < (int)(sizeof(sizes) / sizeof(sizes[0])); x++) {
top: top:
mp_2expt(&q, sizes[x]); mp_2expt(&q, sizes[x]);
mp_add_d(&q, 3, &q); mp_add_d(&q, 3uL, &q);
z = -3; z = -3;
t1 = clock(); t1 = clock();
for (;;) { for (;;) {
mp_sub_d(&q, 4, &q); mp_sub_d(&q, 4uL, &q);
z += 4; z += 4uL;
if (z > MP_MASK) { if (z > MP_MASK) {
printf("No primes of size %d found\n", sizes[x]); printf("No primes of size %d found\n", sizes[x]);
@ -47,7 +47,7 @@ top:
} }
/* find (q-1)/2 */ /* find (q-1)/2 */
mp_sub_d(&q, 1, &p); mp_sub_d(&q, 1uL, &p);
mp_div_2(&p, &p); mp_div_2(&p, &p);
mp_prime_is_prime(&p, 3, &y); mp_prime_is_prime(&p, 3, &y);
if (y == 0) { if (y == 0) {

@ -31,13 +31,13 @@ top:
/* now loop */ /* now loop */
res = 0; res = 0;
for (;;) { for (;;) {
a.dp[0] += 4; a.dp[0] += 4uL;
if (a.dp[0] >= MP_MASK) break; if (a.dp[0] >= MP_MASK) break;
mp_prime_is_prime(&a, 1, &res); mp_prime_is_prime(&a, 1, &res);
if (res == 0) continue; if (res == 0) continue;
printf("."); printf(".");
fflush(stdout); fflush(stdout);
mp_sub_d(&a, 1, &b); mp_sub_d(&a, 1uL, &b);
mp_div_2(&b, &b); mp_div_2(&b, &b);
mp_prime_is_prime(&b, 3, &res); mp_prime_is_prime(&b, 3, &res);
if (res == 0) continue; if (res == 0) continue;

@ -24,12 +24,12 @@ static int is_mersenne(long s, int *pp)
if ((res = mp_2expt(&n, s)) != MP_OKAY) { if ((res = mp_2expt(&n, s)) != MP_OKAY) {
goto LBL_MU; goto LBL_MU;
} }
if ((res = mp_sub_d(&n, 1, &n)) != MP_OKAY) { if ((res = mp_sub_d(&n, 1uL, &n)) != MP_OKAY) {
goto LBL_MU; goto LBL_MU;
} }
/* set u=4 */ /* set u=4 */
mp_set(&u, 4); mp_set(&u, 4uL);
/* for k=1 to s-2 do */ /* for k=1 to s-2 do */
for (k = 1; k <= (s - 2); k++) { for (k = 1; k <= (s - 2); k++) {
@ -37,7 +37,7 @@ static int is_mersenne(long s, int *pp)
if ((res = mp_sqr(&u, &u)) != MP_OKAY) { if ((res = mp_sqr(&u, &u)) != MP_OKAY) {
goto LBL_MU; goto LBL_MU;
} }
if ((res = mp_sub_d(&u, 2, &u)) != MP_OKAY) { if ((res = mp_sub_d(&u, 2uL, &u)) != MP_OKAY) {
goto LBL_MU; goto LBL_MU;
} }
@ -49,7 +49,7 @@ static int is_mersenne(long s, int *pp)
} }
/* reduce */ /* reduce */
if ((res = mp_reduce_2k(&u, &n, 1)) != MP_OKAY) { if ((res = mp_reduce_2k(&u, &n, 1uL)) != MP_OKAY) {
goto LBL_MU; goto LBL_MU;
} }
} }

@ -18,7 +18,7 @@ int main(void)
/* make up the odd modulus */ /* make up the odd modulus */
mp_rand(&modulus, x); mp_rand(&modulus, x);
modulus.dp[0] |= 1; modulus.dp[0] |= 1uL;
/* now find the R value */ /* now find the R value */
mp_montgomery_calc_normalization(&R, &modulus); mp_montgomery_calc_normalization(&R, &modulus);

@ -18,7 +18,7 @@ static mp_digit i_sqrt(mp_word x)
x2 = x; x2 = x;
do { do {
x1 = x2; x1 = x2;
x2 = x1 - ((x1 * x1) - x) / (2 * x1); x2 = x1 - ((x1 * x1) - x) / (2u * x1);
} while (x1 != x2); } while (x1 != x2);
if ((x1 * x1) > x) { if ((x1 * x1) > x) {
@ -40,114 +40,114 @@ static void gen_prime(void)
/* write first set of primes */ /* write first set of primes */
/* *INDENT-OFF* */ /* *INDENT-OFF* */
r = 3; fwrite(&r, 1, sizeof(mp_digit), out); r = 3uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 5; fwrite(&r, 1, sizeof(mp_digit), out); r = 5uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 7; fwrite(&r, 1, sizeof(mp_digit), out); r = 7uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 11; fwrite(&r, 1, sizeof(mp_digit), out); r = 11uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 13; fwrite(&r, 1, sizeof(mp_digit), out); r = 13uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 17; fwrite(&r, 1, sizeof(mp_digit), out); r = 17uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 19; fwrite(&r, 1, sizeof(mp_digit), out); r = 19uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 23; fwrite(&r, 1, sizeof(mp_digit), out); r = 23uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 29; fwrite(&r, 1, sizeof(mp_digit), out); r = 29uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
r = 31; fwrite(&r, 1, sizeof(mp_digit), out); r = 31uL; fwrite(&r, 1uL, sizeof(mp_digit), out);
/* *INDENT-ON* */ /* *INDENT-ON* */
/* get square root, since if 'r' is composite its factors must be < than this */ /* get square root, since if 'r' is composite its factors must be < than this */
y = i_sqrt(r); y = i_sqrt(r);
next = (y + 1) * (y + 1); next = (y + 1uL) * (y + 1uL);
for (;;) { for (;;) {
do { do {
r += 2; /* next candidate */ r += 2uL; /* next candidate */
r &= MP_MASK; r &= MP_MASK;
if (r < 31) break; if (r < 31uL) break;
/* update sqrt ? */ /* update sqrt ? */
if (next <= r) { if (next <= r) {
++y; ++y;
next = (y + 1) * (y + 1); next = (y + 1uL) * (y + 1uL);
} }
/* loop if divisible by 3,5,7,11,13,17,19,23,29 */ /* loop if divisible by 3,5,7,11,13,17,19,23,29 */
if ((r % 3) == 0) { if ((r % 3uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
if ((r % 5) == 0) { if ((r % 5uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
if ((r % 7) == 0) { if ((r % 7uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
if ((r % 11) == 0) { if ((r % 11uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
if ((r % 13) == 0) { if ((r % 13uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
if ((r % 17) == 0) { if ((r % 17uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
if ((r % 19) == 0) { if ((r % 19uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
if ((r % 23) == 0) { if ((r % 23uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
if ((r % 29) == 0) { if ((r % 29uL) == 0uL) {
x = 0; x = 0uL;
continue; continue;
} }
/* now check if r is divisible by x + k={1,7,11,13,17,19,23,29} */ /* now check if r is divisible by x + k={1,7,11,13,17,19,23,29} */
for (x = 30; x <= y; x += 30) { for (x = 30uL; x <= y; x += 30uL) {
if ((r % (x + 1)) == 0) { if ((r % (x + 1uL)) == 0uL) {
x = 0; x = 0uL;
break; break;
} }
if ((r % (x + 7)) == 0) { if ((r % (x + 7uL)) == 0uL) {
x = 0; x = 0uL;
break; break;
} }
if ((r % (x + 11)) == 0) { if ((r % (x + 11uL)) == 0uL) {
x = 0; x = 0uL;
break; break;
} }
if ((r % (x + 13)) == 0) { if ((r % (x + 13uL)) == 0uL) {
x = 0; x = 0uL;
break; break;
} }
if ((r % (x + 17)) == 0) { if ((r % (x + 17uL)) == 0uL) {
x = 0; x = 0uL;
break; break;
} }
if ((r % (x + 19)) == 0) { if ((r % (x + 19uL)) == 0uL) {
x = 0; x = 0uL;
break; break;
} }
if ((r % (x + 23)) == 0) { if ((r % (x + 23uL)) == 0uL) {
x = 0; x = 0uL;
break; break;
} }
if ((r % (x + 29)) == 0) { if ((r % (x + 29uL)) == 0uL) {
x = 0; x = 0uL;
break; break;
} }
} }
} while (x == 0); } while (x == 0uL);
if (r > 31) { if (r > 31uL) {
fwrite(&r, 1, sizeof(mp_digit), out); fwrite(&r, 1uL, sizeof(mp_digit), out);
printf("%9u\r", r); printf("%9u\r", r);
fflush(stdout); fflush(stdout);
} }
if (r < 31) break; if (r < 31uL) break;
} }
fclose(out); fclose(out);
@ -161,7 +161,7 @@ static void load_tab(void)
gen_prime(); gen_prime();
primes = fopen("pprime.dat", "rb"); primes = fopen("pprime.dat", "rb");
} }
fseek(primes, 0, SEEK_END); fseek(primes, 0L, SEEK_END);
n_prime = ftell(primes) / sizeof(mp_digit); n_prime = ftell(primes) / sizeof(mp_digit);
} }
@ -172,7 +172,7 @@ static mp_digit prime_digit(void)
n = abs(rand()) % n_prime; n = abs(rand()) % n_prime;
fseek(primes, n * sizeof(mp_digit), SEEK_SET); fseek(primes, n * sizeof(mp_digit), SEEK_SET);
fread(&d, 1, sizeof(mp_digit), primes); fread(&d, 1uL, sizeof(mp_digit), primes);
return d; return d;
} }
@ -254,7 +254,7 @@ top:
} }
/* n = z + 1 */ /* n = z + 1 */
if ((res = mp_add_d(&z, 1, &n)) != MP_OKAY) { /* n = z + 1 */ if ((res = mp_add_d(&z, 1uL, &n)) != MP_OKAY) { /* n = z + 1 */
goto LBL_Z; goto LBL_Z;
} }
@ -263,7 +263,7 @@ top:
goto LBL_Z; goto LBL_Z;
} }
if (mp_cmp_d(&y, 1) != MP_EQ) if (mp_cmp_d(&y, 1uL) != MP_EQ)
goto top; goto top;
/* now try base x=bases[ii] */ /* now try base x=bases[ii] */
@ -276,7 +276,7 @@ top:
} }
/* if y == 1 loop */ /* if y == 1 loop */
if (mp_cmp_d(&y, 1) == MP_EQ) if (mp_cmp_d(&y, 1uL) == MP_EQ)
continue; continue;
/* now x^2a mod n */ /* now x^2a mod n */
@ -284,7 +284,7 @@ top:
goto LBL_Z; goto LBL_Z;
} }
if (mp_cmp_d(&y, 1) == MP_EQ) if (mp_cmp_d(&y, 1uL) == MP_EQ)
continue; continue;
/* compute x^b mod n */ /* compute x^b mod n */
@ -293,7 +293,7 @@ top:
} }
/* if y == 1 loop */ /* if y == 1 loop */
if (mp_cmp_d(&y, 1) == MP_EQ) if (mp_cmp_d(&y, 1uL) == MP_EQ)
continue; continue;
/* now x^2b mod n */ /* now x^2b mod n */
@ -301,7 +301,7 @@ top:
goto LBL_Z; goto LBL_Z;
} }
if (mp_cmp_d(&y, 1) == MP_EQ) if (mp_cmp_d(&y, 1uL) == MP_EQ)
continue; continue;
/* compute x^c mod n == x^ab mod n */ /* compute x^c mod n == x^ab mod n */
@ -310,7 +310,7 @@ top:
} }
/* if y == 1 loop */ /* if y == 1 loop */
if (mp_cmp_d(&y, 1) == MP_EQ) if (mp_cmp_d(&y, 1uL) == MP_EQ)
continue; continue;
/* now compute (x^c mod n)^2 */ /* now compute (x^c mod n)^2 */
@ -319,7 +319,7 @@ top:
} }
/* y should be 1 */ /* y should be 1 */
if (mp_cmp_d(&y, 1) != MP_EQ) if (mp_cmp_d(&y, 1uL) != MP_EQ)
continue; continue;
break; break;
} }
@ -345,7 +345,7 @@ top:
} }
/* get q to be the order of the large prime subgroup */ /* get q to be the order of the large prime subgroup */
mp_sub_d(&n, 1, q); mp_sub_d(&n, 1uL, q);
mp_div_2(q, q); mp_div_2(q, q);
mp_div(q, &b, q, NULL); mp_div(q, &b, q, NULL);