Package sage :: Package lfunctions :: Module sympow :: Class Sympow
[hide private]
[frames] | no frames]

Class Sympow

source code

                      object --+    
                               |    
structure.sage_object.SageObject --+
                                   |
                                  Sympow


Watkins Symmetric Power $L$-function Calculator

Type \code{sympow.[tab]} for a list of useful commands that are
implemented using the command line interface, but return objects
that make sense in SAGE.

You can also use the complete command-line interface of sympow via
this class.  Type \code{sympow.help()} for a list of commands and
how to call them.



Instance Methods [hide private]
 
_repr_(self)
Returns a string describing ths calculator module
source code
 
__call__(self, args)
Used to call sympow with given args
source code
 
_fix_err(self, err) source code
 
_curve_str(self, E) source code
 
L(self, E, n, prec)
Return $L(\Sym^{(n)}(E, \text{edge}))$ to prec digits of precision, where edge is the \emph{right} edge.
source code
 
Lderivs(self, E, n, prec, d)
Return $0$th to $d$th derivatives of $L(\Sym^{(n)}(E,s)$ to prec digits of precision, where $s$ is the right edge if $n$ is even and the center if $n$ is odd.
source code
 
modular_degree(self, E)
Return the modular degree of the elliptic curve E, assuming the Stevens conjecture.
source code
 
analytic_rank(self, E)
Return the analytic rank and leading $L$-value of the elliptic curve $E$.
source code
 
new_data(self, n)
Pre-compute data files needed for computation of n-th symmetric powers.
source code
 
help(self) source code

Inherited from structure.sage_object.SageObject: __hash__, __new__, __repr__, _axiom_, _axiom_init_, _gap_, _gap_init_, _gp_, _gp_init_, _interface_, _interface_init_, _interface_is_cached_, _kash_, _kash_init_, _macaulay2_, _macaulay2_init_, _magma_, _magma_init_, _maple_, _maple_init_, _mathematica_, _mathematica_init_, _maxima_, _maxima_init_, _octave_, _octave_init_, _pari_, _pari_init_, _r_init_, _sage_, _singular_, _singular_init_, category, db, dump, dumps, plot, rename, reset_name, save, version

Inherited from object: __delattr__, __getattribute__, __init__, __reduce__, __reduce_ex__, __setattr__, __str__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

L(self, E, n, prec)

source code 

Return $L(\Sym^{(n)}(E, \text{edge}))$ to prec digits
of precision, where edge is the \emph{right} edge.
Here $n$ must be even.

INPUT:
    E -- elliptic curve
    n -- even integer
    prec -- integer
    
OUTPUT:
    string -- real number to prec digits of precision as a string.

\note{Before using this function for the first time for
a given $n$, you may have to type \code{sympow('-new_data <n>')},
where \code{<n>} is replaced by your value of $n$.}

If you would like to see the extensive output sympow prints
when running this function, just type \code{set_verbose(2)}.

EXAMPLES:
    sage: a = sympow.L(EllipticCurve('11a'), 2, 16); a   # optional
    '1.057599244590958E+00'
    sage: RR(a)                    # optional -- requires precomputations
    1.05759924459096

Lderivs(self, E, n, prec, d)

source code 

Return $0$th to $d$th derivatives of $L(\Sym^{(n)}(E,s)$ to
prec digits of precision, where $s$ is the right edge if $n$
is even and the center if $n$ is odd.

INPUT:
    E -- elliptic curve
    n -- integer (even or odd)
    prec -- integer
    d -- integer
    
OUTPUT:
    a string, exactly as output by sympow

\note{To use this function you may have to run a few commands
like \code{sympow('-new_data 1d2')}, each which takes a few
minutes.  If this function fails it will indicate what
commands have to be run.}

EXAMPLES:
    sage: print sympow.Lderivs(EllipticCurve('11a'), 1, 16, 2)  # not tested
    ...
     1n0: 2.538418608559107E-01
     1w0: 2.538418608559108E-01
     1n1: 1.032321840884568E-01
     1w1: 1.059251499158892E-01
     1n2: 3.238743180659171E-02
     1w2: 3.414818600982502E-02

modular_degree(self, E)

source code 

Return the modular degree of the elliptic curve E, assuming
the Stevens conjecture.

INPUT:
    E -- elliptic curve over Q

OUTPUT:
    integer -- modular degree

EXAMPLES:
We compute the modular degrees of the lowest known conductor
curves of the first few ranks:

    sage: sympow.modular_degree(EllipticCurve('11a'))
    1
    sage: sympow.modular_degree(EllipticCurve('37a'))
    2
    sage: sympow.modular_degree(EllipticCurve('389a'))
    40
    sage: sympow.modular_degree(EllipticCurve('5077a'))
    1984
    sage: sympow.modular_degree(EllipticCurve([1, -1, 0, -79, 289]))
    334976

analytic_rank(self, E)

source code 

Return the analytic rank and leading $L$-value of the elliptic
curve $E$.

INPUT:
    E -- elliptic curve over Q

OUTPUT:
    integer -- analytic rank
    string -- leading coefficient (as string)

\note{The analytic rank is \emph{not} computed provably
correctly in general.}

\note{In computing the analytic rank we consider $L^{(r)}(E,1)$
to be $0$ if $L^{(r)}(E,1)/\Omega_E > 0.0001$.
}

EXAMPLES:
We compute the analytic ranks of the lowest known conductor
curves of the first few ranks:

    sage: sympow.analytic_rank(EllipticCurve('11a'))
    (0, '2.53842e-01')
    sage: sympow.analytic_rank(EllipticCurve('37a'))
    (1, '3.06000e-01')
    sage: sympow.analytic_rank(EllipticCurve('389a'))
    (2, '7.59317e-01')
    sage: sympow.analytic_rank(EllipticCurve('5077a'))
    (3, '1.73185e+00')
    sage: sympow.analytic_rank(EllipticCurve([1, -1, 0, -79, 289]))
    (4, '8.94385e+00')
    sage: sympow.analytic_rank(EllipticCurve([0, 0, 1, -79, 342]))  # long
    (5, '3.02857e+01')
    sage: sympow.analytic_rank(EllipticCurve([1, 1, 0, -2582, 48720]))  # long
    (6, '3.20781e+02')
    sage: sympow.analytic_rank(EllipticCurve([0, 0, 0, -10012, 346900]))  # long
    (7, '1.32517e+03')