diff options
author | Linus Nordberg <linus@nordberg.se> | 1999-04-29 11:25:48 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordberg.se> | 1999-04-29 11:25:48 +0200 |
commit | b0c4502ba0979360835547681b628288db484abe (patch) | |
tree | 8597c50acd11ec598cbb9f12108bd05d02c66f07 /tests | |
parent | f19613f7d0b42709d6acdfa5c95cc4ee23a41a52 (diff) | |
download | gmp-b0c4502ba0979360835547681b628288db484abe.tar.gz |
Add -i.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/rand/ChangeLog | 4 | ||||
-rw-r--r-- | tests/rand/findcl.c | 20 |
2 files changed, 21 insertions, 3 deletions
diff --git a/tests/rand/ChangeLog b/tests/rand/ChangeLog index 9ea757d05..801ab1e28 100644 --- a/tests/rand/ChangeLog +++ b/tests/rand/ChangeLog @@ -1,3 +1,7 @@ +1999-04-29 Linus Nordberg <linus@swox.se> + + * findcl.c (main): Add option '-i' for interval factor. + 1999-04-28 Linus Nordberg <linus@swox.se> * statlib.c: Change debugging stuff. diff --git a/tests/rand/findcl.c b/tests/rand/findcl.c index 795ab7f77..a53d07d8d 100644 --- a/tests/rand/findcl.c +++ b/tests/rand/findcl.c @@ -48,7 +48,7 @@ sh_status (int sig) int main (int argc, char *argv[]) { - const char usage[] = "usage: findcl [-a start_a] [-d] m [low_merit [high_merit]]\n"; + const char usage[] = "usage: findcl [-a start_a] [-d] [-i interval-fact] m [low_merit [high_merit]]\n"; int f; int lose, best; int c; @@ -56,8 +56,10 @@ main (int argc, char *argv[]) int have_start_a = 0; int cnt_high_merit; unsigned long int rem; + unsigned int intervalfac = 1; /* interval factor for increasing 'a' */ mpz_t m; mpz_t ulim, z_tmp; + mpz_t interval; #define DIMS 6 /* dimensions run in spectral test */ mpf_t v[DIMS-1]; /* spectral test result (there's no v for 1st dimension */ @@ -67,13 +69,14 @@ main (int argc, char *argv[]) mpz_init (a); mpz_init (ulim); mpz_init (z_tmp); + mpz_init (interval); for (f = 0; f < DIMS-1; f++) mpf_init (v[f]); mpf_init (f_merit); mpf_init_set_d (low_merit, .1); mpf_init_set_d (high_merit, .1); - while ((c = getopt (argc, argv, "a:dh")) != -1) + while ((c = getopt (argc, argv, "a:di:h")) != -1) switch (c) { case 'a': /* start_a */ @@ -85,6 +88,10 @@ main (int argc, char *argv[]) g_debug++; break; + case 'i': /* interval */ + intervalfac = (int) strtoul (optarg, NULL, 0); + break; + case 'h': case '?': default: @@ -119,6 +126,12 @@ main (int argc, char *argv[]) mpz_out_str (stdout, 16, m); puts (""); + mpz_set_ui (interval, intervalfac); + mpz_mul_ui (interval, interval, 8); + printf ("interval = "); + mpz_out_str (stdout, 10, interval); + puts (""); + if (argc > 1) /* have low_merit */ mpf_set_str (low_merit, argv[1], 0); if (argc > 2) /* have high_merit */ @@ -149,7 +162,7 @@ main (int argc, char *argv[]) mpz_add_ui (a, a, 8 + (5 - rem)); best = 2*(DIMS-1); - for (; mpz_cmp (a, ulim) <= 0; mpz_add_ui (a, a, 8)) + for (; mpz_cmp (a, ulim) <= 0; mpz_add (a, a, interval)) { /* TODO: Reject 'a' with "binary or decimal simple, regular pattern." */ @@ -191,6 +204,7 @@ main (int argc, char *argv[]) mpz_clear (a); mpz_clear (ulim); mpz_clear (z_tmp); + mpz_clear (interval); for (f = 0; f < DIMS-1; f++) mpf_clear (v[f]); mpf_clear (f_merit); |