Accessing the Invariants#

LCfRequired(L): LSer -> RngIntElt#

The number of Dirichlet coefficients \(a_n\) that have to be calculated in order to compute the values \(L(s)\). This function can be also used with a user-defined \(L\)-series before its coefficients are set, see Section Specifying the Coefficients Later.

LGetCoefficients(L, N): LSer, RngIntElt -> List#

Compute the vector of first \(N\) coefficients [* \(a_1,...,a_N\) *] of the \(L\)-series given by \(L\).

EulerFactor(L, p): LSer, RngIntElt -> RngElt#
Degree   : RngIntElt                    Default: 
Precision: RngIntElt                    Default: 

Given an L-series and a prime \(p\), this computes the \(p\)th Euler factor, either as a polynomial or a power series. The optional parameter Degree will truncate the series to that length, and the optional parameter Precision is of use when the series is defined over the complex numbers.

Degree(L): LSer -> RngIntElt#

The degree of an \(L\)-function.

Conductor(L): LSer -> RngElt#

Conductor of the L-series (real number, usually an integer). This invariant enters the functional equation and measures the ‘size’ of the object to which the L-series is associated. Evaluating an \(L\)-series takes time roughly proportional to the square root of the conductor.

Sign(L): LSer -> RngElt#

Sign in the functional equation of the \(L\)-series. This is a complex number of absolute value 1, or 0 if the sign has not been computed yet. (Calling CFENew or CheckFunctionalEquation(L) or any evaluation function sets the sign.)

MotivicWeight(L): LSer -> RngIntElt#

The motivic weight of an \(L\)-function.

GammaFactors(L): LSer -> SeqEnum#

A sequence of Gamma factors \(\lambda_1,\ldots,\lambda_d\) for \(L(s)\). Each one represents a factor \(\Gamma((s+\lambda_i)/2)\) entering the functional equation of the \(L\)-function.

With the previous two intrinsics, see also HodgeStructure.

LSeriesData(L): LSer -> Info#

Given an \(L\)-series \(L\), this function returns the weight, the conductor, the list of \(\gamma\)-shifts, the coefficient function, the sign, the poles of \(L^*(s)\) and the residues of \(L^*(s)\) as a tuple of length 7. If Sign \(=0\), this means it has not been computed yet. Residues\(=[]\) means they have not yet been computed. From this data, \(L\) can be re-created with a general LSeries call (see Section Constructing a General \(L\)-Series).

BadPrimeData(L): LSer -> SeqEnum#

Given an \(L\)-series \(L\), this returns an array of bad prime data, each entry being a 3-tuple \(\langle p,v,U \rangle\) where \(p\) is the prime, \(v\) is the conductor valuation at \(p\), and \(U\) is the (possibly trivial) Euler factor at \(p\).

Example: Lseries Invariants 1 (ex-f37c5f)#

For a modular form, the \(q\)-expansion coefficients are the same as the Dirichlet coefficients of the associated \(L\)-series:

> f := Newforms("30k2")[1,1];
> qExpansion(f,10);
q - q^2 + q^3 + q^4 - q^5 - q^6 - 4*q^7 - q^8 + q^9 + O(q^10)
> Lf := LSeries(f);
> LGetCoefficients(Lf,20);
[* 1, -1, 1, 1, -1, -1, -4, -1, 1, 1, 0, 1, 2, 4, -1, 1, 6, -1, -4, -1 *]

Run in calculator

The elliptic curve of conductor 30 that corresponds to \(f\) has, of course, the same \(L\)-series.

> E := EllipticCurve(f); E;
Elliptic Curve defined by y^2 + x*y + y = x^3 + x + 2 over Rational Field
> LE := LSeries(E);
> LGetCoefficients(LE,20);
[* 1, -1, 1, 1, -1, -1, -4, -1, 1, 1, 0, 1, 2, 4, -1, 1, 6, -1, -4, -1 *]

Run in calculator

Now we change the base field of \(E\) to a number field \(K\) and evaluate the \(L\)-series of \(E/K\) at \(s=2\).

> P<x> := PolynomialRing(Integers());
> K := NumberField(x^3-2);
> LEK := LSeries(E,K);
> i := LSeriesData(LEK); i;
<2, [ 0, 0, 0, 1, 1, 1 ], 8748000, function(p, d [ Precision ]) ... end
   function, 1, [], []>

Run in calculator

The conductor of this \(L\)-series (second entry) is not that small and this is an indication that the calculations of \(L(E/K,2)\) to the required precision (30 digits) will take some time. We can also ask how many coefficients will be used in this calculation.

> LCfRequired(LEK);
24636

Run in calculator

Decreasing the precision will help somewhat.

> LSetPrecision(LEK,9);
> LCfRequired(LEK);
3364

Run in calculator

Magma now automatically does a factorization of the \(L\)-series (see the Arithmetic section).

> LEK`prod;
[
    <L-series of twist of Elliptic Curve defined by y^2 + x*y + y = x^3 + x + 2
    over Rational Field by Artin representation S3: (1,1,1) of ext<Q|x^3-2>, 1>,
    <L-series of twist of Elliptic Curve defined by y^2 + x*y + y = x^3 + x + 2
    over Rational Field by Artin representation S3: (2,0,-1) of ext<Q|x^3-2>,
    conductor 108, 1>
]

Run in calculator

Factorization(L): LSer -> SeqEnum[Tup]#
Factorisation(L): LSer -> SeqEnum[Tup]#

If an \(L\)-series is represented internally as a product of other \(L\)-series, say \(L(s)=\prod_i L_i(s)^{n_i}\), return the sequence [...<L_i,n_i>...].

Example: Lseries Invariants 2 (ex-52681e)#
> L := RiemannZeta();
> Factorization(L);
[ <L-series of Riemann zeta function, 1> ]
> R<x> := PolynomialRing(Rationals());
> K := SplittingField(x^3-2);
> L := LSeries(K);
> Factorization(L);
[
    <L-series of Riemann zeta function, 1>,
    <L-series of Artin representation S3: (1,-1,1) of ext<Q|x^6+108>, conductor
3, 1>,
    <L-series of Artin representation S3: (2,0,-1) of ext<Q|x^6+108>, conductor
108, 2>
]

Run in calculator