From c9545c8dc8268766047afa84ebfe2a7b15b3819d Mon Sep 17 00:00:00 2001 From: Lorenz Panny Date: Wed, 1 Oct 2025 16:45:05 +0200 Subject: [PATCH] =?UTF-8?q?speed=20up=20construction=20of=20kernel=20polyn?= =?UTF-8?q?omial=20for=20V=C3=A9lu=20isogeny=20using=20product=20tree?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sage/schemes/elliptic_curves/ell_curve_isogeny.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py b/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py index 48ed0a95589..696c26976e7 100644 --- a/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py +++ b/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py @@ -2244,11 +2244,10 @@ def __init_kernel_polynomial_velu(self): else: invX = x - psi = poly_ring.one() - for xQ in self.__kernel_mod_sign.keys(): - psi *= x - invX(xQ) + from sage.misc.misc_c import prod + psi = prod([x - invX(xQ) for xQ in self.__kernel_mod_sign.keys()]) # building the list is not redundant; this is slightly faster - self.__kernel_polynomial = psi + self.__kernel_polynomial = poly_ring(psi) ################################### # Kohel's Variant of Velu's Formula