default=True), MathCol("level_norm", "mf.level_norm", "Level norm"), MathCol("weight", "mf.hilbert.weight_vector", "Weight"), MathCol("dimension", "mf.hilbert.dimension", "Dimension", default=True), ProcessedCol("is_CM", "mf.cm", "CM", lambda cm: "✓" if cm == "yes" else "", align="center"), ProcessedCol("is_base_change", "mf.base_change", "Base change", lambda bc: "✓" if bc == "yes" else "", align="center") ]) hmf_columns.dummy_download = True @search_wrap(table=db.hmf_forms, title='Hilbert modular form search results', err_title='Hilbert modular form search error', columns=hmf_columns, per_page=50, shortcuts={'jump': hilbert_modular_form_jump}, bread=lambda: get_bread("Search results"), learnmore=learnmore_list, url_for_label=url_for_label, properties=lambda: []) def hilbert_modular_form_search(info, query): parse_nf_string(info, query, 'field_label', name="Field") parse_ints(info, query, 'deg', name='Field degree')
disp = r"$, \cdots ,$".join(disp) else: disp = "$,$ ".join(disp) return f'<p style="margin-top: 0px;margin-bottom:0px;">\n{disp}\n</p>' character_columns = SearchColumns([ LinkCol("label", "character.dirichlet.galois_orbit_label", "Orbit label", lambda label: label.replace(".", "/"), default=True, align="center"), MultiProcessedCol("conrey", "character.dirichlet.conrey'", "Conrey labels", ["galois_orbit", "modulus"], display_galois_orbit, default=True, align="center"), MathCol("modulus", "character.dirichlet.modulus", "Modulus", default=True), MathCol("conductor", "character.dirichlet.conductor", "Conductor", default=True), MathCol("order", "character.dirichlet.order", "Order", default=True), ProcessedCol("parity", "character.dirichlet.primitive", "Parity", lambda parity: "even" if parity == 1 else "odd", default=True), CheckCol("is_primitive", "character.dirichlet.primitive", "Primitive", default=True)]) character_columns.dummy_download = True @search_wrap( table=db.char_dir_orbits, title="Dirichlet character search results", err_title="Dirichlet character search input error", columns=character_columns, shortcuts={"jump": jump}, url_for_label=url_for_label, learnmore=learn, random_projection="label", bread=lambda: bread("Search results"), ) def dirichlet_character_search(info, query): common_parse(info, query)
return url_for(".random_abstract_group") return url_for(".by_label", label=label) def get_url(label): return url_for(".by_label", label=label) glnQ_columns = SearchColumns([ LinkCol("label", "group.label", "Label", get_url, default=True), MathCol("tex_name", "group.name", "Name", default=True), MathCol("order", "group.order", "Order", default=True), MathCol("dim", "group.dimension", "Dimension", default=True) ], db_cols=["label", "group", "order", "dim"]) glnQ_columns.dummy_download = True def glnQ_postprocess(res, info, query): tex_names = { rec["label"]: rec["tex_name"] for rec in db.gps_groups.search( {"label": { "$in": [gp["group"] for gp in res] }}, ["label", "tex_name"]) } for gp in res: gp["tex_name"] = tex_names[gp["group"]] return res
"$G$", default=True, align="center"), MathCol( "indicator", "artin.frobenius_schur_indicator", "Ind", default=True), MathCol("trace_complex_conjugation", "artin.trace_of_complex_conj", r"$\chi(c)$", default=True) ], [ "Baselabel", "GaloisConjugates", "Dim", "Conductor", "BadPrimes", "NFGal", "GaloisLabel", "Indicator", "Is_Even" ]) artin_columns.above_table = "<div>Galois conjugate representations are grouped into single lines.</div>" artin_columns.dummy_download = True @search_wrap(table=db.artin_reps, title='Artin representation search results', err_title='Artin representation search error', per_page=50, columns=artin_columns, learnmore=learnmore_list, url_for_label=url_for_label, shortcuts={'jump': artin_representation_jump}, postprocess=lambda res, info, query: [ArtinRepresentation(data=x) for x in res], bread=lambda: [('Artin representations', url_for(".index")), ('Search results', ' ')]) def artin_representation_search(info, query):