[with patch, positive review] Problems with Eisenstein series code?
|Reported by:||craigcitro||Owned by:||craigcitro|
|Authors:||Craig Citro, Peter Bruin||Reviewers:||David Loeffler|
|Report Upstream:||Work issues:|
This was reported to
Hi, When computing Eisenstein series with a given character, Sage may return some forms with a wrong character. The following lines show an example of this: sage: G = DirichletGroup(7) sage: E = EisensteinForms(G).eisenstein_series() sage: E.character() == G False The problem appears to be caused by the condition if chi*psi == eps: in the function __find_eisen_chars in modular/modform/eis_series.py. According to Miyake, _Modular Forms_, Lemma 7.1.1 (cited in a comment in this function), it should be if chi == eps*psi: Another bug is that Sage uses an incorrect formula to compute q- expansions of Eisenstein series. Here the origin of the problem seems to be formula (5.3.1) in Stein, _Modular Forms: A Computational Approach_, where the psi(n) should be replaced by its complex conjugate (cf. Miyake, _Modular Forms_, Theorem 4.7.1 and the first three lines of page 271). The method __compute_general_case of the class EisensteinSeries in modular/modform/element.py reproduces this formula in the form v.append(sum([psi(n)*chi(m/n)*n**(k-1) for n in rings.divisors(m)])) Here psi should be ~psi. Thanks, Peter Bruin
Change History (6)
Changed 8 years ago by
comment:1 Changed 8 years ago by
- Milestone changed from sage-3.2.1 to sage-3.2
- Status changed from new to assigned
- Summary changed from Problems with Eisenstein series code? to [with patch, needs review] Problems with Eisenstein series code?
comment:3 Changed 8 years ago by
- Summary changed from [with patch, needs review] Problems with Eisenstein series code? to [with patch, positive review] Problems with Eisenstein series code?
Note: See TracTickets for help on using tickets.