diff options
| author | J08nY | 2017-12-20 00:05:27 +0100 |
|---|---|---|
| committer | J08nY | 2017-12-20 00:05:27 +0100 |
| commit | baaa38bdee383968b921c558006619cbc6bedad6 (patch) | |
| tree | 728dd4a735308d431aa3519082500fa9bdedb4f1 /src/gen | |
| parent | 9e1ddad3937bc7b5ae6ead5beb4dc0cf666b037e (diff) | |
| download | ecgen-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.c | 11 |
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) { |
