aboutsummaryrefslogtreecommitdiff
path: root/src/gen
diff options
context:
space:
mode:
authorJ08nY2017-12-20 00:05:27 +0100
committerJ08nY2017-12-20 00:05:27 +0100
commitbaaa38bdee383968b921c558006619cbc6bedad6 (patch)
tree728dd4a735308d431aa3519082500fa9bdedb4f1 /src/gen
parent9e1ddad3937bc7b5ae6ead5beb4dc0cf666b037e (diff)
downloadecgen-baaa38bdee383968b921c558006619cbc6bedad6.tar.gz
ecgen-baaa38bdee383968b921c558006619cbc6bedad6.tar.zst
ecgen-baaa38bdee383968b921c558006619cbc6bedad6.zip
Fix running out of stack in embedding degree computation.
- It is a simple Fp_order computation, why the dumb algo? :D
Diffstat (limited to 'src/gen')
-rw-r--r--src/gen/gens.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/src/gen/gens.c b/src/gen/gens.c
index 04e7646..858ce93 100644
--- a/src/gen/gens.c
+++ b/src/gen/gens.c
@@ -49,16 +49,7 @@ CHECK(gens_check_anomalous) {
}
GEN gens_get_embedding(GEN prime, GEN order) {
- pari_sp ltop = avma;
- GEN degree = gen_0;
- GEN power = gen_1;
- GEN pm;
- do {
- degree = addii(degree, gen_1);
- power = mulii(power, prime);
- pm = subii(power, gen_1);
- } while (!dvdii(pm, order));
- return gerepilecopy(ltop, degree);
+ return Fp_order(prime, subis(order, 1), order);
}
CHECK(gens_check_embedding) {