diff options
author | Niels Möller <nisse@lysator.liu.se> | 2008-01-05 23:52:11 +0100 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2008-01-05 23:52:11 +0100 |
commit | e8d6a5f0f0a2b2374e81972f45055b34f63236bf (patch) | |
tree | efa2b93ad253860712e24e9477205d498d12fa19 /examples/next-prime.c | |
parent | 81a452ea86d5f54681df158162c2d30abe78e4b7 (diff) | |
download | nettle-e8d6a5f0f0a2b2374e81972f45055b34f63236bf.tar.gz |
* examples/next-prime.c: New file.
Deleted code for detailed timing.
Rev: nettle/examples/next-prime.c:1.2
Diffstat (limited to 'examples/next-prime.c')
-rw-r--r-- | examples/next-prime.c | 69 |
1 files changed, 7 insertions, 62 deletions
diff --git a/examples/next-prime.c b/examples/next-prime.c index 6273a1c6..71463828 100644 --- a/examples/next-prime.c +++ b/examples/next-prime.c @@ -47,51 +47,6 @@ usage(void) " -s --sieve-limit Number of primes to use for sieving.\n"); } -/* For timing */ -struct timing { - clock_t start; - clock_t sieve_start; - clock_t sieve_time; - clock_t fermat_start; - clock_t fermat_time; - unsigned fermat_count; - clock_t miller_start; - clock_t miller_time; - unsigned miller_count; - clock_t end; -}; - -static void -progress(void *ctx, int c) -{ - struct timing *timing = (struct timing *) ctx; - clock_t now = clock(); - switch (c) - { - case '.': - timing->sieve_time += (now - timing->sieve_start); - timing->fermat_count++; - timing->fermat_start = now; - break; - case ',': - timing->sieve_start = now; - timing->fermat_time += (now - timing->fermat_start); - break; - case '+': - timing->fermat_time += (now - timing->fermat_start); - timing->miller_count++; - timing->miller_start = now; - break; - case '*': - timing->sieve_start = now; - timing->miller_time += (now - timing->miller_start); - break; - - default: - abort(); - } -} - int main(int argc, char **argv) { @@ -103,8 +58,9 @@ main(int argc, char **argv) int factorial = 0; int prime_limit = 200; - struct timing timing; - + clock_t start; + clock_t end; + enum { OPT_FACTORIAL = -100, OPT_RANDOM }; static const struct option options[] = { @@ -175,11 +131,9 @@ main(int argc, char **argv) mpz_init(p); - timing.fermat_count = timing.miller_count = 0; - timing.sieve_time = timing.fermat_time = timing.miller_time = 0; - timing.start = timing.sieve_start = clock(); - nettle_next_prime(p, n, 25, prime_limit, &timing, verbose ? progress : NULL); - timing.end = clock(); + start = clock(); + nettle_next_prime(p, n, 25, prime_limit, NULL, NULL); + end = clock(); mpz_out_str(stdout, 10, p); printf("\n"); @@ -191,18 +145,9 @@ main(int argc, char **argv) mpz_init(d); mpz_sub(d, p, n); - timing.miller_time += (timing.end - timing.miller_start); - gmp_fprintf(stderr, "bit size: %lu, diff: %Zd, total time: %.3g s\n", mpz_sizeinbase(p, 2), d, - (double)(timing.end - timing.start) / CLOCKS_PER_SEC); - - fprintf(stderr, "sieve time = %.3g s\n", - (double)(timing.sieve_time) / CLOCKS_PER_SEC); - fprintf(stderr, "fermat count: %d, time: %.3g s\n", - timing.fermat_count, (double)(timing.fermat_time) / CLOCKS_PER_SEC); - fprintf(stderr, "miller count: %d, time: %.3g s\n", - timing.miller_count, (double)(timing.miller_time) / CLOCKS_PER_SEC); + (double)(end - start) / CLOCKS_PER_SEC); } return EXIT_SUCCESS; } |