From 3e1aefd54ed04787d6ef8b8648b582e563554819 Mon Sep 17 00:00:00 2001 From: J08nY Date: Thu, 22 Apr 2021 12:44:46 +0200 Subject: Fix CM-discriminant and conductor computation. --- src/gen/metadata.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gen/metadata.c b/src/gen/metadata.c index 99e7dfc..b857ec7 100644 --- a/src/gen/metadata.c +++ b/src/gen/metadata.c @@ -21,13 +21,13 @@ GENERATOR(metadata_gen) { } else { return -7; } - GEN frobenius = negi(subii(curve->order, addis(q, 1))); + GEN frobenius = subii(addis(q, 1), curve->order); GEN conductor; GEN cm_disc; if (typ(curve->field) == t_INT) { - GEN full_disc = subii(mulis(q, 4), sqri(frobenius)); - cm_disc = core(full_disc); - conductor = sqrti(diviiexact(full_disc, cm_disc)); + GEN d_f = coredisc2(subii(sqri(frobenius), mulis(q, 4))); + cm_disc = gcopy(gel(d_f, 1)); + conductor = gcopy(gel(d_f, 2)); gerepileall(ltop, 6, &j, &disc, &embedding_degree, &frobenius, &cm_disc, &conductor); } else if (typ(curve->field) == t_FFELT) { cm_disc = NULL; -- cgit v1.2.3-70-g09d2