#8622: Atkin-Lehner operators don't work for odd weight modular forms
---------------------------------+------------------------------------------
       Reporter:  davidloeffler  |         Owner:  craigcitro
           Type:  defect         |        Status:  new       
       Priority:  major          |     Milestone:            
      Component:  modular forms  |    Resolution:            
       Keywords:  atkin-lehner   |   Work issues:            
Report Upstream:  N/A            |     Reviewers:            
        Authors:                 |     Merged in:            
   Dependencies:                 |      Stopgaps:            
---------------------------------+------------------------------------------

Comment (by robharron):

 Well, you do only get a numerical approximation to the eigenvalue, but in
 the odd weight case, you know the eigenvalue is i or -i, since the square
 of Atkin-Lehner acts by (-1)^k^ (where k is the weight).

 As for embeddings, I think I'd have to consider it more carefully to be
 sure, but my feeling is that this shouldn't matter. The functional
 equation relates the L-function of f at s to the L-function of W(f) at k-s
 and W(f) = w*f', where f' is the newform whose coefficients are the
 complex conjugates of those of f. The newforms we are discussing have
 totally real coefficients, so f'=f and L(s,f) is related to L(k-s,f) by a
 functional equation, and w, the Atkin-Lehner eigenvalue, appears in that
 functional equation (and w^2^ = -1). Now, L(s,f) really depends on a
 complex embedding of the Hecke eigenvalue field of f into C, but such a
 dependancy shouldn't change the sign of the functional equation (right?).
 Now, I found a newform with CM by its own Nebentypus and Hecke eigenvalue
 field a totally real cubic extension and tried this out and the answer I
 got was independent of the complex embedding:

 {{{
 sage: def lseries(selfe, prec = 100, max_imaginary_part=0,
 max_asymp_coeffs=40, threshold = 1e-10):
     K = selfe.hecke_eigenvalue_field()
     iotas = K.complex_embeddings()
     Ls = []
     i = 0
     for iota in iotas:
         Ls.append(Dokchitser(conductor = selfe.level(), gammaV = [0, 1],
 weight = selfe.weight(), eps = 1, prec = prec))
         coeffs = 'coeff = %s;'%[iota(a_n) for a_n in
 selfe.q_expansion(prec).list()]
         #print coeffs
         Ls[-1].init_coeffs('coeff[k+1]', pari_precode = coeffs,
 max_imaginary_part = max_imaginary_part, max_asymp_coeffs =
 max_asymp_coeffs)
         if Ls[-1].check_functional_equation().abs() > threshold:
             Ls[-1] = Dokchitser(conductor = selfe.level(), gammaV = [0,
 1], weight = selfe.weight(), eps = -1, prec = prec)
             Ls[-1].init_coeffs('coeff[k+1]', pari_precode = coeffs,
 max_imaginary_part = max_imaginary_part, max_asymp_coeffs =
 max_asymp_coeffs)
             if Ls[-1].check_functional_equation().abs() > threshold:
                 print "Sign not found!"
     return Ls
 ....:
 sage: f = Newforms(Gamma1(23),3,names='a')[0]sage:
 f.hecke_eigenvalue_field()
 Number Field in a0 with defining polynomial x^3 - 12*x + 7
 sage: f.q_expansion(10)
 q + a0*q^2 + (-1/3*a0^2 - 5/3*a0 + 8/3)*q^3 + (a0^2 - 4)*q^4 + (-5/3*a0^2
 - 4/3*a0 + 7/3)*q^6 + (4*a0 - 7)*q^8 + (7/3*a0^2 + 11/3*a0 - 29/3)*q^9 +
 O(q^10)
 sage: Ls = lseries(f)
 sage: for L in Ls:
     print L(1) * 2 * pi.N() * I/(sqrt(f.level()).N() * L(2))
 ....:
 1.00000000000000*I
 1.00000000000000*I
 1.00000000000000*I
 }}}

 Obviously, it would be nice to be able to deal with the pseudo-eigenvalues
 in the general case, but in the meantime, if this makes sense, it would be
 nice. Also, note that I had to write my own function for getting the
 L-function of f since the current implementation only deals with Γ,,0,,.
 (Is there a reason the latter hasn't been implemented?)

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8622#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to