Opened 3 years ago

Closed 3 years ago

#25369 closed defect (fixed)

L-series values for certain modular forms computed incorrectly

Reported by: arminstraub Owned by:
Priority: major Milestone: sage-8.3
Component: modular forms Keywords: lseries
Cc: davidloeffler Merged in:
Authors: David Loeffler Reviewers: Alex J. Best
Report Upstream: N/A Work issues:
Branch: 6e97ac5 (Commits) Commit: 6e97ac55d08cae9e792c6f9ff2c9304b1e0387eb
Dependencies: #24086 Stopgaps:

Description

Using Sage 8.1 on CoCalc:

sage: f5 = Newforms(Gamma1(4), 5, names='a')[0]; f5
q - 4*q^2 + 16*q^4 - 14*q^5 + O(q^6)
sage: L5 = f5.lseries()
sage: L5.check_functional_equation()
0.148408065960889 - 9.08737314733255e-18*I

An example of an incorrect L-value (and the correct one, for comparison):

sage: L5(4)
0.379630585317869 + 2.49933520900079e-17*I
sage: sum(f5.coefficient(n)/n^4 for n in [1..200]).n()
0.787848673384282
sage: (gamma(1/4)^8/(3840*pi^2)).n()
0.787803000538474

Just in case it is helpful, here is another example with similar issues:

sage: f3 = Newforms(Gamma1(24), 3, names='a')[0]; f3
q - 2*q^2 + 3*q^3 + 4*q^4 + 2*q^5 + O(q^6)
sage: f3.lseries().check_functional_equation()
1.13933480080878 - 3.61460956971046e-16*I

Change History (14)

comment:1 Changed 3 years ago by alexjbest

  • Cc davidloeffler added

It seems the behaviour here is changed by #24086, it still doesn't seem to work even after that for me though.

The LMFDB has this form http://www.lmfdb.org/ModularForm/GL2/Q/holomorphic/4/5/3/a/ and says the associated L-function is http://www.lmfdb.org/L/ModularForm/GL2/Q/holomorphic/4/5/3/a/0/, which has epsilon factor 1, rather than -1 as L5.eps reports. If you set the epsilon factor to 1 then the functional equation checks out (for both examples).

Conceivably this could just be an issue of embeddings? In the first case the atkin lehner eigenvalue is reported with #24086 to be zeta4 or simply I using the 0th embedding of the heceke_eigenvalue_field into QQbar, which if embedded as the same as I gives I^5 * I = -1, in the second case the eigenvalue is -I with the 0th embedding giving I^3 *(-I) = -1 again. So both examples would be fixed by a judicious conjugate embedding? But I think I have stretched my lack of the appropriate mathematics too far now, as I really don't know what all these embeddings etc. "should" be.

Last edited 3 years ago by alexjbest (previous) (diff)

comment:2 Changed 3 years ago by davidloeffler

This is an interesting case: it's a form of odd weight and rational Hecke eigenvalues -- this can only happen for CM forms. Since the Hecke eigenvalue field is QQ, the "embedding" parameter to atkin_lehner_eigenvalue() has no effect.

My best guess is that this is a discrepancy of normalisations between atkin_lehner_eigenvalue() and lseries(). The Atkin-Lehner eigenvalue code uses the normalisations from Atkin-Li's 1978 paper; but that defines W_N to be [0,1; -N,0], whereas a lot of subsequent literature uses [0,-1; N,0], and that causes a sign discrepancy in odd weights.

I will investigate more and get back to you.

comment:3 Changed 3 years ago by arminstraub

Thank you, Alex! Manually adjusting the epsilon factor indeed makes the functional equation work out. The L-values I am interested in are then also computed correctly. This is very helpful as a temporary work-around. It is awesome to see you and David investigate this issue so swiftly!

comment:4 Changed 3 years ago by davidloeffler

Yes, I was correct: this is the discrepancy between the Atkin--Li definition of $W_N$ and the other definition when the weight is odd. I'll to do a fix on top of my existing branch for #24086.

comment:5 Changed 3 years ago by davidloeffler

  • Branch set to public/25369-rootnumber

comment:6 Changed 3 years ago by davidloeffler

  • Commit set to 42650326f8ebb474eccaa9020ba247ffe7d0c3ae
  • Status changed from new to needs_review

Here's a fix -- it's literally a single-byte change! I also added your weight 5 example as a doctest.


New commits:

2a58074Trac 24086: Atkin--Lehner operators - now works for any character, + normalisations fixed
76e7262Fix failing doctest in abvar/lseries.py
4265032Trac 25369: fix modular form L-series root numbers in odd weights

comment:7 Changed 3 years ago by davidloeffler

  • Stopgaps set to 24086

comment:8 Changed 3 years ago by davidloeffler

  • Dependencies set to #24086
  • Stopgaps 24086 deleted

comment:9 Changed 3 years ago by alexjbest

  • Status changed from needs_review to positive_review

Just ran through a load of examples with this patch and all the functional equations check out, so positive review!

comment:10 Changed 3 years ago by alexjbest

  • Authors set to David Loeffler
  • Reviewers set to Alex J. Best

comment:11 Changed 3 years ago by arminstraub

Fantastic! It's been a while, but I updated Sage on my machine to the newest beta, applied your patch, and computed lots of L-values (the ones I included in the report are part of an infinite family). It is working beautifully! Thank you!

comment:12 Changed 3 years ago by davidloeffler

  • Branch changed from public/25369-rootnumber to public/25369-rootnumber-rebase

comment:13 Changed 3 years ago by davidloeffler

  • Commit changed from 42650326f8ebb474eccaa9020ba247ffe7d0c3ae to 6e97ac55d08cae9e792c6f9ff2c9304b1e0387eb

Here's a new branch which merges cleanly with 8.3.beta2.


New commits:

6756c1eMerge branch 'public/24086_better' in 8.3.b2
51266f9Trac 24086: stamp out some fuzz accidentally re-introduced by auto-merge
6e97ac5Trac 25369: fix modular form L-series root numbers in odd weights

comment:14 Changed 3 years ago by vbraun

  • Branch changed from public/25369-rootnumber-rebase to 6e97ac55d08cae9e792c6f9ff2c9304b1e0387eb
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.