#11327: isogeny code uses deprecated(?) multi-variate gcd
-------------------------------+--------------------------------------------
Reporter: cjh | Owner: cremona
Type: defect | Status: new
Priority: major | Milestone: sage-4.7.1
Component: elliptic curves | Keywords: isogeny multivariate dual
Work_issues: | Upstream: N/A
Reviewer: | Author:
Merged: | Dependencies:
-------------------------------+--------------------------------------------
In sage.schemes.elliptic_curves.ell_curve_isogeny (of sage 4.6.2) the
routine two_torsion_part() invokes a gcd on two polynomials. When the
polynomials belong to a multivariate ring, an error occurs. Perhaps this
is because the gcd routine in
sage.rings.polynomial.multi_polynomial_element has been commented out
(because it uses Singular?!).
Converting psi (and perhaps psi2) to univariate polynomials within
two_torsion_part() before taking the gcd seems to work, but there seems to
be other code in the module which uses a multivariate ring when a
univariate ring would suffice (e.g. in __init_from_kernel_polynomial).
I discovered this error when trying to create a dual isogeny (for an
elliptic curve over Q(t)). The original isogeny was a cyclic 2-isogeny
and thus the dual should also be a cyclic 2-isogeny. Without giving more
details on how I created the curve, let me simply report the error message
which results when I call isogeny.dual():
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_5.py", line 10, in <module>
exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("cHNpID0gcGhpLmR1YWwoKQ=="),globals())+"\\n");
execfile(os.path.abspath("___code___.py"))
File "", line 1, in <module>
File
"/private/var/folders/4V/4VAOdForFpanThca5kJ5xE+++TI/-Tmp-/tmp8DXIBC/___code___.py",
line 2, in <module>
exec compile(u'psi = phi.dual()
File "", line 1, in <module>
File "/Applications/sage/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_curve_isogeny.py", line 3248, in
dual
phi_hat = EllipticCurveIsogeny(E1, None, E2, d)
File "/Applications/sage/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_curve_isogeny.py", line 914, in
__init__
self.__init_from_kernel_polynomial(kernel, degree)
File "/Applications/sage/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_curve_isogeny.py", line 2038, in
__init_from_kernel_polynomial
psi_G = two_torsion_part(E, poly_ring, psi, degree);
File "/Applications/sage/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_curve_isogeny.py", line 453, in
two_torsion_part
psi_G = poly_ring(psi.gcd(psi_2))
File "element.pyx", line 327, in
sage.structure.element.Element.__getattr__ (sage/structure/element.c:2715)
File "parent.pyx", line 277, in
sage.structure.parent.getattr_from_other_class
(sage/structure/parent.c:2841)
File "parent.pyx", line 177, in
sage.structure.parent.raise_attribute_error (sage/structure/parent.c:2663)
AttributeError: 'MPolynomial_polydict' object has no attribute 'gcd'
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11327>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.