The number of Dirichlet coefficients an 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.
Compute the vector of first N coefficients [* a1, ..., aN *] of the L-series given by L.
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 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 CheckFunctionalEquation(L) or any evaluation function sets the sign.)
A sequence of Gamma factors λ1, ..., λd for L(s). Each one represents a factor Γ((s + λi)/2) entering the functional equation of the L-function.
Given an L-series L, this function returns the weight, the conductor, the list of γ-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).
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*]
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*]
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, ... >
The conductor of this L-series (second entry) is very large 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); // a lot! 280632Decreasing the precision will help somewhat.
> LSetPrecision(LEK,9); > LCfRequired(LEK); 17508And realizing that our L-series has a piece that can be factored out will certainly help (see the Arithmetic section).
> Q := LEK/LE; > LSetPrecision(Q,9); > LCfRequired(Q); 3780 > time Evaluate(Q,2) * Evaluate(LE,2); // = L(E/K,2) 0.892165947 Time: 8.020
If an L-series is represented internally as a product of other L-series, say L(s)=∏i Li(s)ni, return the sequence [...<Li,ni>...].
> 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 of Number Field with defining polynomial x^6 + 108 over the Rational Field with character ( 1, -1, 1 ) and conductor 3, 1>, <L-series of Artin representation of Number Field with defining polynomial x^6 + 108 over the Rational Field with character ( 2, 0, -1 ) and conductor 108, 2> ]