Opened 17 months ago
Closed 3 months ago
#13705 closed defect (fixed)
segfault in analytic_rank(algorithm='rubinstein')
Reported by: | dimpase | Owned by: | cremona |
---|---|---|---|
Priority: | major | Milestone: | sage-duplicate/invalid/wontfix |
Component: | elliptic curves | Keywords: | lcalc |
Cc: | cremona | Merged in: | |
Authors: | Reviewers: | Jeroen Demeyer | |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
apparently, PARI ungracefully runs out of memory on the following:
sage: e= elliptic_curves.rank(8)[0] sage: e.analytic_rank(algorithm='rubinstein') *** Warning: not enough memory, new stack 18446744073268923520. ...[lots of similar lines removed] *** Warning: not enough memory, new stack 17179869183. *** Warning: *** bug in PARI/GP (Segmentation Fault), please report *** bug in PARI/GP (Segmentation Fault), please report ...[lots of similar lines removed]
certainly, this is a difficult elliptic curve to deal with, but still, segfault is a segfault. See the related sage-devel discussion.
Change History (8)
comment:1 Changed 17 months ago by dimpase
- Cc cremona added
comment:2 Changed 17 months ago by cremona
comment:3 Changed 8 months ago by jdemeyer
- Milestone changed from sage-5.11 to sage-5.12
comment:4 Changed 3 months ago by jdemeyer
- Milestone changed from sage-6.1 to sage-duplicate/invalid/wontfix
- Reviewers set to Jeroen Demeyer
- Status changed from new to needs_review
I now get
*** Warning: not enough memory, new stack 3854339200. terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) <ipython-input-1-d7407b95d583> in <module>() ----> 1 elliptic_curves.rank(Integer(8))[Integer(0)].analytic_rank(algorithm='rubinstein') /usr/local/src/sage-2217/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_rational_field.pyc in analytic_rank(self, algorithm, leading_coefficient) 1353 return lcalc.analytic_rank(L=self) 1354 except TypeError,msg: -> 1355 raise RuntimeError, "unable to compute analytic rank using rubinstein algorithm ('%s')"%msg 1356 elif algorithm == 'sympow': 1357 if leading_coefficient: RuntimeError: unable to compute analytic rank using rubinstein algorithm ('unable to convert x (=) to an integer')
which is about the best one can hope...
I think this should be closed as "wontfix".
comment:5 Changed 3 months ago by jdemeyer
- Status changed from needs_review to positive_review
comment:6 Changed 3 months ago by jdemeyer
Note also that the ticket reports a segmentation fault in lcalc, not Sage itself.
comment:7 Changed 3 months ago by cremona
I ran the code on 6.0 and it did not crash.
sage: elliptic_curves.rank(Integer(8))[Integer(0)].analytic_rank(algorithm='rubinstein') *** Warning: not enough memory, new stack 18446744073268923520. *** Warning: not enough memory, new stack 9223372036634461760. (similar lines) *** Warning: not enough memory, new stack 274877906880. *** Warning: new stack size = 137438953408 (131072.000 Mbytes). 0
which is not the correct analytic rank, but there is no segfault.
comment:8 Changed 3 months ago by vbraun
- Resolution set to fixed
- Status changed from positive_review to closed
Note: See
TracTickets for help on using
tickets.
As I said on sage-devel, this computation will require a very large number of L-series coefficients, so this does not surprise me. I think that the only sensible way out is for the analytic rank function to quit gracefully for curve like this.