diff options
Diffstat (limited to 'src/invalid/invalid_thread.c')
| -rw-r--r-- | src/invalid/invalid_thread.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/invalid/invalid_thread.c b/src/invalid/invalid_thread.c index 2f61ffa..a06bafa 100644 --- a/src/invalid/invalid_thread.c +++ b/src/invalid/invalid_thread.c @@ -22,8 +22,8 @@ void *invalid_thread(void *arg) { while (*thread->generated < thread->nprimes) { pari_sp btop = avma; - exhaustive_gen(invalid, thread->cfg, thread->gens, NULL, OFFSET_B, - OFFSET_GENERATORS); + exhaustive_gen(invalid, thread->cfg, thread->gens, NULL, + thread->unrolls, OFFSET_B, OFFSET_GENERATORS); size_t ndivides = 0; for (size_t i = thread->nprimes; i-- > 0;) { if (dvdis(invalid->order, thread->primes[i])) { @@ -53,7 +53,8 @@ void *invalid_thread(void *arg) { arg_t prime_divisors = {primes, nprimes}; invalid_argss[OFFSET_POINTS] = &prime_divisors; exhaustive_gen(invalid, thread->cfg, thread->gens, - invalid_argss, OFFSET_GENERATORS, OFFSET_END); + invalid_argss, thread->unrolls, + OFFSET_GENERATORS, OFFSET_END); pthread_mutex_lock(thread->mutex_state); size_t count = 0; @@ -77,11 +78,11 @@ void *invalid_thread(void *arg) { invalid->field = gcopy(thread->original_curve->field); invalid->a = gcopy(thread->original_curve->a); } else { - obj_free(invalid->curve); // necessary to free the ellinit + curve_unroll(invalid, thread->cfg, avma, btop); avma = btop; } } else { - obj_free(invalid->curve); // necessary to free the ellinit + curve_unroll(invalid, thread->cfg, avma, btop); avma = btop; } } |
