summaryrefslogtreecommitdiff
path: root/src/invalid/invalid_thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/invalid/invalid_thread.c')
-rw-r--r--src/invalid/invalid_thread.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/invalid/invalid_thread.c b/src/invalid/invalid_thread.c
index b94e456..be2c4aa 100644
--- a/src/invalid/invalid_thread.c
+++ b/src/invalid/invalid_thread.c
@@ -14,6 +14,10 @@ void *invalid_thread(void *arg) {
pari_thread_start(thread->pari_thread);
random_init();
arg_t *invalid_argss[OFFSET_END];
+ exhaustive_t invalid_setup = {.generators = thread->setup->generators,
+ .validators = thread->setup->validators,
+ .argss = invalid_argss,
+ .unrolls = thread->setup->unrolls};
curve_t *invalid = curve_new();
invalid->field = gcopy(thread->original_curve->field);
@@ -21,8 +25,8 @@ void *invalid_thread(void *arg) {
while (*thread->generated < thread->nprimes) {
pari_sp btop = avma;
- exhaustive_gen(invalid, thread->cfg, thread->gens, NULL,
- thread->unrolls, OFFSET_B, OFFSET_GENERATORS);
+ exhaustive_gen(invalid, thread->cfg, thread->setup, OFFSET_B,
+ OFFSET_GENERATORS);
size_t ndivides = 0;
for (size_t i = thread->nprimes; i-- > 0;) {
if (dvdis(invalid->order, thread->primes[i])) {
@@ -33,8 +37,7 @@ void *invalid_thread(void *arg) {
debug("ndivides = %lu\n", ndivides);
if (ndivides > 0 &&
- exhaustive_gen_retry(invalid, thread->cfg, thread->gens,
- invalid_argss, thread->unrolls,
+ exhaustive_gen_retry(invalid, thread->cfg, &invalid_setup,
OFFSET_GENERATORS, OFFSET_POINTS, 1)) {
pthread_mutex_lock(thread->mutex_state);
size_t nfree = 0;
@@ -55,9 +58,8 @@ void *invalid_thread(void *arg) {
if (nfree > 0) {
arg_t prime_divisors = {primes, nprimes};
invalid_argss[OFFSET_POINTS] = &prime_divisors;
- exhaustive_gen(invalid, thread->cfg, thread->gens,
- invalid_argss, thread->unrolls, OFFSET_POINTS,
- OFFSET_END);
+ exhaustive_gen(invalid, thread->cfg, &invalid_setup,
+ OFFSET_POINTS, OFFSET_END);
pthread_mutex_lock(thread->mutex_state);
size_t count = 0;