#7576: improvements to the prove_BSD function
-------------------------------+--------------------------------------------
   Reporter:  rlm              |       Owner:  cremona      
       Type:  enhancement      |      Status:  needs_work   
   Priority:  major            |   Milestone:  sage-4.3.1   
  Component:  elliptic curves  |    Keywords:               
Work_issues:                   |      Author:  Robert Miller
   Upstream:  N/A              |    Reviewer:               
     Merged:                   |  
-------------------------------+--------------------------------------------
Changes (by was):

  * status:  needs_review => needs_work


Comment:

 REFEREE REPORT:

 1. For proper Sphinx the indention has to be consistent. Your docstring is
 wrong:
 {{{
         INPUT:

             - ``verbosity`` - int, how much information about the proof to
 print.

                 - 0 - print nothing
                 - 1 - print sketch of proof
                 - 2 - print information about remaining primes

             - ``simon`` - bool (default False), whether to use two_descent
 or
               simon_two_descent at p=2.

             -  ``proof`` - bool or None (default: None, see
               proof.elliptic_curve or sage.structure.proof). If False,
 this
               function just immediately returns the empty list.

             - ``secs_hi`` - how many seconds to try to compute the Heegner
 index
               before switching over to trying to compute the Heegner index
 bound.
               (Rank 0 only!)
 }}}

 E.g., the proof one should be:
 {{{
             - ``proof`` - bool or None (default: None, see
               proof.elliptic_curve or sage.structure.proof). If False,
 this
               function just immediately returns the empty list.
 }}}

 I find it useful to try making a simple function with the given docstring
 in the notebook, then evaluate and introspect that, to see what Sphinx
 does.


 2. {{{``secs_hi`` - how many seconds to try to compute the Heegner
 index}}} -- change "how many seconds" to "maximum number of seconds",
 which is more precise.

 3. Add something to the verbose output when secs_hi interrupts a
 calculation.

 4. Once you have 3, add an example that illustrates it.

 5. Unfortunately, evidently hitting control-c doesn't work for some
 reason:
 {{{
 for E in cremona_optimal_curves([1..1000]):
      if E.rank() == 0:
          print E.label(), E.prove_BSD(secs_hi=0.1, verbosity=1)

 ....
 <try hitting control-c -- ignored. :-(>
 ....
 }}}
 This might be related to how you setup the alarm.  It's hard to tell.

 6. The multiple uses of D here seems potentially confusing:
 {{{
         5993                    for D in
 self.heegner_discriminants_list(100):
         5994                        heegner_primes, D =
 self.heegner_index_bound(D, verbose=False)
         5995                        if isinstance(heegner_primes, list):
         5996                            break
 }}}

 Also, the above hard-coded 100 makes me a little nervous.  What happens if
 we go through the whole list of 100 and don't find one that works?
 (Highly unlikely in practice, of course.) Then we think the last one we
 looked at does work.  Not good.

 7. What is the point of this line?:
 {{{
 6157                    print '    ord_p(#Sha) >= 0'
 }}}
 It's trivial that {{{ord_p(#Sha)>=0}}}, since {{{#Sha}}} is an integer,
 and {{{ord_p(n)>=0}}} for any integer n.

 8. In the docstring you should give precise references for the results
 you're using later.  E.g., instead of just "by Jetchev", you could explain
 that this means "by Theorem xyz" in his Compositio paper xxx.  "by Mazur"
 you mean theorem blah of blah, etc.   This could just go in the docstring,
 not the actual output (your choice).

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7576#comment:3>
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