Skip to content

Commit 4d21760

Browse files
committed
rename "Starks" algorithm to Stark
1 parent bb7ee85 commit 4d21760

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

src/sage/schemes/elliptic_curves/ell_curve_isogeny.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3075,7 +3075,7 @@ def _composition_impl(left, right):
30753075
return NotImplemented
30763076

30773077

3078-
def compute_isogeny_starks(E1, E2, ell):
3078+
def compute_isogeny_stark(E1, E2, ell):
30793079
r"""
30803080
Return the kernel polynomial of an isogeny of degree ``ell``
30813081
from ``E1`` to ``E2``.
@@ -3100,7 +3100,7 @@ def compute_isogeny_starks(E1, E2, ell):
31003100
31013101
ALGORITHM:
31023102
3103-
This function uses Starks' algorithm as presented in Section 6.2
3103+
This function uses Stark's algorithm as presented in Section 6.2
31043104
of [BMSS2006]_.
31053105
31063106
.. NOTE::
@@ -3111,22 +3111,22 @@ def compute_isogeny_starks(E1, E2, ell):
31113111
31123112
EXAMPLES::
31133113
3114-
sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_isogeny_starks, compute_sequence_of_maps
3114+
sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_isogeny_stark, compute_sequence_of_maps
31153115
31163116
sage: E = EllipticCurve(GF(97), [1,0,1,1,0])
31173117
sage: R.<x> = GF(97)[]; f = x^5 + 27*x^4 + 61*x^3 + 58*x^2 + 28*x + 21
31183118
sage: phi = EllipticCurveIsogeny(E, f)
31193119
sage: E2 = phi.codomain()
31203120
sage: (isom1, isom2, E1pr, E2pr, ker_poly) = compute_sequence_of_maps(E, E2, 11)
3121-
sage: compute_isogeny_starks(E1pr, E2pr, 11)
3121+
sage: compute_isogeny_stark(E1pr, E2pr, 11)
31223122
x^10 + 37*x^9 + 53*x^8 + 66*x^7 + 66*x^6 + 17*x^5 + 57*x^4 + 6*x^3 + 89*x^2 + 53*x + 8
31233123
31243124
sage: E = EllipticCurve(GF(37), [0,0,0,1,8])
31253125
sage: R.<x> = GF(37)[]
31263126
sage: f = (x + 14) * (x + 30)
31273127
sage: phi = EllipticCurveIsogeny(E, f)
31283128
sage: E2 = phi.codomain()
3129-
sage: compute_isogeny_starks(E, E2, 5)
3129+
sage: compute_isogeny_stark(E, E2, 5)
31303130
x^4 + 14*x^3 + x^2 + 34*x + 21
31313131
sage: f**2
31323132
x^4 + 14*x^3 + x^2 + 34*x + 21
@@ -3136,7 +3136,7 @@ def compute_isogeny_starks(E1, E2, ell):
31363136
sage: f = x
31373137
sage: phi = EllipticCurveIsogeny(E, f)
31383138
sage: E2 = phi.codomain()
3139-
sage: compute_isogeny_starks(E, E2, 2)
3139+
sage: compute_isogeny_stark(E, E2, 2)
31403140
x
31413141
"""
31423142
K = E1.base_field()
@@ -3182,6 +3182,9 @@ def compute_isogeny_starks(E1, E2, ell):
31823182
qn /= qn.leading_coefficient()
31833183
return qn
31843184

3185+
from sage.misc.superseded import deprecated_function_alias
3186+
compute_isogeny_starks = deprecated_function_alias(34871, compute_isogeny_stark)
3187+
31853188
def split_kernel_polynomial(poly):
31863189
r"""
31873190
Obsolete internal helper function formerly used by
@@ -3222,7 +3225,7 @@ def split_kernel_polynomial(poly):
32223225
from sage.misc.misc_c import prod
32233226
return prod([p for p,e in poly.squarefree_decomposition()])
32243227

3225-
def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="starks"):
3228+
def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="stark"):
32263229
r"""
32273230
Return the kernel polynomial of an isogeny of degree ``ell``
32283231
from ``E1`` to ``E2``.
@@ -3235,7 +3238,7 @@ def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="starks"):
32353238
32363239
- ``ell`` -- the degree of an isogeny from ``E1`` to ``E2``
32373240
3238-
- ``algorithm`` -- currently only ``"starks"`` (default) is implemented
3241+
- ``algorithm`` -- currently only ``"stark"`` (default) is implemented
32393242
32403243
OUTPUT:
32413244
@@ -3277,8 +3280,8 @@ def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="starks"):
32773280
sage: f = (x + 10) * (x + 12) * (x + 16)
32783281
sage: phi = EllipticCurveIsogeny(E, f)
32793282
sage: E2 = phi.codomain()
3280-
sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_isogeny_starks
3281-
sage: ker_poly = compute_isogeny_starks(E, E2, 7); ker_poly
3283+
sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_isogeny_stark
3284+
sage: ker_poly = compute_isogeny_stark(E, E2, 7); ker_poly
32823285
x^6 + 2*x^5 + 20*x^4 + 11*x^3 + 36*x^2 + 35*x + 16
32833286
sage: ker_poly.factor()
32843287
(x + 10)^2 * (x + 12)^2 * (x + 16)^2
@@ -3287,9 +3290,13 @@ def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="starks"):
32873290
sage: poly.factor()
32883291
(x + 10) * (x + 12) * (x + 16)
32893292
"""
3290-
if algorithm != "starks":
3291-
raise NotImplementedError
3292-
return compute_isogeny_starks(E1, E2, ell).radical()
3293+
if algorithm == 'starks':
3294+
from sage.misc.superseded import deprecation
3295+
deprecation(34871, 'The "starks" algorithm is being renamed to "stark".')
3296+
algorithm = 'stark'
3297+
if algorithm != "stark":
3298+
raise NotImplementedError(f'unknown algorithm {algorithm}')
3299+
return compute_isogeny_stark(E1, E2, ell).radical()
32933300

32943301
def compute_intermediate_curves(E1, E2):
32953302
r"""

0 commit comments

Comments
 (0)