summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordberg.se>1999-04-29 11:25:48 +0200
committerLinus Nordberg <linus@nordberg.se>1999-04-29 11:25:48 +0200
commitb0c4502ba0979360835547681b628288db484abe (patch)
tree8597c50acd11ec598cbb9f12108bd05d02c66f07 /tests
parentf19613f7d0b42709d6acdfa5c95cc4ee23a41a52 (diff)
downloadgmp-b0c4502ba0979360835547681b628288db484abe.tar.gz
Add -i.
Diffstat (limited to 'tests')
-rw-r--r--tests/rand/ChangeLog4
-rw-r--r--tests/rand/findcl.c20
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);