Saturation of elliptic curve points can cause an infinite loop
|Reported by:||cremona||Owned by:||cremona|
|Cc:||rlm, was||Merged in:||sage-4.6.2.alpha2|
|Authors:||John Cremona||Reviewers:||Robert Miller|
|Report Upstream:||N/A||Work issues:|
Possibly related to #9247.
The method saturation() for sets of points on elliptic curves over Q calls eclib in a loop which is optimistically headed "while True:". Unfortunately this really can cause infinite looping. Here's an example (the curve has conductor 130017):
E = EllipticCurve([1, 0, 1, -977842, -372252745]) P = E([-192128125858676194585718821667542660822323528626273/336995568430319276695106602174283479617040716649, 70208213492933395764907328787228427430477177498927549075405076353624188436/195630373799784831667835900062564586429333568841391304129067339731164107, 1]) P.height() E.saturation([P]) ## OK, saturated E.saturation([2*P]) ## loops!
The problem is that there are various different ways in which the saturation inside the loop (line 2097 of ell_rational_field.py) can fail, and one -- probably the one here -- is due to a lack of precision. I will look into how to increase the precision used in eclib from Sage. (In this example, after mwrank_set_precision(200) it works fine, but not with 150.)
Change History (12)
comment:2 Changed 6 years ago by
- Milestone set to sage-4.6.2
- Reviewers set to Robert Miller
- Status changed from needs_review to positive_review