Opened 10 years ago

Closed 10 years ago

#10840 closed defect (fixed)

bug in saturation for elliptic curves over Q

Reported by: cremona Owned by: cremona
Priority: major Milestone: sage-4.7
Component: elliptic curves Keywords: saturation eclib
Cc: was 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 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 cremona 10 years ago.
applies to 4.6.2.alpha3

Download all attachments as: .zip

Change History (5)

Changed 10 years ago by cremona

applies to 4.6.2.alpha3

comment:1 Changed 10 years ago by cremona

  • Status changed from new to needs_review

comment:2 Changed 10 years ago by cremona

  • Description modified (diff)

comment:3 Changed 10 years ago by gagansekhon

  • Reviewers set to Gagan Sekhon
  • Status changed from needs_review to positive_review

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

comment:4 Changed 10 years ago by jdemeyer

  • Merged in set to sage-4.7.alpha5
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.