diff options
| author | J08nY | 2018-07-09 21:46:09 +0200 |
|---|---|---|
| committer | J08nY | 2018-07-10 00:05:44 +0200 |
| commit | e73dbb321629b845d37cae1b8376a8ac5a7542be (patch) | |
| tree | 51e376403e451a01ea659e4f0885630dd6b49f4a /src | |
| parent | 57888634921b61a828f9b98632b8a450bd6445f2 (diff) | |
| download | ecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.tar.gz ecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.tar.zst ecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/cm/cm_any.c | 20 | ||||
| -rw-r--r-- | src/cm/cm_any.h | 10 | ||||
| -rw-r--r-- | src/cm/cm_prime.c | 33 | ||||
| -rw-r--r-- | src/cm/cm_prime.h | 7 | ||||
| -rw-r--r-- | src/gen/point.c | 1 | ||||
| -rw-r--r-- | src/invalid/invalid.c | 1 |
6 files changed, 4 insertions, 68 deletions
diff --git a/src/cm/cm_any.c b/src/cm/cm_any.c index f993fa3..2cab060 100644 --- a/src/cm/cm_any.c +++ b/src/cm/cm_any.c @@ -3,8 +3,6 @@ * Copyright (C) 2017-2018 J08nY */ #include "cm_any.h" -#include <misc/config.h> -#include <obj/obj.h> #include "io/output.h" #include "obj/curve.h" #include "util/memory.h" @@ -205,24 +203,6 @@ GEN cm_construct_curve(GEN order, GEN d, GEN p, bool ord_prime) { return NULL; } -curve_t *cm_any_curve(GEN order) { - cm_any_qdisc_t min_disc = {0}; - good_qdisc_minimal(&min_disc, order); - debug_log("Got min D = %Pi", min_disc.d); - GEN e = cm_construct_curve(order, min_disc.d, min_disc.p, false); - if (e == NULL) { - fprintf(err, "Could not construct curve."); - return NULL; - } - curve_t *curve = curve_new(); - curve->field = min_disc.p; - curve->curve = e; - curve->a = ell_get_a4(e); - curve->b = ell_get_a6(e); - curve->order = gcopy(order); - return curve; -} - GENERATOR(cm_gen_curve_any) { pari_sp ltop = avma; GEN order = strtoi(cfg->cm_order); diff --git a/src/cm/cm_any.h b/src/cm/cm_any.h index 48dee1c..42fc68e 100644 --- a/src/cm/cm_any.h +++ b/src/cm/cm_any.h @@ -13,7 +13,8 @@ typedef struct { } cm_any_qdisc_t; /** - * @brief + * @brief Construct an elliptic curve given its order, CM discriminant and field + * order. * @param order * @param d * @param p @@ -24,13 +25,6 @@ GEN cm_construct_curve(GEN order, GEN d, GEN p, bool ord_prime); /** * @brief - * @param order - * @return - */ -curve_t *cm_any_curve(GEN order); - -/** - * @brief * @param curve * @param args * @param state diff --git a/src/cm/cm_prime.c b/src/cm/cm_prime.c index e3a6882..383229b 100644 --- a/src/cm/cm_prime.c +++ b/src/cm/cm_prime.c @@ -96,8 +96,8 @@ static void qdisc_next(cm_prime_qdisc_t *qdisc) { if (cmpii(absp, rlog2) < 0 && equalii(modis(pprod, 8), stoi(5)) && m4 != 1 && m4 != 2) { debug_log("candidate D = %Pi", pprod); - GEN x; - GEN y; + GEN x = NULL; + GEN y = NULL; if (!cornacchia2(absp, qdisc->order, &x, &y)) { qdisc->i = gerepileupto(btop, addis(qdisc->i, 1)); // debug_log("Cornacchia fail"); @@ -137,35 +137,6 @@ static void qdisc_next(cm_prime_qdisc_t *qdisc) { static void qdisc_free(cm_prime_qdisc_t *qdisc) { try_free(qdisc->Sp); } -curve_t *cm_prime_curve(GEN order) { - GEN e = NULL; - - cm_prime_qdisc_t qdisc = {0}; - qdisc_init(&qdisc, order); - do { - qdisc_next(&qdisc); - e = cm_construct_curve(order, qdisc.D, qdisc.p, true); - } while (e == NULL); - qdisc_free(&qdisc); - - curve_t *result = curve_new(); - result->field = qdisc.p; - result->a = ell_get_a4(e); - result->b = ell_get_a6(e); - result->curve = e; - result->order = order; - result->generators = subgroups_new(1); - result->generators[0] = subgroup_new(); - result->generators[0]->generator = point_new(); - result->generators[0]->generator->point = genrand(e); - result->generators[0]->generator->order = order; - result->generators[0]->generator->cofactor = stoi(1); - result->generators[0]->npoints = 0; - result->ngens = 1; - - return result; -} - GENERATOR(cm_gen_curve_prime) { GEN order = strtoi(cfg->cm_order); GEN e = NULL; diff --git a/src/cm/cm_prime.h b/src/cm/cm_prime.h index 9b25100..739da84 100644 --- a/src/cm/cm_prime.h +++ b/src/cm/cm_prime.h @@ -26,13 +26,6 @@ typedef struct { * Algorithm mostly from: * Constructing elliptic curves of prime order * by Reinier Broker and Peter Stevenhagen - * @param order the requested order, must be prime - * @return - */ -curve_t* cm_prime_curve(GEN order); - -/** - * @brief * @param curve * @param args * @param state diff --git a/src/gen/point.c b/src/gen/point.c index 7d3ba90..d98edac 100644 --- a/src/gen/point.c +++ b/src/gen/point.c @@ -3,7 +3,6 @@ * Copyright (C) 2017-2018 J08nY */ #include "point.h" -#include <obj/obj.h> #include "exhaustive/arg.h" #include "math/subgroup.h" #include "obj/point.h" diff --git a/src/invalid/invalid.c b/src/invalid/invalid.c index 9b4dcb2..686bf23 100644 --- a/src/invalid/invalid.c +++ b/src/invalid/invalid.c @@ -3,7 +3,6 @@ * Copyright (C) 2017-2018 J08nY */ #include "invalid.h" -#include <misc/config.h> #include "exhaustive/arg.h" #include "exhaustive/check.h" #include "exhaustive/exhaustive.h" |
