Opened 12 years ago

Closed 12 years ago

#10840 closed defect (fixed)

bug in saturation for elliptic curves over Q

Reported by: John Cremona Owned by: John Cremona
Priority: major Milestone: sage-4.7
Component: elliptic curves Keywords: saturation eclib
Cc: William Stein Merged in: sage-4.7.alpha5
Authors: John Cremona Reviewers: Gagan Sekhon
Report Upstream: Workaround found; Bug reported upstream. Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by John Cremona)

Randall Rathbun reports that this crashed badly:

E = EllipticCurve([0,0,0,-13711473216,0])
P = E([-19992,16313472])
Q = E([-24108,-17791704])
R = E([-97104,-20391840])
S = E([-113288,-9969344])
E.saturation([P,Q,R,S])
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
---------------------------------------------------------------------------
RuntimeError    

I have diagnosed this as coming from a "shortcoming" in eclib's saturation function when dealing with a non-minimal model. (The curve in the example is non-minimal at 2.)

Of course the best solution is for me to patch eclib (see #10903); but in the meantime the simplest solution is to patch Sage to make sure the eclib's satuation is not called with non-minimal models.

A patch is forthcoming!

Attachments (1)

trac_10840-saturation.patch (4.3 KB) - added by John Cremona 12 years ago.
applies to 4.6.2.alpha3

Download all attachments as: .zip

Change History (5)

Changed 12 years ago by John Cremona

Attachment: trac_10840-saturation.patch added

applies to 4.6.2.alpha3

comment:1 Changed 12 years ago by John Cremona

Status: newneeds_review

comment:2 Changed 12 years ago by John Cremona

Description: modified (diff)

comment:3 Changed 12 years ago by Gagan Sekhon

Reviewers: Gagan Sekhon
Status: needs_reviewpositive_review

All tests passed, Documentation looks good and code also works.

comment:4 Changed 12 years ago by Jeroen Demeyer

Merged in: sage-4.7.alpha5
Resolution: fixed
Status: positive_reviewclosed
Note: See TracTickets for help on using tickets.