From 0dcbc7e11409d13df4d2c3d452ef9031dfcee235 Mon Sep 17 00:00:00 2001 From: user202729 <25191436+user202729@users.noreply.github.com> Date: Sat, 20 Dec 2025 00:51:57 +0700 Subject: [PATCH] Implement analytic_rank() for EllipticCurve_number_field --- .../schemes/elliptic_curves/ell_number_field.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/sage/schemes/elliptic_curves/ell_number_field.py b/src/sage/schemes/elliptic_curves/ell_number_field.py index 37af9dcba1f..c4489f62f52 100644 --- a/src/sage/schemes/elliptic_curves/ell_number_field.py +++ b/src/sage/schemes/elliptic_curves/ell_number_field.py @@ -2281,6 +2281,21 @@ def rank(self, **kwds): else: raise ValueError('There is insufficient data to determine the rank - 2-descent gave lower bound %s and upper bound %s' % (lower, upper)) + def analytic_rank(self): + r""" + Return an integer that is *probably* the analytic rank of this + elliptic curve. + + EXAMPLES:: + + sage: K. = QuadraticField(229) + sage: EllipticCurve("389a1").change_ring(K).analytic_rank() # long time + 3 + sage: len(EllipticCurve("389a1").change_ring(K).gens()) # long time + 3 + """ + return ZZ(self.integral_model().pari_curve().lfuncreate().lfunorderzero()) + def gens(self, **kwds): r""" Return some points of infinite order on this elliptic curve.