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
Streamline elliptic curve division (torsion) polynomials #3883
Comments
Attachment: sage-trac3883.patch.gz |
comment:1
Patch sage-trac3883.patch is based on 3.1.rc0 |
comment:2
Chris W. has reviewed this in an email to John C., which I will copy here when he tells me I can, and there will be a new patch appearing after that. |
Apply after the previous patch |
comment:3
Attachment: sage-trac3883b.patch.gz Review by Chris Wuthrich: So, I had a closer look at your division polynomials. I don't get any errors with 3.1.1. (without the changes in 3927).
|
comment:4
Replying to @JohnCremona:
Thanks!
The only appearance of your name I found has it spelled "Wuthrich" (and not by me). Is it an umlaut you want? I have made some changes based on your comments, and there is a second patch.
I do agree, so I have refactored the code accordingly. The only function the user needs is
These functions were implemented by David Harvey along with
I'm not sure where you are referring to here.
Fair enough, but that belongs in another ticket.
Ditto. |
small changes to be applied after the previous two patches. |
comment:5
Attachment: sage_trac_3883c.patch.gz I have added a small patch, which changes all multiply_x_numerator to _multiply_x_numerator. Personally I don't see why it should harm that there is a _function in ell_points.py. I don't believe this function would be used by users directly, so it makes sense to me to hide. Also I changed the documentation referring to my thesis. As it is only a matter of taste, it is up to John to decide, I think, if he would like the third patch to be applied or not. Other than that all is fine. Test pass, the functions are very well documented and very well coded. POSITIVE REVIEW (both with only the first two or will all three patches). |
comment:6
No there was a Christopher before. :)
I agree with you and the new version.
The function _multiply_point on line 303 in padics.py is just another version of an implementation of the division polynomials. In fact this builds the polynomials that you called multiply_x_numerator and denominator, but as homogeneous polynomials. To clear up denominators so that integers can be plugged in to get integers. The p-adic height computation needs the computation of the square root of numerator of But I think it is better to leave that as it is by now. Chris. |
comment:7
I am quite happy with the extra changes Chris has made. (I had already corrected his first name, but he gives a better reference anyway). Thanks for the review! |
comment:8
Merged in Sage 3.1.2.alpha2 |
#3109 introduced a new bivariate division polynomial for elliptic curves, only implemented for curves in short Weierstrass form, and also very useful functions for dividing points (for arbitrary curves).
In reviewing #3377 I wanted to use the division_points() function for curvesw defined over number fields and ran into problems. This led me to reconsider the existing division polynomial code, and this is the result. I removed the commenting-out # signs from a perfectly good set of three functions pseudo_division_polynomial(), multiple_x_numerator() and multiple_x_denominator(). I rewrote full_division_polynomial() to use these, making it very much simpler and apply to all curves, not just those in short W. form. I also rewrote division_points(), simplifying it.
I'll shortly post a patch for all this. In the patch you will find some rather long-winded comments which explain very precisely what the relation is between these functions. If approved, I'll make use of this and get back to working on #3377.
Component: number theory
Issue created by migration from https://trac.sagemath.org/ticket/3883
The text was updated successfully, but these errors were encountered: