Opened 5 years ago
Closed 5 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, GitHub, GitLab) | 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 5 years ago by
Cc: | davidloeffler added |
---|
comment:2 Changed 5 years ago by
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 5 years ago by
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 5 years ago by
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 5 years ago by
Branch: | → public/25369-rootnumber |
---|
comment:6 Changed 5 years ago by
Commit: | → 42650326f8ebb474eccaa9020ba247ffe7d0c3ae |
---|---|
Status: | new → 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:
2a58074 | Trac 24086: Atkin--Lehner operators - now works for any character, + normalisations fixed
|
76e7262 | Fix failing doctest in abvar/lseries.py
|
4265032 | Trac 25369: fix modular form L-series root numbers in odd weights
|
comment:7 Changed 5 years ago by
Stopgaps: | → 24086 |
---|
comment:8 Changed 5 years ago by
Dependencies: | → #24086 |
---|---|
Stopgaps: | 24086 |
comment:9 Changed 5 years ago by
Status: | needs_review → 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 5 years ago by
Authors: | → David Loeffler |
---|---|
Reviewers: | → Alex J. Best |
comment:11 Changed 5 years ago by
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 5 years ago by
Branch: | public/25369-rootnumber → public/25369-rootnumber-rebase |
---|
comment:13 Changed 5 years ago by
Commit: | 42650326f8ebb474eccaa9020ba247ffe7d0c3ae → 6e97ac55d08cae9e792c6f9ff2c9304b1e0387eb |
---|
comment:14 Changed 5 years ago by
Branch: | public/25369-rootnumber-rebase → 6e97ac55d08cae9e792c6f9ff2c9304b1e0387eb |
---|---|
Resolution: | → fixed |
Status: | positive_review → closed |
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 givesI^5 * I = -1
, in the second case the eigenvalue is-I
with the 0th embedding givingI^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.