Skip to content

Commit 5d51422

Browse files
author
Release Manager
committed
Trac #34871: rename "Starks" algorithm for isogenies to Stark
...since that's the author's name. URL: https://trac.sagemath.org/34871 Reported by: lorenz Ticket author(s): Lorenz Panny Reviewer(s): John Cremona
2 parents 0993d40 + 4d21760 commit 5d51422

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
@@ -3145,7 +3145,7 @@ def _composition_impl(left, right):
31453145
return NotImplemented
31463146

31473147

3148-
def compute_isogeny_starks(E1, E2, ell):
3148+
def compute_isogeny_stark(E1, E2, ell):
31493149
r"""
31503150
Return the kernel polynomial of an isogeny of degree ``ell``
31513151
from ``E1`` to ``E2``.
@@ -3170,7 +3170,7 @@ def compute_isogeny_starks(E1, E2, ell):
31703170
31713171
ALGORITHM:
31723172
3173-
This function uses Starks' algorithm as presented in Section 6.2
3173+
This function uses Stark's algorithm as presented in Section 6.2
31743174
of [BMSS2006]_.
31753175
31763176
.. NOTE::
@@ -3181,22 +3181,22 @@ def compute_isogeny_starks(E1, E2, ell):
31813181
31823182
EXAMPLES::
31833183
3184-
sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_isogeny_starks, compute_sequence_of_maps
3184+
sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_isogeny_stark, compute_sequence_of_maps
31853185
31863186
sage: E = EllipticCurve(GF(97), [1,0,1,1,0])
31873187
sage: R.<x> = GF(97)[]; f = x^5 + 27*x^4 + 61*x^3 + 58*x^2 + 28*x + 21
31883188
sage: phi = EllipticCurveIsogeny(E, f)
31893189
sage: E2 = phi.codomain()
31903190
sage: (isom1, isom2, E1pr, E2pr, ker_poly) = compute_sequence_of_maps(E, E2, 11)
3191-
sage: compute_isogeny_starks(E1pr, E2pr, 11)
3191+
sage: compute_isogeny_stark(E1pr, E2pr, 11)
31923192
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
31933193
31943194
sage: E = EllipticCurve(GF(37), [0,0,0,1,8])
31953195
sage: R.<x> = GF(37)[]
31963196
sage: f = (x + 14) * (x + 30)
31973197
sage: phi = EllipticCurveIsogeny(E, f)
31983198
sage: E2 = phi.codomain()
3199-
sage: compute_isogeny_starks(E, E2, 5)
3199+
sage: compute_isogeny_stark(E, E2, 5)
32003200
x^4 + 14*x^3 + x^2 + 34*x + 21
32013201
sage: f**2
32023202
x^4 + 14*x^3 + x^2 + 34*x + 21
@@ -3206,7 +3206,7 @@ def compute_isogeny_starks(E1, E2, ell):
32063206
sage: f = x
32073207
sage: phi = EllipticCurveIsogeny(E, f)
32083208
sage: E2 = phi.codomain()
3209-
sage: compute_isogeny_starks(E, E2, 2)
3209+
sage: compute_isogeny_stark(E, E2, 2)
32103210
x
32113211
"""
32123212
K = E1.base_field()
@@ -3252,6 +3252,9 @@ def compute_isogeny_starks(E1, E2, ell):
32523252
qn /= qn.leading_coefficient()
32533253
return qn
32543254

3255+
from sage.misc.superseded import deprecated_function_alias
3256+
compute_isogeny_starks = deprecated_function_alias(34871, compute_isogeny_stark)
3257+
32553258
def split_kernel_polynomial(poly):
32563259
r"""
32573260
Obsolete internal helper function formerly used by
@@ -3292,7 +3295,7 @@ def split_kernel_polynomial(poly):
32923295
from sage.misc.misc_c import prod
32933296
return prod([p for p,e in poly.squarefree_decomposition()])
32943297

3295-
def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="starks"):
3298+
def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="stark"):
32963299
r"""
32973300
Return the kernel polynomial of an isogeny of degree ``ell``
32983301
from ``E1`` to ``E2``.
@@ -3305,7 +3308,7 @@ def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="starks"):
33053308
33063309
- ``ell`` -- the degree of an isogeny from ``E1`` to ``E2``
33073310
3308-
- ``algorithm`` -- currently only ``"starks"`` (default) is implemented
3311+
- ``algorithm`` -- currently only ``"stark"`` (default) is implemented
33093312
33103313
OUTPUT:
33113314
@@ -3347,8 +3350,8 @@ def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="starks"):
33473350
sage: f = (x + 10) * (x + 12) * (x + 16)
33483351
sage: phi = EllipticCurveIsogeny(E, f)
33493352
sage: E2 = phi.codomain()
3350-
sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_isogeny_starks
3351-
sage: ker_poly = compute_isogeny_starks(E, E2, 7); ker_poly
3353+
sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_isogeny_stark
3354+
sage: ker_poly = compute_isogeny_stark(E, E2, 7); ker_poly
33523355
x^6 + 2*x^5 + 20*x^4 + 11*x^3 + 36*x^2 + 35*x + 16
33533356
sage: ker_poly.factor()
33543357
(x + 10)^2 * (x + 12)^2 * (x + 16)^2
@@ -3357,9 +3360,13 @@ def compute_isogeny_kernel_polynomial(E1, E2, ell, algorithm="starks"):
33573360
sage: poly.factor()
33583361
(x + 10) * (x + 12) * (x + 16)
33593362
"""
3360-
if algorithm != "starks":
3361-
raise NotImplementedError
3362-
return compute_isogeny_starks(E1, E2, ell).radical()
3363+
if algorithm == 'starks':
3364+
from sage.misc.superseded import deprecation
3365+
deprecation(34871, 'The "starks" algorithm is being renamed to "stark".')
3366+
algorithm = 'stark'
3367+
if algorithm != "stark":
3368+
raise NotImplementedError(f'unknown algorithm {algorithm}')
3369+
return compute_isogeny_stark(E1, E2, ell).radical()
33633370

33643371
def compute_intermediate_curves(E1, E2):
33653372
r"""

0 commit comments

Comments
 (0)