|
1 | 1 | diff --git a/src/basemath/ellsea.c b/src/basemath/ellsea.c
|
2 |
| -index a6871fa6a7..f1e725ea55 100644 |
| 2 | +index a6871fa6a7..05f148eadd 100644 |
3 | 3 | --- a/src/basemath/ellsea.c
|
4 | 4 | +++ b/src/basemath/ellsea.c
|
5 |
| -@@ -1303,6 +1303,7 @@ find_trace_Elkies_power(GEN a4, GEN a6, ulong ell, long *pt_k, struct meqn *MEQN |
6 |
| - lambda = tr ? find_eigen_value_oneroot(a4, a6, ell, tr, kpoly, T, p): |
7 |
| - find_eigen_value_power(a4, a6, ell, 1, 1, kpoly, T, p); |
8 |
| - if (DEBUGLEVEL>1) err_printf(" [%ld ms]", timer_delay(ti)); |
9 |
| -+ if (lambda==ell) return NULL; |
10 |
| - if (smallfact && smallfact%(long)ell!=0) |
11 |
| - { |
12 |
| - ulong pell = pellk%ell; |
13 |
| -@@ -1317,6 +1318,7 @@ find_trace_Elkies_power(GEN a4, GEN a6, ulong ell, long *pt_k, struct meqn *MEQN |
14 |
| - if (!tmp) { k = cnt-1; break; } |
15 |
| - if (DEBUGLEVEL) err_printf(", %Ps", powuu(ell, cnt)); |
16 |
| - lambda = find_eigen_value_power(a4, a6, ell, cnt, lambda, gel(tmp,3), T, p); |
17 |
| -+ if (lambda == upowuu(ell, cnt)) { k = cnt-1; break; } |
18 |
| - Eba4 = Eca4; |
19 |
| - Eba6 = Eca6; |
20 |
| - Eca4 = gel(tmp,1); |
| 5 | +@@ -852,7 +852,8 @@ find_isogenous_from_Atkin(GEN a4, GEN a6, ulong ell, struct meqn *MEQN, GEN g, G |
| 6 | + GEN a4t, a6t, h; |
| 7 | + a4a6t(&a4t, &a6t, ell, E4t, E6t, T, p); |
| 8 | + h = find_kernel(a4, a6, ell, a4t, a6t, pp1, T, p, pp, e); |
| 9 | +- if (h) return gerepilecopy(ltop, mkvec3(a4t, a6t, h)); |
| 10 | ++ if (h && signe(Fq_elldivpolmod(a4, a6, ell, h, T, pp))==0) |
| 11 | ++ return gerepilecopy(ltop, mkvec3(a4t, a6t, h)); |
| 12 | + } |
| 13 | + } |
| 14 | + pari_err_BUG("find_isogenous_from_Atkin, kernel not found"); |
0 commit comments