Skip to content

Commit de3cec0

Browse files
committed
Merge branch 'main' into bmf0curves
2 parents ee5284d + f5aa205 commit de3cec0

File tree

13 files changed

+81
-97
lines changed

13 files changed

+81
-97
lines changed

StyleGuide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ contains other conventions and information for the development process.
4545

4646
- Object page templates should extend homepage.html and include a content block.
4747
- Every object page should have a properties box, and when relevant/available, a related objects box, and a downloads box.
48-
- Content should be organized intos sections (with`<h2>` headings). The first section should contain the information that defines the object, the second section should contain standard invariants associated to the object, and from there they should be ordered from least to most technical/obscure.
48+
- Content should be organized into sections (with`<h2>` headings). The first section should contain the information that defines the object, the second section should contain standard invariants associated to the object, and from there they should be ordered from least to most technical/obscure.
4949
- Content tables that are lists (each row is the same type of thing, e.g. local data at a prime) should use row striping (ntdata table).
5050
- Content captions should be knowls (or contain a knowl) and be followed by colons.
5151
- Any invariant listed in the properties box should also appear in the body (or header) of the page -- all information should be visible even with the property box closed.

lmfdb/api2/searchers.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ def register_search_function(name, human_name, description, auto_search=None, fu
7373
Only populate if you want to have full control over the search return
7474
7575
"""
76-
global searchers
7776
searchers[name] = searcher(human_name, description, auto_search=auto_search, full_info=full_info, full_inventory=full_inventory, full_search=full_search, inv=inv)
7877

7978

@@ -90,6 +89,5 @@ def register_singleton(url, table, key=None, simple_search=None, full_search=Non
9089
full_search -- A function that performs a search itself and returns the results
9190
"""
9291

93-
global singletons
9492
singletons[url] = {'table':table, 'key':key,
9593
'simple_search':simple_search, 'full_search':full_search}

lmfdb/bianchi_modular_forms/bianchi_modular_form.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,19 @@ def index():
6464
"""
6565
info = to_dict(request.args, search_array=BMFSearchArray(), stats=BianchiStats())
6666
if not request.args:
67-
gl2_fields = ["2.0.{}.1".format(d) for d in [4,8,3,20,24,7,40,11,52,56,15,68,19,84,88,23]]#,31,35,39,43,47,51,53,55,59,67,71,79,83,87,91,95,163]]
68-
sl2_fields = ["2.0.{}.1".format(d) for d in [4,8,3,20,7,11,19,43,67,163]]
69-
gl2_names = [r"\(\Q(\sqrt{-%s})\)" % d for d in [1,2,3,5,6,7,10,11,13,14,15,17,19,21,22,23]]#,31,35,39,43,47,51,53,55,59,67,71,79,83,87,91,95,163]]
70-
sl2_names = [r"\(\Q(\sqrt{-%s})\)" % d for d in [1,2,3,5,7,11,19,43,67,163]]
67+
gl2_fields = [f"2.0.{d}.1" for d in [4,8,3,20,24,7,40,11,52,56,15,68,19,84,88,23]]
68+
gl2_forms_max = "2.0.2491.1"
69+
gl2_forms_max_name = r"\(\Q(\sqrt{-2491})\)"
70+
gl2_dims_max = "2.0.2495.1"
71+
gl2_dims_max_name = r"\(\Q(\sqrt{-2495})\)"
72+
sl2_fields = [f"2.0.{d}.1" for d in [4,8,3,20,7,11,19,43,67,163]]
73+
gl2_names = [r"\(\Q(\sqrt{-{%s}})\)" % d for d in [1,2,3,5,6,7,10,11,13,14,15,17,19,21,22,23]]
74+
sl2_names = [r"\(\Q(\sqrt{-{%s}})\)" % d for d in [1,2,3,5,7,11,19,43,67,163]]
7175
info['gl2_field_list'] = [{'url':url_for("bmf.render_bmf_field_dim_table_gl2", field_label=f), 'name':n} for f,n in zip(gl2_fields,gl2_names)]
7276
info['sl2_field_list'] = [{'url':url_for("bmf.render_bmf_field_dim_table_sl2", field_label=f), 'name':n} for f,n in zip(sl2_fields,sl2_names)]
7377
info['field_forms'] = [{'url':url_for("bmf.index", field_label=f), 'name':n} for f,n in zip(gl2_fields,gl2_names)]
78+
info['last_field_forms'] = {'url':url_for("bmf.index", field_label=gl2_forms_max), 'name':gl2_forms_max_name}
79+
info['last_field_dims'] = {'url':url_for("bmf.render_bmf_field_dim_table_gl2", field_label=gl2_dims_max), 'name':gl2_dims_max_name}
7480

7581
t = 'Bianchi modular forms'
7682
bread = get_bread()

lmfdb/bianchi_modular_forms/templates/bmf-browse.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ <h2> Browse </h2>
1010
<table class="browse">
1111
<tr>
1212
<td>{{ KNOWL('mf.bianchi.newform', 'Newforms')}} by base field:</td>
13-
<td>{% for f in info.field_forms %} <a href={{f.url}}>{{f.name}}</a>&nbsp;&nbsp; {%-endfor %} ...</td>
13+
<td>{% for f in info.field_forms %} <a href={{f.url}}>{{f.name}}</a>&nbsp; {%-endfor %} ... <a href={{info.last_field_forms.url}}>{{info.last_field_forms.name}}</a></td>
1414
</tr><tr>
1515
<td>{{ KNOWL('mf.bianchi.level', '\(\GL_2\)')}} {{ KNOWL('mf.bianchi.spaces', 'newform spaces')}} by base field:</td>
16-
<td>{% for f in info.gl2_field_list %} <a href={{f.url}}>{{f.name}}</a>&nbsp;&nbsp; {% endfor %} ...</td>
16+
<td>{% for f in info.gl2_field_list %} <a href={{f.url}}>{{f.name}}</a>&nbsp; {% endfor %} ... <a href={{info.last_field_dims.url}}>{{info.last_field_dims.name}}</a></td>
1717
</tr><tr>
1818
<td>{{ KNOWL('mf.bianchi.level', '\(\SL_2\)')}} {{ KNOWL('mf.bianchi.spaces', 'newform spaces')}} by base field:</td>
19-
<td>{% for f in info.sl2_field_list %} <a href={{f.url}}>{{f.name}}</a>&nbsp;&nbsp; {% endfor %}</td>
19+
<td>{% for f in info.sl2_field_list %} <a href={{f.url}}>{{f.name}}</a>&nbsp; {% endfor %}</td>
2020
</tr><tr>
2121
<td colspan="2">Some <a href="{{url_for('.interesting')}}">interesting Bianchi modular forms</a> or a <a href={{url_for('.random_bmf')}}>random Bianchi modular form</a></td>
2222
</tr>

lmfdb/classical_modular_forms/download.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ def _magma_MakeCharacters(self, newform, hecke_nf):
492492
self.explain.append(explain)
493493
out += [
494494
explain,
495-
'function MakeCharacter_%d_%s_Hecke( : Kf := None)' % (newform.level, newform.char_orbit_label),
495+
'function MakeCharacter_%d_%s_Hecke( : Kf := false)' % (newform.level, newform.char_orbit_label),
496496
' ' + magma.assign('N', level).rstrip('\n'), # level
497497
' ' + magma.assign('order', order).rstrip('\n'), # order of the character
498498
' ' + magma.assign('char_gens', char_gens).rstrip('\n'), # generators

lmfdb/galois_groups/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,8 +277,6 @@ def render_group_webpage(args):
277277
data['parity'] = "$%s$" % data['parity']
278278
data['subinfo'] = subfield_display(n, data['subfields'])
279279
data['resolve'] = resolve_display(data['quotients'])
280-
gp_label = data['abstract_label']
281-
data['groupid'] = abstract_group_display_knowl(gp_label, gp_label)
282280
data['otherreps'] = wgg.otherrep_list()
283281
ae = data['arith_equiv']
284282
if ae > 0:
@@ -325,6 +323,8 @@ def render_group_webpage(args):
325323
if len(pretty) > 0:
326324
prop2.extend([('Group:', pretty)])
327325
data['pretty_name'] = pretty
326+
gp_label = data['abstract_label']
327+
data['groupid'] = abstract_group_display_knowl(gp_label, pretty if pretty else gp_label)
328328
data['name'] = re.sub(r'_(\d+)',r'_{\1}',data['name'])
329329
data['name'] = re.sub(r'\^(\d+)',r'^{\1}',data['name'])
330330
data['nilpotency'] = '$%s$' % data['nilpotency']

lmfdb/galois_groups/templates/gg-show-group.html

Lines changed: 46 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -10,63 +10,71 @@
1010
}
1111
</style>
1212

13-
<p> {{ place_code('gg') }}</p>
14-
<p><h2>{{ KNOWL('gg.group_action_invariants', title='Group action invariants') }}</h2>
13+
<p> {{ place_code('gg') }}</p>
14+
15+
<h2> {{ KNOWL('gg.invariants', title='Group invariants') }}</h2>
16+
<div>
1517
<table>
16-
<tr><td>{{KNOWL('gg.degree', 'Degree')}} $n$:<td>&nbsp;&nbsp;<td>${{info.n}}$</td>
17-
<td>{{ place_code('n') }}</td></tr>
18+
<tr><td>{{KNOWL('group.small_group_label','Abstract group')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.groupid | safe}}</td>
19+
<td>{{place_code('id')}}</td></tr>
20+
<tr><td>{{KNOWL('group.order','Order')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.ordermsg }}</td>
21+
<td>{{place_code('order')}}</td></tr>
22+
<tr><td>{{KNOWL('group.cyclic','Cyclic')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.yesno(info.cyc)}}</td>
23+
<td>{{place_code('cyclic')}}</td></tr>
24+
<tr><td>{{KNOWL('group.abelian', 'Abelian')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.yesno(info.ab)}}</td>
25+
<td>{{place_code('abelian')}}</td></tr>
26+
<tr><td>{{KNOWL('group.solvable', 'Solvable')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.yesno(info.solv)}}</td>
27+
<td>{{place_code('solvable')}}</td></tr>
28+
<tr><td class="nowrap">{{KNOWL('group.nilpotent', 'Nilpotency class')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.nilpotency}}</td><td>{{ place_code('nilpotent') }}</td></tr>
29+
</table>
30+
</div>
31+
32+
<h2>{{ KNOWL('gg.group_action_invariants', title='Group action invariants') }}</h2>
33+
<table>
34+
<tr><td>{{KNOWL('gg.degree', 'Degree')}} $n$:</td><td>&nbsp;&nbsp;</td><td>${{info.n}}$</td>
35+
<td>{{ place_code('n') }}</td></tr>
1836
<tr><td class="nowrap">{{KNOWL('gg.tnumber', 'Transitive number')}} $t$:<td>&nbsp;&nbsp;<td>${{info.t}}$</td>
19-
<td>{{ place_code('t') }}</td></tr>
20-
{% if info.pretty_name %}
21-
<tr><td>{{KNOWL('gg.simple_name', title='Group')}}:<td>&nbsp;&nbsp;<td>{{info.pretty_name}}</tr>
22-
{% endif %}
37+
<td>{{ place_code('t') }}</td></tr>
2338
{% if info.n < 16 %}
24-
<tr><td>{{KNOWL('gg.conway_name', title='CHM label')}}:<td>&nbsp;&nbsp;<td>
39+
<tr><td>{{KNOWL('gg.conway_name', title='CHM label')}}:</td><td>&nbsp;&nbsp;</td><td>
2540
{% if info.n == 1 %}
2641
{{info.name}}
2742
{% else %}
2843
${{info.name}}$
2944
{% endif %}
30-
</tr>
45+
</td></tr>
3146
{% endif %}
32-
<tr><td>{{KNOWL('gg.parity','Parity')}}:<td>&nbsp;&nbsp;<td>{{info.parity}}
47+
<tr><td>{{KNOWL('gg.parity','Parity')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.parity}}</td>
3348
<td>{{ place_code('even') }}</td></tr>
34-
<tr><td>{{KNOWL('gg.primitive', 'Primitive')}}:<td>&nbsp;&nbsp;<td>{{info.yesno(info.prim)}}</td>
49+
<tr><td>{{KNOWL('gg.primitive', 'Primitive')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.yesno(info.prim)}}</td>
3550
<td>{{ place_code('primitive') }}</td></tr>
36-
<td>{{ place_code('nilpotent') }}</td></tr>
37-
<tr><td class="nowrap">{{KNOWL('gg.field_automorphisms', '$\card{\Aut(F/K)}$')}}:<td>&nbsp;&nbsp;<td>${{info.auts}}$</td>
51+
<tr><td class="nowrap">{{KNOWL('gg.field_automorphisms', '$\card{\Aut(F/K)}$')}}:</td><td>&nbsp;&nbsp;</td><td>${{info.auts}}$</td>
3852
<td>{{ place_code('auts') }}</td></tr>
39-
<tr><td>{{KNOWL('group.generators', 'Generators')}}:<td>&nbsp;&nbsp;<td>{{info.gens}}
53+
<tr><td>{{KNOWL('group.generators', 'Generators')}}:</td><td>&nbsp;&nbsp;</td><td>{{info.gens}}</td>
4054
<td>{{ place_code('gens') }}</td></tr>
4155
</table>
42-
</p>
4356

44-
<p><h2>{{KNOWL('gg.resolvents', 'Low degree resolvents')}}</h2>
57+
<h2>{{KNOWL('gg.resolvents', 'Low degree resolvents')}}</h2>
4558
<blockquote>
4659
{{info.resolve|safe}}
4760

48-
<p> Resolvents shown for degrees $\leq {{info.wgg.quotient_bound()}}$
61+
<p>Resolvents shown for degrees $\leq {{info.wgg.quotient_bound()}}$</p>
4962
</blockquote>
5063

51-
<p><h2>{{ KNOWL('gg.subfields', title='Subfields') }}</h2>
52-
<p>
64+
<h2>{{ KNOWL('gg.subfields', title='Subfields') }}</h2>
5365
<blockquote>
5466
{{info.subinfo|safe}}
5567
</blockquote>
56-
</p>
5768

58-
<p><h2>{{ KNOWL('gg.other_representations', title='Low degree siblings') }}</h2>
59-
<p>
69+
<h2>{{ KNOWL('gg.other_representations', title='Low degree siblings') }}</h2>
6070
<blockquote>
6171
{{info.otherreps|safe}}
6272
</blockquote>
6373
<blockquote>
6474
{{info.arith_equiv|safe}}
6575
</blockquote>
66-
</p>
6776

68-
<p><h2>{{ KNOWL('gg.conjugacy_classes', title='Conjugacy classes') }}</h2>
69-
<p>
77+
<h2>{{ KNOWL('gg.conjugacy_classes', title='Conjugacy classes') }}</h2>
7078

7179
{% if info.cclasses is defined %}
7280
<table class="ntdata">
@@ -85,9 +93,9 @@
8593
</tbody>
8694
</table>
8795
<p>
88-
{{KNOWL('gg.malle_a', "Malle's constant $a(G)$")}}: &nbsp; &nbsp;
96+
{{KNOWL('gg.malle_a', "Malle's constant $a(G)$")}}: &nbsp; &nbsp;
8997
{% if info.malle_a is not none %}
90-
${{info.malle_a}}$
98+
${{info.malle_a}}$
9199
{% else %}
92100
not computed
93101
{% endif %}
@@ -99,64 +107,39 @@
99107
</p>
100108
<p>{{ place_code('ccs') }}</p>
101109

102-
103-
104-
<p><h2> {{ KNOWL('gg.invariants', title='Group invariants') }}</h2>
105-
<div>
106-
<table>
107-
<tr><td>{{KNOWL('group.order','Order')}}:<td>&nbsp;&nbsp;<td>{{info.ordermsg }}</td>
108-
<td>{{place_code('order')}}</td></tr>
109-
<tr><td>{{KNOWL('group.cyclic','Cyclic')}}:<td>&nbsp;&nbsp;<td>{{info.yesno(info.cyc)}}</td>
110-
<td>{{place_code('cyclic')}}</td></tr>
111-
<tr><td>{{KNOWL('group.abelian', 'Abelian')}}:<td>&nbsp;&nbsp;<td>{{info.yesno(info.ab)}}</td>
112-
<td>{{place_code('abelian')}}</td></tr>
113-
<tr><td>{{KNOWL('group.solvable', 'Solvable')}}:<td>&nbsp;&nbsp;<td>{{info.yesno(info.solv)}}</td>
114-
<td>{{place_code('solvable')}}</td></tr>
115-
<tr><td class="nowrap">{{KNOWL('group.nilpotent', 'Nilpotency class')}}:<td>&nbsp;&nbsp;<td>{{info.nilpotency}}</td>
116-
<tr><td>{{KNOWL('group.small_group_label','Label')}}:<td>&nbsp;&nbsp;<td>{{info.groupid | safe}}
117-
<td>{{place_code('id')}}</td></tr>
118-
<tr><td>{{KNOWL('group.complex_character_table', 'Character table')}}:
110+
<h2>{{KNOWL('group.complex_character_table', 'Character table')}}</h2>
119111
{% if not info.wgg.can_chartable %}
120-
<td>&nbsp;&nbsp;
121-
<td> not computed
122-
</table> </div> </p>
112+
<p>Character table not computed</p>
123113
{% elif info.chartable %}
124-
</table>
125-
</div>
126-
</p>
127-
<p>
128-
{% include 'character-table.html' %}
114+
{% include 'character-table.html' %}
129115
{% else %}
130-
<td>&nbsp;&nbsp;
131-
<td>
132-
{{ info.chartable_knowl | safe }}
133-
</table> </div> </p>
116+
{{ info.chartable_knowl | safe }}
134117
{% endif %}
135118

136119
<p>{{place_code('char_table')}}</p>
137120

121+
138122
{% if info.int_reps %}
139-
<p><h2>{{ KNOWL('gg.int_modules', title='Indecomposable integral representations') }}</h2>
140-
</p>
123+
<h2>{{ KNOWL('gg.int_modules', title='Indecomposable integral representations') }}</h2>
141124
<table>
142-
<tr><td>
125+
<tr><td>
143126
{% if info['int_reps_complete'] > 0 %}
144-
Complete
127+
Complete
145128
{% else %}
146129
Partial
147130
{% endif %}
148131
list of indecomposable integral representations:
149132
<p>
150133
<div>
151134
<table class="ntdata reptable">
152-
<tr><th>{{ KNOWL('gg.int_modules.names', title='Name') }}</th> <th>Dim</th>
135+
<tr><th>{{ KNOWL('gg.int_modules.names', title='Name') }}</th> <th>Dim</th>
153136
{% for gen in info['int_rep_classes'] %}
154137
<th> ${{ gen | safe }} \mapsto $ </th>
155138
{% endfor %}
156139
</tr>
157140
{% for rep in info['int_reps'] %}
158141
<tr>
159-
<td> {{ rep['name'] | safe }} </td> <td> ${{rep['dim'] }}$ </td>
142+
<td> {{ rep['name'] | safe }} </td> <td> ${{rep['dim'] }}$ </td>
160143
{% for gen in rep['gens'] %}
161144
<td> ${{ gen | safe }}$ </td>
162145
{% endfor %}

lmfdb/galois_groups/transitive_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ def generator_string(self):
150150
if str(self.n()) == "1":
151151
return "None needed"
152152
gens = self.gens()
153-
gens = [cyclestrings(g) for g in gens]
153+
gens = ['$'+cyclestrings(g)+'$' for g in gens]
154154
gens = ', '.join(gens)
155155
return gens
156156

lmfdb/higher_genus_w_automorphisms/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ def expr_error(err):
292292
return err_msg
293293

294294
def expr_getc():
295-
global cur_expr, cur_index
295+
global cur_index
296296
while cur_index < len(cur_expr):
297297
result = cur_expr[cur_index]
298298
cur_index += 1

lmfdb/homepage/index_boxes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ content: <ul>
3131
<li><a href="https://github.com/LMFDB/lmfdb">Source code repository</li>
3232
<li><a href="/management">Editorial board</li>
3333
<li><a href="/acknowledgment">Acknowledgments</li>
34-
<li><a href="/acknowledgement/activities">Activities</li>
34+
<li><a href="/acknowledgment/activities">Activities</li>
3535
</ul>
3636
control: 0
3737
links:

0 commit comments

Comments
 (0)