|
There is some capability to modify an L-function, for instance if one
were trying to experimentally determine bad Euler factors, you might not
want to recompute the known (good) Euler factors repeatedly with a new
L-function.
Given an L-series that computes its coefficients as Euler factors,
a prime, and a suitable polynomial, create an L-function with the
given Euler factor at said prime. This copies over the known coefficients.
Be warned that the new L-series has a function to compute Euler Factors
which consists of one line to check if the prime is the special one,
and then calls the old function. So recursively calling this function
is not wise. It is (much) superior to create a new L-series with this
intrinsic, compute with the new L-series, and then use CopyCoefficients
to copy back to the first L-series, then creating more new L-series from it
(and not from the second one).
Similar to ChangeEulerFactor, but include the new local conductor as the
third argument.
Similar to ChangeEulerFactor, but now the third argument is a list
containing bad prime information, each entry being a tuple consisting of
the prime, the local conductor, and the Euler factor (as a polynomial).
Copy the known coefficients array of the first L-series to the second.
If the latter has more known coefficients, then those are retained at the end.
We give a short example of how changing local information can be done.
We create the L-series hypergeometric motive at the inverse value of
the M-parameter, where the wild primes can often become good.
> H := HypergeometricData([2,3],[1,6]);
> MValue(H);
1/4
> L := LSeries(H,4);
WARNING: Guessing wild prime information
> BadPrimeData(L);
[ <2, 2, 4*x^2 + 2*x + 1>, <3, 3, -3*x + 1> ]
> LCfRequired(L); // approx for old CheckFunctionalEquation
287
> CFENew(L);
0.0993765484143679709634086969555
At this point Magma really has no knowledge of the bad prime information at 3.
Its guess of (1 - 3x) turns out to be incorrect, as is the conductor
exponent at 3. By trial and error, we find that the Euler factor at 3
is trivial, and the local conductor is 4. We can change the old L-series
to a new one with ChangeLocalInformation, and then check the functional
equation. Finally (and importantly when one works via trial-and-error),
we copy any extra coefficients computed with the second L-series back
to the first.
> M := ChangeLocalInformation(L,[* <3,4,1> *]);
> LCfRequired(M);
503
> CFENew(M);
0.000000000000000000000000000000
> #L`cfvec; // length 260
260
> CopyCoefficients(M,L); // M back to L
> #L`cfvec; // now length 450
450
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|