Skip to content

Commit 41c7b83

Browse files
author
Release Manager
committed
gh-36909: fix precision issue for 𝑗=0 and β„“=3 in compute_isogeny_stark() For the specific case of curves with $j=0$ and isogeny degree $\ell=3$, the `compute_isogeny_stark()` function sometimes fails to find an isogeny even though it exists. In this simple patch we increase the precision of the power-series arithmetic in `compute_isogeny_stark()` by one digit, which makes the computation succeed for this special case too. Fixes #21883. URL: #36909 Reported by: Lorenz Panny Reviewer(s):
2 parents da8e1ab + 2a895a3 commit 41c7b83

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

β€Žsrc/sage/schemes/elliptic_curves/ell_curve_isogeny.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3463,6 +3463,15 @@ def compute_isogeny_stark(E1, E2, ell):
34633463
sage: E2 = phi.codomain()
34643464
sage: compute_isogeny_stark(E, E2, 2)
34653465
x
3466+
3467+
TESTS:
3468+
3469+
Check for :issue:`21883`::
3470+
3471+
sage: E1 = EllipticCurve([0,1])
3472+
sage: E2 = EllipticCurve([0,-27])
3473+
sage: E1.isogeny(None, E2, degree=3)
3474+
Isogeny of degree 3 from Elliptic Curve defined by y^2 = x^3 + 1 over Rational Field to Elliptic Curve defined by y^2 = x^3 - 27 over Rational Field
34663475
"""
34673476
K = E1.base_field()
34683477
R, x = PolynomialRing(K, 'x').objgen()
@@ -3476,8 +3485,8 @@ def compute_isogeny_stark(E1, E2, ell):
34763485
for i in range(2*ell + 1):
34773486
pe1 += wp1[2*i] * Z**i
34783487
pe2 += wp2[2*i] * Z**i
3479-
pe1 = pe1.add_bigoh(2*ell+2)
3480-
pe2 = pe2.add_bigoh(2*ell+2)
3488+
pe1 = pe1.add_bigoh(2*ell+3)
3489+
pe2 = pe2.add_bigoh(2*ell+3)
34813490

34823491
n = 1
34833492
q = [R.one(), R.zero()]

0 commit comments

Comments
Β (0)