add mp_prime_is_prime to timing demo...
... it's disabled per default for now...
This commit is contained in:
parent
4f245b0476
commit
e6f353b48d
@ -103,6 +103,10 @@ int main(void)
|
|||||||
uint64_t tt, gg, CLK_PER_SEC;
|
uint64_t tt, gg, CLK_PER_SEC;
|
||||||
FILE *log, *logb, *logc, *logd;
|
FILE *log, *logb, *logc, *logd;
|
||||||
mp_int a, b, c, d, e, f;
|
mp_int a, b, c, d, e, f;
|
||||||
|
#ifdef LTM_TIMING_PRIME_IS_PRIME
|
||||||
|
const char* name;
|
||||||
|
int m;
|
||||||
|
#endif
|
||||||
int n, cnt, ix, old_kara_m, old_kara_s, old_toom_m, old_toom_s;
|
int n, cnt, ix, old_kara_m, old_kara_s, old_toom_m, old_toom_s;
|
||||||
unsigned rr;
|
unsigned rr;
|
||||||
|
|
||||||
@ -121,6 +125,40 @@ int main(void)
|
|||||||
CLK_PER_SEC = TIMFUNC() - CLK_PER_SEC;
|
CLK_PER_SEC = TIMFUNC() - CLK_PER_SEC;
|
||||||
|
|
||||||
printf("CLK_PER_SEC == %" PRIu64 "\n", CLK_PER_SEC);
|
printf("CLK_PER_SEC == %" PRIu64 "\n", CLK_PER_SEC);
|
||||||
|
|
||||||
|
#ifdef LTM_TIMING_PRIME_IS_PRIME
|
||||||
|
for (m = 0; m < 2; ++m) {
|
||||||
|
if (m == 0) {
|
||||||
|
name = " Arnault";
|
||||||
|
mp_read_radix(&a,"91xLNF3roobhzgTzoFIG6P13ZqhOVYSN60Fa7Cj2jVR1g0k89zdahO9/kAiRprpfO1VAp1aBHucLFV/qLKLFb+zonV7R2Vxp1K13ClwUXStpV0oxTNQVjwybmFb5NBEHImZ6V7P6+udRJuH8VbMEnS0H8/pSqQrg82OoQQ2fPpAk6G1hkjqoCv5s/Yr",64);
|
||||||
|
} else {
|
||||||
|
name = "2^1119 + 53";
|
||||||
|
mp_set(&a,1u);
|
||||||
|
mp_mul_2d(&a,1119,&a);
|
||||||
|
mp_add_d(&a,53,&a);
|
||||||
|
}
|
||||||
|
cnt = mp_prime_rabin_miller_trials(mp_count_bits(&a));
|
||||||
|
ix = -cnt;
|
||||||
|
for (; cnt >= ix; cnt += ix) {
|
||||||
|
rr = 0u;
|
||||||
|
tt = UINT64_MAX;
|
||||||
|
do {
|
||||||
|
gg = TIMFUNC();
|
||||||
|
DO(mp_prime_is_prime(&a, cnt, &n));
|
||||||
|
gg = (TIMFUNC() - gg) >> 1;
|
||||||
|
if (tt > gg)
|
||||||
|
tt = gg;
|
||||||
|
if ((m == 0) && (n == MP_YES)) {
|
||||||
|
printf("Arnault's pseudoprime is not prime but mp_prime_is_prime says it is.\n");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
} while (++rr < 100u);
|
||||||
|
printf("Prime-check\t%s(%2d) => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n",
|
||||||
|
name, cnt, CLK_PER_SEC / tt, tt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
log = FOPEN("logs/add.log", "w");
|
log = FOPEN("logs/add.log", "w");
|
||||||
for (cnt = 8; cnt <= 128; cnt += 8) {
|
for (cnt = 8; cnt <= 128; cnt += 8) {
|
||||||
SLEEP;
|
SLEEP;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user