#9247: A collection of little improvements to elliptic curves
-------------------------------+--------------------------------------------
   Reporter:  rlm              |       Owner:  cremona   
       Type:  enhancement      |      Status:  needs_work
   Priority:  major            |   Milestone:  sage-4.4.4
  Component:  elliptic curves  |    Keywords:            
     Author:  Robert Miller    |    Upstream:  N/A       
   Reviewer:  John Cremona     |      Merged:            
Work_issues:                   |  
-------------------------------+--------------------------------------------
Changes (by cremona):

 * cc: wuthrich (added)
  * reviewer:  => John Cremona
  * milestone:  => sage-4.4.4


Comment:

 Looks good and applies to 4.4.4.alpha0.  I am currently testing all
 sage/schemes/elliptic_curves.

 One point about the (good) new rank_bound parameter for the point_search
 function:  is it not rather inefficient to saturate completely after every
 point found?  In my code (in eclib's points own search function) I only
 partially saturate after each point, using a bound (i.e. max_prime) of 19.
 Then one the rank bound is reached (or at the end, if rank_bound is None)
 so a complete saturation.

 I also think we should have an option for this function to not do the
 saturation step (which also discards all points found and replaces them
 for a Z-basis for their saturation), and just returns a list of the raw
 points actually found.  If you agree, we should open a new ticket.
 (Obviously the current behaviour would be the default, for backward
 compatibility).

 Test failure in sha_tate:
 {{{
 File "/home/john/sage-4.4.4.alpha0/devel/sage-
 tests/sage/schemes/elliptic_curves/sha_tate.py", line 637:
     sage: e.sha().an_padic(7)
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-current/local/bin/ncadoctest.py", line 1231,
 in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-current/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-current/local/bin/ncadoctest.py", line 1172,
 in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_5[14]>", line 1, in <module>
         e.sha().an_padic(Integer(7))###line 637:
     sage: e.sha().an_padic(7)
       File "/home/john/sage-current/local/lib/python/site-
 packages/sage/schemes/elliptic_curves/sha_tate.py", line 464, in an_padic
         ms = self.E.modular_symbol(sign=+1, normalize='L_ratio')
       File "/home/john/sage-current/local/lib/python/site-
 packages/sage/schemes/elliptic_curves/ell_rational_field.py", line 1277,
 in modular_symbol
         M = ell_modular_symbols.ModularSymbolECLIB(self, sign,
 normalize=normalize)
       File "/home/john/sage-current/local/lib/python/site-
 packages/sage/schemes/elliptic_curves/ell_modular_symbols.py", line 474,
 in __init__
         self._modsym = ECModularSymbol(E)
       File "newforms.pyx", line 75, in
 sage.libs.cremona.newforms.ECModularSymbol.__init__
 (sage/libs/cremona/newforms.cpp:1794)
     OverflowError: long int too large to convert to int
 }}}

 and similar in padics:
 {{{

 File "/home/john/sage-4.4.4.alpha0/devel/sage-
 tests/sage/schemes/elliptic_curves/padics.py", line 91:
     sage: [ms(1/11), ms(1/3), ms(0), ms(oo)]
 Exception raised:
     Traceback (most recent call last):
       File "/home/john/sage-current/local/bin/ncadoctest.py", line 1231,
 in run_one_test
         self.run_one_example(test, example, filename, compileflags)
       File "/home/john/sage-current/local/bin/sagedoctest.py", line 38, in
 run_one_example
         OrigDocTestRunner.run_one_example(self, test, example, filename,
 compileflags)
       File "/home/john/sage-current/local/bin/ncadoctest.py", line 1172,
 in run_one_example
         compileflags, 1) in test.globs
       File "<doctest __main__.example_1[7]>", line 1, in <module>
         [ms(Integer(1)/Integer(11)), ms(Integer(1)/Integer(3)),
 ms(Integer(0)), ms(oo)]###line 91:
     sage: [ms(1/11), ms(1/3), ms(0), ms(oo)]
       File "/home/john/sage-current/local/lib/python/site-
 packages/sage/schemes/elliptic_curves/ell_modular_symbols.py", line 523,
 in __call__
         return (self._atzero - self._modsym(r))*self._scaling
       File "newforms.pyx", line 130, in
 sage.libs.cremona.newforms.ECModularSymbol.__call__
 (sage/libs/cremona/newforms.cpp:2024)
       File "rational.pyx", line 367, in
 sage.rings.rational.Rational.__init__ (sage/rings/rational.c:5781)
       File "rational.pyx", line 521, in
 sage.rings.rational.Rational.__set_value (sage/rings/rational.c:7052)
     TypeError: Unable to coerce +Infinity (<class
 'sage.rings.infinity.PlusInfinity'>) to Rational
 }}}
 but I have no idea what in the patch could have caused this!
 And finally:
 {{{

 File "/home/john/sage-4.4.4.alpha0/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 1211:
     sage: M=E.modular_symbol()
 Expected nothing
 Got:
     Warning : Could not normalize the modular symbols, maybe all further
 results will be multiplied by -1, 2 or -2.
 **********************************************************************
 File "/home/john/sage-4.4.4.alpha0/devel/sage-
 tests/sage/schemes/elliptic_curves/ell_rational_field.py", line 1212:
     sage: M(1/7)
 Expected:
     2
 Got:
     -2
 **********************************************************************
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9247#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to