Compute and return a list of all parameters that
define the Eisenstein series with given character and weight
.
Only the parity of is relevant (unless k = 1, which is a slightly different case).
If character is an integer , then the parameters for
are computed instead. Then the condition is that
.
If character is a list of integers, the parameters for are
computed, where
is the subgroup of
generated by the
integers in the given list.
EXAMPLES:
sage: sage.modular.modform.eis_series.compute_eisenstein_params(DirichletGroup(30)(1), 3)
[]
sage: pars = sage.modular.modform.eis_series.compute_eisenstein_params(DirichletGroup(30)(1), 4)
sage: [(x[0].values_on_gens(), x[1].values_on_gens(), x[2]) for x in pars]
[((1, 1), (1, 1), 1),
((1, 1), (1, 1), 2),
((1, 1), (1, 1), 3),
((1, 1), (1, 1), 5),
((1, 1), (1, 1), 6),
((1, 1), (1, 1), 10),
((1, 1), (1, 1), 15),
((1, 1), (1, 1), 30)]
sage: pars = sage.modular.modform.eis_series.compute_eisenstein_params(15, 1)
sage: [(x[0].values_on_gens(), x[1].values_on_gens(), x[2]) for x in pars]
[((1, 1), (-1, 1), 1),
((1, 1), (-1, 1), 5),
((1, 1), (1, zeta4), 1),
((1, 1), (1, zeta4), 3),
((1, 1), (-1, -1), 1),
((1, 1), (1, -zeta4), 1),
((1, 1), (1, -zeta4), 3),
((-1, 1), (1, -1), 1)]
sage: sage.modular.modform.eis_series.compute_eisenstein_params(DirichletGroup(15).0, 1)
[(Dirichlet character modulo 15 of conductor 1 mapping 11 |--> 1, 7 |--> 1, Dirichlet character modulo 15 of conductor 3 mapping 11 |--> -1, 7 |--> 1, 1),
(Dirichlet character modulo 15 of conductor 1 mapping 11 |--> 1, 7 |--> 1, Dirichlet character modulo 15 of conductor 3 mapping 11 |--> -1, 7 |--> 1, 5)]
sage: len(sage.modular.modform.eis_series.compute_eisenstein_params(GammaH(15, [4]), 3))
8
Return the L-series of the weight Eisenstein series
on
.
This actually returns an interface to Tim Dokchitser’s program for computing with the L-series of the Eisenstein series
INPUT:
OUTPUT:
The L-series of the Eisenstein series.
EXAMPLES:
We compute with the L-series of and then
:
sage: L = eisenstein_series_lseries(16)
sage: L(1)
-0.291657724743874
sage: L = eisenstein_series_lseries(20)
sage: L(2)
-5.02355351645998
Now with higher precision:
sage: L = eisenstein_series_lseries(20, prec=200)
sage: L(2)
-5.0235535164599797471968418348135050804419155747868718371029
Return the -expansion of the normalized weight
Eisenstein series on
to precision prec in the ring
. Three normalizations
are available, depending on the parameter normalization; the default
normalization is the one for which the linear coefficient is 1.
INPUT:
ALGORITHM:
We know. So we compute all the
simultaneously, using the fact that
is multiplicative.
EXAMPLES:
sage: eisenstein_series_qexp(2,5)
-1/24 + q + 3*q^2 + 4*q^3 + 7*q^4 + O(q^5)
sage: eisenstein_series_qexp(2,0)
O(q^0)
sage: eisenstein_series_qexp(2,5,GF(7))
2 + q + 3*q^2 + 4*q^3 + O(q^5)
sage: eisenstein_series_qexp(2,5,GF(7),var='T')
2 + T + 3*T^2 + 4*T^3 + O(T^5)
We illustrate the use of the normalization parameter:
sage: eisenstein_series_qexp(12, 5, normalization='integral')
691 + 65520*q + 134250480*q^2 + 11606736960*q^3 + 274945048560*q^4 + O(q^5)
sage: eisenstein_series_qexp(12, 5, normalization='constant')
1 + 65520/691*q + 134250480/691*q^2 + 11606736960/691*q^3 + 274945048560/691*q^4 + O(q^5)
sage: eisenstein_series_qexp(12, 5, normalization='linear')
691/65520 + q + 2049*q^2 + 177148*q^3 + 4196353*q^4 + O(q^5)
sage: eisenstein_series_qexp(12, 50, K=GF(13), normalization="constant")
1 + O(q^50)
TESTS:
Test that trac ticket #5102 is fixed:
sage: eisenstein_series_qexp(10, 30, GF(17))
15 + q + 3*q^2 + 15*q^3 + 7*q^4 + 13*q^5 + 11*q^6 + 11*q^7 + 15*q^8 + 7*q^9 + 5*q^10 + 7*q^11 + 3*q^12 + 14*q^13 + 16*q^14 + 8*q^15 + 14*q^16 + q^17 + 4*q^18 + 3*q^19 + 6*q^20 + 12*q^21 + 4*q^22 + 12*q^23 + 4*q^24 + 4*q^25 + 8*q^26 + 14*q^27 + 9*q^28 + 6*q^29 + O(q^30)
This shows that the bug reported at trac ticket #8291 is fixed:
sage: eisenstein_series_qexp(26, 10, GF(13))
7 + q + 3*q^2 + 4*q^3 + 7*q^4 + 6*q^5 + 12*q^6 + 8*q^7 + 2*q^8 + O(q^10)
We check that the function behaves properly over finite-characteristic base rings:
sage: eisenstein_series_qexp(12, 5, K = Zmod(691), normalization="integral")
566*q + 236*q^2 + 286*q^3 + 194*q^4 + O(q^5)
sage: eisenstein_series_qexp(12, 5, K = Zmod(691), normalization="constant")
Traceback (most recent call last):
...
ValueError: The numerator of -B_k/(2*k) (=691) must be invertible in the ring Ring of integers modulo 691
sage: eisenstein_series_qexp(12, 5, K = Zmod(691), normalization="linear")
q + 667*q^2 + 252*q^3 + 601*q^4 + O(q^5)
sage: eisenstein_series_qexp(12, 5, K = Zmod(2), normalization="integral")
1 + O(q^5)
sage: eisenstein_series_qexp(12, 5, K = Zmod(2), normalization="constant")
1 + O(q^5)
sage: eisenstein_series_qexp(12, 5, K = Zmod(2), normalization="linear")
Traceback (most recent call last):
...
ValueError: The denominator of -B_k/(2*k) (=65520) must be invertible in the ring Ring of integers modulo 2
AUTHORS: