Hi Peter, I've actually been planning on going back and cleaning up/speeding up the Eisenstein series code at some point in the near future anyway. I'm on vacation this week, but I'll look at this at the beginning of next week. In the interim, this is now:
http://trac.sagemath.org/sage_trac/ticket/4062 -cc On Thu, Sep 4, 2008 at 4:21 AM, Peter Bruin <[EMAIL PROTECTED]> wrote: > > 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[4]).eisenstein_series() > sage: E[0].character() == G[4] > 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 > > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---