Skip to content

Commit 1c65c74

Browse files
authored
Merge pull request #6318 from wwylele/main
Fix Dirichlet character for newform orbit whose dimension is 1
2 parents 65713a6 + 7df5371 commit 1c65c74

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

lmfdb/classical_modular_forms/test_cmf.py

+55
Original file line numberDiff line numberDiff line change
@@ -594,3 +594,58 @@ def test_underlying_data(self):
594594
and 'mf_hecke_charpolys' in data and 'charpoly_factorization' in data
595595
and 'mf_newform_portraits' in data and "data:image/png;base64" in data
596596
and 'mf_hecke_traces' in data and 'trace_an' in data)
597+
598+
def test_character_values(self):
599+
# A newform orbit of dimension 1
600+
data = self.tc.get('/ModularForm/GL2/Q/holomorphic/12/3/c/a/').get_data(as_text=True)
601+
character_values_table = r"""
602+
<table class="ntdata">
603+
<tbody>
604+
<tr>
605+
<td class="dark border-right border-bottom">\(n\)</td>
606+
<td class="light border-bottom">\(5\)</td>
607+
<td class="dark border-bottom">\(7\)</td> </tr>
608+
<tr>
609+
<td class="dark border-right">\(\chi(n)\)</td>
610+
<td class="light">\(-1\)</td>
611+
<td class="dark">\(1\)</td> </tr>
612+
</tbody>
613+
</table>
614+
"""
615+
assert (character_values_table in data)
616+
617+
# A newform orbit of dimension 2
618+
data = self.tc.get('/ModularForm/GL2/Q/holomorphic/119/1/d/a/').get_data(as_text=True)
619+
character_values_table = r"""
620+
<table class="ntdata">
621+
<tbody>
622+
<tr>
623+
<td class="dark border-right border-bottom">\(n\)</td>
624+
<td class="light border-bottom">\(52\)</td>
625+
<td class="dark border-bottom">\(71\)</td> </tr>
626+
<tr>
627+
<td class="dark border-right">\(\chi(n)\)</td>
628+
<td class="light">\(-1\)</td>
629+
<td class="dark">\(-1\)</td> </tr>
630+
</tbody>
631+
</table>
632+
"""
633+
assert (character_values_table in data)
634+
635+
# An embedded newform
636+
data = self.tc.get('/ModularForm/GL2/Q/holomorphic/119/1/d/a/118/1/').get_data(as_text=True)
637+
character_values_table = r"""
638+
<table class="ntdata">
639+
<tbody>
640+
<tr>
641+
<td class="dark border-right border-bottom">\(n\)</td>
642+
<td class="light border-bottom">\(52\)</td>
643+
<td class="dark border-bottom">\(71\)</td> </tr>
644+
<tr>
645+
<td class="dark border-right">\(\chi(n)\)</td>
646+
<td class="light">\(-1\)</td>
647+
<td class="dark">\(-1\)</td> </tr>
648+
</tbody>
649+
</table>
650+
"""
651+
assert (character_values_table in data)

lmfdb/classical_modular_forms/web_newform.py

+3
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@ def __init__(self, data, space=None, all_m=False, all_n=False, embedding_label=N
185185
if self.dim == 1:
186186
# avoid using mf_hecke_nf when the dimension is 1
187187
vals = ConreyCharacter(self.level, db.char_dirichlet.lookup("%s.%s" % (self.level,self.char_orbit_label),projection="first")).values_gens
188+
# ConreyCharacter.values_gens returns the exponent of character values,
189+
# But we need the character values themselves here when hecke_ring_cyclotomic_generator is unspecified.
190+
vals = [[v[0],[1] if v[1] == 0 else [-1]] for v in vals]
188191
eigenvals = { 'hecke_ring_cyclotomic_generator': 0, 'hecke_ring_character_values': vals, 'hecke_ring_power_basis': True, 'maxp': previous_prime(len(self.traces)+1), 'an': self.traces }
189192
else:
190193
eigenvals = db.mf_hecke_nf.lucky({'hecke_orbit_code': self.hecke_orbit_code}, ['an'] + hecke_cols)

0 commit comments

Comments
 (0)