-
-
Notifications
You must be signed in to change notification settings - Fork 526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Class misconception with isogenies #16115
Comments
first draft |
Dependencies: #12880 |
comment:1
Attachment: ell_curve_isogeny.py.gz There are indeed various aspects in which isogenies could be improved. As for your first point, this should be addressed in #12880. (Note that the mathematically correct solution is to make the domain and codomain be the elliptic curves themselves, not the groups of points.) This can only really be fixed after #11474. Tying the various classes closer together as in your second point is certainly worth looking at. One could even consider making It is not recommended to simply upload the Python files you changed; in that way it is impossible to see what your changes are or on what version of Sage you based them. Use Git instead; see http://sagemath.org/doc/developer/ for an introduction to the Sage development process. Finally, please be aware that "misconception" is not the most charitable way to describe the work that has been done so far. A lot of code in Sage dates from years back when the "right" infrastructure (more specific base classes, category code etc.) was simply not available. There is certainly a lot of room to improve the design in many parts of Sage, but time and resources are limited, and changes need to be made in small steps to avoid breaking existing code. |
comment:2
See also #7368 for another to-do list for isogenies. |
Changed keywords from none to days57 |
Changed author from sbesnier to Sébastien Besnier |
comment:6
About IIRC this was the corresponding discussion: |
comment:8
I implemented Weierstrass morphisms in 2007: it was the first piece of Sage development I did. Until that time it was impossible to change models or move points from one model to another! And the implementation of isogenies was done much later than that. I do agree that the EllipticCurveIsogeny class is not designed in the way I would want it to be, but it works well enough and has been used an enormous amount over QQ and over number fields, even if it has not been possible (for example) to compose isogenies. I also agree with Peter that the domain and codomain must be elliptic curves, and not sets or groups of points. I am currently working on extending the class IsogenyClass_EC to work over number fields (see #16743). I don't expect that the work done on this and related tickets will affect that a lot. |
comment:10
added |
comment:13
I agree. |
Reviewer: Matthias Koeppe |
Changed author from Sébastien Besnier to none |
The isogenies implementation suffers several conception issues; the main issues I can quickly describe are:
_mul_
method of EllipticCurveIsogeny is not handled by the general Morphism class:--> I've edited ell_curve_isogeny.py in order to make this work: the codomain() and domain() methods initially gaves "Elliptic Curve ...", I've updated to "Abelian group of points of Elliptic Curve ..." (and tried to make the other parts of code consistant with that).
Follwing the previous code:
I've joined a "preliminary draft" of a new "sage/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_curve_isogeny.py" wrote in a few hours.
Depends on #12880
CC: @defeo @yyyyx4
Component: elliptic curves
Keywords: days57
Reviewer: Matthias Koeppe
Issue created by migration from https://trac.sagemath.org/ticket/16115
The text was updated successfully, but these errors were encountered: