#9342: rank method for elliptic curves over number fields
-------------------------------+--------------------------------------------
   Reporter:  ljpk             |       Owner:  cremona 
       Type:  enhancement      |      Status:  new     
   Priority:  minor            |   Milestone:  sage-4.5
  Component:  elliptic curves  |    Keywords:          
     Author:  ljpk             |    Upstream:  N/A     
   Reviewer:                   |      Merged:          
Work_issues:                   |  
-------------------------------+--------------------------------------------
 Here is a method to compute the rank of elliptic curves over number fields
 using Simon 2-descent.
 {{{
 def rank(self,verbose=0, lim1=5, lim3=50, limtriv=10, maxprob=20,
 limbigprime=30):
   r"""

   This computes the rank of elliptic curves over number fields using
 Simon's algorithm for two-descent. If the upper and lower bounds given are
 the same, then we return the rank, otherwise we return the upper and lower
 bounds.

   INPUT:

   The parameters are those used by simon_two_descent, and are documented
 there.

   OUTPUT:

   If the upper and lower bounds given by Simon two-descent are the same,
 then the rank has been uniquely identified and we return this. Otherwise,
 we return the upper and lower bounds with a warning that these are not the
 same.

   Note: For non-quadratic number fields, this code does return, but it
 takes a long time.

   EXAMPLES:

   sage: K.<a> = NumberField(x^2 + 23, 'a')

   sage: E = EllipticCurve(K, '37')

   sage: E == loads(dumps(E))

   True

   sage: E.rank()

   2

   Here is a curve with two-torsion, so here the algorithm gives bounds on
 the rank:

   sage: Qrt5.<rt5>=NumberField(x^2-5)

   sage: E=EllipticCurve([0,5-rt5,0,rt5,0])

   sage: E.rank()

   Lower and upper bounds differ!

   Lower bound being returned

   1

   IMPLEMENTATION:

   Uses Denis Simon's GP/PARI scripts from
 \url{http://www.math.unicaen.fr/~simon/}.

   """

 
simon_output=self.simon_two_descent(verbose=verbose,lim1=lim1,lim3=lim3,limtriv=limtriv,maxprob=maxprob,limbigprime=limbigprime)
   if simon_output[0]==simon_output[1]:
     return simon_output[0]
   print "Lower and upper bounds differ!"
   print "Lower bound being returned"
   return simon_output[0]
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9342>
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