Skip to content

Commit

Permalink
Merge pull request #6218 from AndrewVSutherland/main
Browse files Browse the repository at this point in the history
Resolves #6215
  • Loading branch information
AndrewVSutherland authored Oct 27, 2024
2 parents c20d637 + ec4c379 commit 487512a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
2 changes: 1 addition & 1 deletion lmfdb/classical_modular_forms/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -1184,7 +1184,7 @@ def dimension_space_search(info, query):
short_title="character"),
MathCol("char_order", "character.dirichlet.order", r"$\operatorname{ord}(\chi)$", short_title="character order"),
MathCol("dim", "cmf.display_dim", "Dim.", short_title="dimension"),
MathCol("num_forms", "cmf.galois_oribit", "Orbits", short_title="Galois orbits"),
MathCol("num_forms", "cmf.galois_orbit", "Orbits", short_title="Galois orbits"),
MultiProcessedCol("decomp", "cmf.dim_decomposition", "Decomposition", ["level", "weight", "char_orbit_label", "hecke_orbit_dims"], display_decomp, align="center", short_title="decomposition", td_class=" nowrap"),
MultiProcessedCol("al_dims", "cmf.atkin_lehner_dims", "AL-decomposition.", ["level", "weight", "ALdims"], display_ALdims, contingent=show_ALdims_col, short_title="AL-decomposition", align="center", td_class=" nowrap")])

Expand Down
16 changes: 10 additions & 6 deletions lmfdb/classical_modular_forms/web_space.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,19 +294,23 @@ def make_oldspace_data(newspace_label, char_conductor, prim_orbit_index):
level = int(newspace_label.split('.')[0])
weight = int(newspace_label.split('.')[1])
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}
sub_chars = {char['modulus'] : char for char in db.char_dirichlet.search({'modulus':{'$in':sub_level_list}, 'conductor':char_conductor, 'primitive_orbit':prim_orbit_index})}
if weight == 1:
newspace_dims = {rec['level']: rec['dim'] for rec in db.mf_newspaces.search({'weight': weight, '$or': [{'level': sub_level, 'char_orbit_index': sub_chars[sub_level]['orbit']} for sub_level in sub_level_list]}, ['level', 'dim'])}
oldspaces = []
for sub_level in sub_level_list:
entry = {}
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'] = 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
oldspaces.append(entry)
# only include subspaces with positive dimension (computed on the fly unless with weight is 1)
if weight == 1:
if newspace_dims[sub_level] > 0:
oldspaces.append(entry)
else:
if int(gp('mfdim([%i, %i, znchar(Mod(%i,%i))], 0)' % (sub_level, weight, entry['sub_conrey_index'], sub_level))) > 0:
oldspaces.append(entry)
return oldspaces

class WebNewformSpace():
Expand Down

0 comments on commit 487512a

Please sign in to comment.