\(L\)-series of modular abelian varieties

AUTHOR:

  • William Stein (2007-03)

class sage.modular.abvar.lseries.Lseries(abvar)[source]

Bases: SageObject

Base class for \(L\)-series attached to modular abelian varieties.

This is a common base class for complex and \(p\)-adic \(L\)-series of modular abelian varieties.

abelian_variety()[source]

Return the abelian variety that this \(L\)-series is attached to.

OUTPUT: a modular abelian variety

EXAMPLES:

sage: J0(11).padic_lseries(7).abelian_variety()
Abelian variety J0(11) of dimension 1
>>> from sage.all import *
>>> J0(Integer(11)).padic_lseries(Integer(7)).abelian_variety()
Abelian variety J0(11) of dimension 1
J0(11).padic_lseries(7).abelian_variety()
class sage.modular.abvar.lseries.Lseries_complex(abvar)[source]

Bases: Lseries

A complex \(L\)-series attached to a modular abelian variety.

EXAMPLES:

sage: A = J0(37)
sage: A.lseries()
Complex L-series attached to Abelian variety J0(37) of dimension 2
>>> from sage.all import *
>>> A = J0(Integer(37))
>>> A.lseries()
Complex L-series attached to Abelian variety J0(37) of dimension 2
A = J0(37)
A.lseries()
lratio()[source]

Return the rational part of this \(L\)-function at the central critical value 1.

OUTPUT: a rational number

EXAMPLES:

sage: A, B = J0(43).decomposition()
sage: A.lseries().rational_part()
0
sage: B.lseries().rational_part()
2/7
>>> from sage.all import *
>>> A, B = J0(Integer(43)).decomposition()
>>> A.lseries().rational_part()
0
>>> B.lseries().rational_part()
2/7
A, B = J0(43).decomposition()
A.lseries().rational_part()
B.lseries().rational_part()
rational_part()[source]

Return the rational part of this \(L\)-function at the central critical value 1.

OUTPUT: a rational number

EXAMPLES:

sage: A, B = J0(43).decomposition()
sage: A.lseries().rational_part()
0
sage: B.lseries().rational_part()
2/7
>>> from sage.all import *
>>> A, B = J0(Integer(43)).decomposition()
>>> A.lseries().rational_part()
0
>>> B.lseries().rational_part()
2/7
A, B = J0(43).decomposition()
A.lseries().rational_part()
B.lseries().rational_part()
vanishes_at_1()[source]

Return True if \(L(1)=0\) and return False otherwise.

OUTPUT: boolean

EXAMPLES:

Numerically, the \(L\)-series for \(J_0(389)\) appears to vanish at 1. This is confirmed by this algebraic computation:

sage: L = J0(389)[0].lseries(); L
Complex L-series attached to Simple abelian subvariety 389a(1,389) of dimension 1 of J0(389)
sage: L(1) # long time (2s) abstol 1e-10
-1.33139759782370e-19
sage: L.vanishes_at_1()
True
>>> from sage.all import *
>>> L = J0(Integer(389))[Integer(0)].lseries(); L
Complex L-series attached to Simple abelian subvariety 389a(1,389) of dimension 1 of J0(389)
>>> L(Integer(1)) # long time (2s) abstol 1e-10
-1.33139759782370e-19
>>> L.vanishes_at_1()
True
L = J0(389)[0].lseries(); L
L(1) # long time (2s) abstol 1e-10
L.vanishes_at_1()

Numerically, one might guess that the \(L\)-series for \(J_1(23)\) and \(J_1(31)\) vanish at 1. This algebraic computation shows otherwise:

sage: L = J1(23).lseries(); L
Complex L-series attached to Abelian variety J1(23) of dimension 12
sage: L(1)  # long time (about 3 s)
0.0001295198...
sage: L.vanishes_at_1()
False
sage: abs(L(1, prec=100)- 0.00012951986142702571478817757148) < 1e-32  # long time (about 3 s)
True

sage: L = J1(31).lseries(); L
Complex L-series attached to Abelian variety J1(31) of dimension 26
sage: abs(L(1) - 3.45014267547611e-7) < 1e-15  # long time (about 8 s)
True
sage: L.vanishes_at_1()  # long time (about 6 s)
False
>>> from sage.all import *
>>> L = J1(Integer(23)).lseries(); L
Complex L-series attached to Abelian variety J1(23) of dimension 12
>>> L(Integer(1))  # long time (about 3 s)
0.0001295198...
>>> L.vanishes_at_1()
False
>>> abs(L(Integer(1), prec=Integer(100))- RealNumber('0.00012951986142702571478817757148')) < RealNumber('1e-32')  # long time (about 3 s)
True

>>> L = J1(Integer(31)).lseries(); L
Complex L-series attached to Abelian variety J1(31) of dimension 26
>>> abs(L(Integer(1)) - RealNumber('3.45014267547611e-7')) < RealNumber('1e-15')  # long time (about 8 s)
True
>>> L.vanishes_at_1()  # long time (about 6 s)
False
L = J1(23).lseries(); L
L(1)  # long time (about 3 s)
L.vanishes_at_1()
abs(L(1, prec=100)- 0.00012951986142702571478817757148) < 1e-32  # long time (about 3 s)
L = J1(31).lseries(); L
abs(L(1) - 3.45014267547611e-7) < 1e-15  # long time (about 8 s)
L.vanishes_at_1()  # long time (about 6 s)
class sage.modular.abvar.lseries.Lseries_padic(abvar, p)[source]

Bases: Lseries

A \(p\)-adic \(L\)-series attached to a modular abelian variety.

power_series(n=2, prec=5)[source]

Return the \(n\)-th approximation to this \(p\)-adic \(L\)-series as a power series in \(T\).

Each coefficient is a \(p\)-adic number whose precision is provably correct.

NOTE: This is not yet implemented.

EXAMPLES:

sage: L = J0(37)[0].padic_lseries(5)
sage: L.power_series()
Traceback (most recent call last):
...
NotImplementedError
sage: L.power_series(3,7)
Traceback (most recent call last):
...
NotImplementedError
>>> from sage.all import *
>>> L = J0(Integer(37))[Integer(0)].padic_lseries(Integer(5))
>>> L.power_series()
Traceback (most recent call last):
...
NotImplementedError
>>> L.power_series(Integer(3),Integer(7))
Traceback (most recent call last):
...
NotImplementedError
L = J0(37)[0].padic_lseries(5)
L.power_series()
L.power_series(3,7)
prime()[source]

Return the prime \(p\) of this \(p\)-adic \(L\)-series.

EXAMPLES:

sage: J0(11).padic_lseries(7).prime()
7
>>> from sage.all import *
>>> J0(Integer(11)).padic_lseries(Integer(7)).prime()
7
J0(11).padic_lseries(7).prime()