Skip to content

Commit

Permalink
Merge pull request #6027 from AndrewVSutherland/main
Browse files Browse the repository at this point in the history
Remove dependency on mf_gamma1_subspaces
  • Loading branch information
AndrewVSutherland authored May 2, 2024
2 parents 97baeb9 + 3ff6ef1 commit 0284350
Show file tree
Hide file tree
Showing 6 changed files with 7 additions and 38 deletions.
8 changes: 2 additions & 6 deletions lmfdb/classical_modular_forms/cmf_test_pages.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from lmfdb.tests import LmfdbTest
from lmfdb.lmfdb_database import LMFDBDatabase
from sage.parallel.decorate import parallel
from sage.all import ZZ, sqrt, ceil
from sage.all import ZZ, sqrt, ceil, gp
import multiprocessing
from traceback import print_exc
import logging
Expand Down Expand Up @@ -72,11 +72,7 @@ def all_newspaces(self, level, weight):
url = '/ModularForm/GL2/Q/holomorphic/%d/%d/' % (level, weight)
newspaces = list(db.mf_newspaces.search({'level':level,'weight':weight, 'char_parity':-1 if bool(weight % 2) else 1}, ['label', 'dim']))
newforms = list(db.mf_newforms.search({'level':level,'weight':weight}, ['label', 'space_label', 'dim']))
dim = db.mf_gamma1_subspaces.lucky({'level': level,
'weight': weight,
'sub_level': level,
'sub_mult': 1},
projection='sub_dim')
dim = gp("mfdim([%s,%s,-1],0)"%(level,weight))
if dim is None:
for ns in newspaces:
assert ns['dim'] == 0
Expand Down
2 changes: 1 addition & 1 deletion lmfdb/classical_modular_forms/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,7 @@ def mf_data(label):
label_cols = ["label", "label", "label", "hecke_orbit_code"]
title = f"Newspace data - {label}"
elif len(slabel) == 2:
tables = ["mf_gamma1", "mf_gamma1_subspaces", "mf_gamma1_portraits"]
tables = ["mf_gamma1", "mf_gamma1_portraits"]
labels = label
label_cols = None
title = fr"$\Gamma_1$ data - {label}"
Expand Down
1 change: 0 additions & 1 deletion lmfdb/classical_modular_forms/test_cmf.py
Original file line number Diff line number Diff line change
Expand Up @@ -551,7 +551,6 @@ def test_satake(self):
def test_underlying_data(self):
data = self.tc.get('/ModularForm/GL2/Q/holomorphic/data/13.2').get_data(as_text=True)
assert ('mf_gamma1' in data and 'newspace_dims' in data
and 'mf_gamma1_subspaces' in data and 'sub_mult' in data
and 'mf_gamma1_portraits' in data and "data:image/png;base64" in data)

data = self.tc.get('/ModularForm/GL2/Q/holomorphic/data/13.2.e').get_data(as_text=True)
Expand Down
9 changes: 4 additions & 5 deletions lmfdb/classical_modular_forms/web_space.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# See templates/space.html for how functions are called

from lmfdb import db
from sage.all import ZZ, prod, gp
from sage.all import ZZ, prod, gp, divisors, number_of_divisors
from sage.modular.dims import sturm_bound
from sage.databases.cremona import cremona_letter_code
from lmfdb.number_fields.web_number_field import nf_display_knowl, cyclolookup, rcyclolookup
Expand Down Expand Up @@ -294,7 +294,7 @@ def make_oldspace_data(newspace_label, char_conductor, prim_orbit_index):
# This creates enough of data to generate the oldspace decomposition on a newspace page
level = int(newspace_label.split('.')[0])
weight = int(newspace_label.split('.')[1])
sub_level_list = [sub_level for sub_level in ZZ(level).divisors() if (sub_level % char_conductor == 0) and sub_level != level]
sub_level_list = [sub_level for sub_level in divisors(level) if (sub_level % char_conductor == 0) and sub_level != level]
sub_chars = list(db.char_dirichlet.search({'modulus':{'$in':sub_level_list}, 'conductor':char_conductor, 'primitive_orbit':prim_orbit_index}))
sub_chars = {char['modulus'] : char for char in sub_chars}
oldspaces = []
Expand All @@ -303,7 +303,7 @@ def make_oldspace_data(newspace_label, char_conductor, prim_orbit_index):
entry['sub_level'] = sub_level
entry['sub_char_orbit_index'] = sub_chars[sub_level]['orbit']
entry['sub_conrey_index'] = sub_chars[sub_level]['first']
entry['sub_mult'] = len(ZZ(level/sub_level).divisors())
entry['sub_mult'] = number_of_divisors(level/sub_level)
if int(gp('mfdim([%i, %i, znchar(Mod(%i,%i))], 1)' % (sub_level, weight, entry['sub_conrey_index'], sub_level))) > 0:
# only include subspaces with cusp forms
# https://pari.math.u-bordeaux.fr/pub/pari/manuals/2.15.4/users.pdf p.595
Expand Down Expand Up @@ -477,8 +477,7 @@ def __init__(self, level, weight):
self.has_trace_form = (data.get('traces') is not None)
# By default we sort on char_orbit_index
newspaces = list(db.mf_newspaces.search({'level':level, 'weight':weight, 'char_parity': self.weight_parity}))
oldspaces = db.mf_gamma1_subspaces.search({'level':level, 'sub_level':{'$ne':level}, 'weight':weight}, ['sub_level','sub_mult'])
self.oldspaces = [(old['sub_level'], old['sub_mult']) for old in oldspaces]
self.oldspaces = [(sublevel, number_of_divisors(level/sublevel)) for sublevel in divisors(level)]
self.oldspaces.sort()
self.dim_grid = DimGrid.from_db(data)
self.decomp = []
Expand Down
9 changes: 0 additions & 9 deletions lmfdb/verify/mf/mf_gamma1.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,15 +140,6 @@ def check_newspaces_num_spaces(self):
# TODO: check that the number of char_orbits of level N and weight k is the same as the number of rows in mf_newspaces with this weight and level. The following doesn't work since num_spaces counts spaces with positive dimension
return self._run_crosstable(SQL("COUNT(*)"), 'mf_newspaces', 'num_spaces', ['level', 'weight'], extra=SQL(" AND t2.dim > 0"))

### mf_gamma1_subspaces ###
@overall
def check_oldspace_decomposition_totaldim(self):
"""
check that summing sub_dim * sub_mult over rows with a given label gives dim S_k(Gamma1(N))
"""
# TIME about 1s
return self.check_crosstable_dotprod('mf_gamma1_subspaces', 'cusp_dim', 'label', ['sub_mult', 'sub_dim'])

### mf_gamma1_portraits ###
@overall
def check_portraits_count(self):
Expand Down
16 changes: 0 additions & 16 deletions lmfdb/verify/mf/mf_gamma1_subspaces.py

This file was deleted.

0 comments on commit 0284350

Please sign in to comment.