From 2e84eda47e2c129839aef151c5404887ba0e8456 Mon Sep 17 00:00:00 2001 From: Sebastian Spindler Date: Thu, 15 Feb 2024 13:32:13 +0100 Subject: [PATCH 1/2] Fix doctest for `multiplication_by_m` The current doctest can create a singular curve, for example with `random-seed=129979402993014347526756638208394445987`. --- src/sage/schemes/elliptic_curves/ell_generic.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sage/schemes/elliptic_curves/ell_generic.py b/src/sage/schemes/elliptic_curves/ell_generic.py index 07271b9fd39..8de58f37dd2 100644 --- a/src/sage/schemes/elliptic_curves/ell_generic.py +++ b/src/sage/schemes/elliptic_curves/ell_generic.py @@ -2448,8 +2448,10 @@ def multiplication_by_m(self, m, x_only=False): :: sage: p = 7 - sage: K. = GF(p^2) - sage: E = EllipticCurve(K, [K.random_element(), K.random_element()]) + sage: K. = GF(p^2) + sage: a, b = K.random_element(), K.random_element() + sage: while 4*a^3 + 27*b^2 == 0: a, b = K.random_element(), K.random_element() + sage: E = EllipticCurve(K, a, b) sage: E.multiplication_by_m(p * 2)[0] == E.multiplication_by_m(p * 2, x_only=True) True """ From 34276872b41a5a41e7076f8262ad9bc0684348de Mon Sep 17 00:00:00 2001 From: Sebastian Spindler Date: Thu, 15 Feb 2024 13:55:50 +0100 Subject: [PATCH 2/2] More elegant via j-invariant --- src/sage/schemes/elliptic_curves/ell_generic.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/sage/schemes/elliptic_curves/ell_generic.py b/src/sage/schemes/elliptic_curves/ell_generic.py index 8de58f37dd2..7c0d7d831eb 100644 --- a/src/sage/schemes/elliptic_curves/ell_generic.py +++ b/src/sage/schemes/elliptic_curves/ell_generic.py @@ -2448,10 +2448,8 @@ def multiplication_by_m(self, m, x_only=False): :: sage: p = 7 - sage: K. = GF(p^2) - sage: a, b = K.random_element(), K.random_element() - sage: while 4*a^3 + 27*b^2 == 0: a, b = K.random_element(), K.random_element() - sage: E = EllipticCurve(K, a, b) + sage: K. = GF(p^2) + sage: E = EllipticCurve(j=K.random_element()) sage: E.multiplication_by_m(p * 2)[0] == E.multiplication_by_m(p * 2, x_only=True) True """