diff options
| author | J08nY | 2018-04-09 19:22:54 +0200 |
|---|---|---|
| committer | J08nY | 2018-04-09 19:22:54 +0200 |
| commit | 4662f2e2977e400925b3816d32782d88ccb39504 (patch) | |
| tree | 8c80e66179abe3684aac4585153d4f61f12c8115 | |
| parent | 65ec6b9789294a5bf8319b5eb14d2cb65b1b8fe8 (diff) | |
| download | ecgen-4662f2e2977e400925b3816d32782d88ccb39504.tar.gz ecgen-4662f2e2977e400925b3816d32782d88ccb39504.tar.zst ecgen-4662f2e2977e400925b3816d32782d88ccb39504.zip | |
| -rw-r--r-- | src/cm/custom.c | 54 |
1 files changed, 1 insertions, 53 deletions
diff --git a/src/cm/custom.c b/src/cm/custom.c index c8d6d8b..33ebde3 100644 --- a/src/cm/custom.c +++ b/src/cm/custom.c @@ -3,7 +3,6 @@ * Copyright (C) 2017 J08nY */ #include "custom.h" -#include <obj/obj.h> #include "io/input.h" #include "io/output.h" #include "obj/curve.h" @@ -11,52 +10,6 @@ #include "obj/subgroup.h" #include "util/bits.h" -static bool custom_is_disc(GEN test) { - bool result = true; - long md4; - pari_CATCH(e_DOMAIN) { result = false; } - pari_TRY { check_quaddisc_imag(test, &md4, ""); }; - pari_ENDCATCH return result; -} - -static GEN custom_disc(GEN order, GEN prime) { - pari_sp ltop = avma; - - GEN t = subii(order, addii(prime, gen_1)); - GEN v2D = subii(mulis(prime, 4), sqri(t)); - - GEN min_D = core(v2D); - - if (signe(min_D) == 1) { - setsigne(min_D, -1); - } - if (custom_is_disc(min_D)) { - return gerepileupto(ltop, min_D); - } else { - avma = ltop; - return NULL; - } -} - -static custom_quadr_t custom_prime_input(GEN order) { - pari_sp ltop = avma; - custom_quadr_t result = {0}; - GEN p; - GEN D; - do { - p = input_prime("p:", cfg->bits); - if (gequalm1(p)) { - continue; - } - D = custom_disc(order, p); - } while (D == NULL); - - gerepileall(ltop, 2, &p, &D); - result.p = p; - result.D = D; - return result; -} - static size_t custom_add_primes(GEN r, GEN order, GEN **primes, size_t nprimes) { size_t nalloc = nprimes; @@ -163,12 +116,7 @@ static custom_quadr_t custom_prime_random(GEN order) { curve_t *custom_curve() { GEN order = strtoi(cfg->cm_order); - custom_quadr_t quadr; - if (cfg->random) { - quadr = custom_prime_random(order); - } else { - quadr = custom_prime_input(order); - } + custom_quadr_t quadr = custom_prime_random(order); debug_log("order = %Pi", order); debug_log("p = %Pi, t = %Pi, v = %Pi, D = %Pi, ", quadr.p, quadr.t, quadr.v, quadr.D); |
