aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJ08nY2018-07-09 21:46:09 +0200
committerJ08nY2018-07-10 00:05:44 +0200
commite73dbb321629b845d37cae1b8376a8ac5a7542be (patch)
tree51e376403e451a01ea659e4f0885630dd6b49f4a /src
parent57888634921b61a828f9b98632b8a450bd6445f2 (diff)
downloadecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.tar.gz
ecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.tar.zst
ecgen-e73dbb321629b845d37cae1b8376a8ac5a7542be.zip
Diffstat (limited to 'src')
-rw-r--r--src/cm/cm_any.c20
-rw-r--r--src/cm/cm_any.h10
-rw-r--r--src/cm/cm_prime.c33
-rw-r--r--src/cm/cm_prime.h7
-rw-r--r--src/gen/point.c1
-rw-r--r--src/invalid/invalid.c1
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"