Пример #1
0
def dirchar_data(label):
    if label.count(".") == 2:
        modulus, orbit_label, number = label.split(".")
        title = f"Dirichlet character data - {modulus}.{number}"
        tail = [(f"{modulus}.{number}",
                 url_for(".render_Dirichletwebpage",
                         modulus=modulus,
                         number=number)), ("Data", " ")]
        return datapage([f"{modulus}.{orbit_label}", f"{modulus}.{number}"],
                        ["char_dir_orbits", "char_dir_values"],
                        title=title,
                        bread=bread(tail),
                        label_cols=["label", "label"])
    elif label.count(".") == 1:
        modulus, orbit_label = label.split(".")
        title = f"Dirichlet character data - {modulus}.{orbit_label}"
        tail = [(label,
                 url_for(".render_Dirichletwebpage",
                         modulus=modulus,
                         orbit_label=orbit_label)), ("Data", " ")]
        return datapage(label,
                        "char_dir_orbits",
                        title=title,
                        bread=bread(tail))
    else:
        return abort(404, f"Invalid label {label}")
Пример #2
0
def hgm_data(label):
    bread = get_bread([(label, url_for_label(label)), ("Data", " ")])
    if HGM_LABEL_RE.match(label):
        title = f"Hypergeometric motive data - {label}"
        fam_label = label.split("_t")[0]
        return datapage([label, fam_label], ["hgm_motives", "hgm_families"],
                        bread=bread,
                        title=title)
    elif HGM_FAMILY_LABEL_RE.match(label):
        title = f"Hypergeometric motive family data - {label}"
        return datapage(label, "hgm_families", bread=bread, title=title)
    else:
        return abort(404, f"Invalid label {label}")
Пример #3
0
def EC_data(label):
    bread = get_bread([(label, url_for_label(label)), ("Data", " ")])
    if match_lmfdb_label(label):
        conductor, iso_class, number = split_lmfdb_label(label)
        if not number: # isogeny class
            return datapage(label, ["ec_classdata", "ec_padic"], bread=bread, label_col="lmfdb_iso", sorts=[[], ["p"]])
        iso_label = class_lmfdb_label(conductor, iso_class)
        labels = [label] * 8
        label_cols = ["lmfdb_label"] * 8
        labels[1] = labels[7] = iso_label
        label_cols[1] = label_cols[7] = "lmfdb_iso"
        sorts = [[], [], [], [], ["degree", "field"], ["prime"], ["prime"], ["p"]]
        return datapage(labels, ["ec_curvedata", "ec_classdata", "ec_mwbsd", "ec_iwasawa", "ec_torsion_growth", "ec_localdata", "ec_galrep", "ec_padic"], title=f"Elliptic curve data - {label}", bread=bread, label_cols=label_cols, sorts=sorts)
    return abort(404, f"Invalid label {label}")
Пример #4
0
def G2C_data(label):
    if not LABEL_RE.fullmatch(label):
        return abort(404, f"Invalid label {label}")
    bread = get_bread([(label, url_for_curve_label(label)), ("Data", " ")])
    sorts = [[], [], [], ["prime"], ["p"], []]
    label_cols = ["label", "label", "label", "lmfdb_label", "label", "label"]
    return datapage(label, ["g2c_curves", "g2c_endomorphisms", "g2c_ratpts", "g2c_galrep", "g2c_tamagawa", "g2c_plots"], title=f"Genus 2 curve data - {label}", bread=bread, sorts=sorts, label_cols=label_cols)
Пример #5
0
def artin_data(label):
    poly = db.artin_reps.lookup(label, "NFGal")
    if poly is None:
        return abort(404, f"Invalid label {label}")
    bread = get_bread([(label, url_for_label(label)), ("Data", " ")])
    return datapage([label, poly], ["artin_reps", "artin_field_data"],
                    bread=bread,
                    title=f"Artin representation data - {label}",
                    label_cols=["Baselabel", "Polynomial"])
Пример #6
0
def AV_data(label):
    if not lmfdb_label_regex.fullmatch(label):
        return abort(404, f"Invalid label {label}")
    bread = get_bread((label, url_for_label(label)), ("Data", " "))
    extension_labels = list(db.av_fq_endalg_factors.search({"base_label": label}, "extension_label", sort=["extension_degree"]))
    tables = ["av_fq_isog", "av_fq_endalg_factors"] + ["av_fq_endalg_data"] * len(extension_labels)
    labels = [label, label] + extension_labels
    label_cols = ["label", "base_label"] + ["extension_label"] * len(extension_labels)
    sorts = [[], ["extension_degree"]] + [[]] * len(extension_labels)
    return datapage(labels, tables, title=f"Abelian variety isogeny class data - {label}", bread=bread, label_cols=label_cols, sorts=sorts)
Пример #7
0
def hgcwa_data(label):
    if label_is_one_family(label):
        label_col = "label"
        title = f"Higher genus family - {label}"
    elif label_is_one_passport(label):
        label_col = "passport_label"
        title = f"Higher genus passport - {label}"
    else:
        return abort(404, f"Invalid label {label}")
    bread = get_bread([(label, url_for_label(label)), ("Data", " ")])
    return datapage(label, "hgcwa_passports", title=title, bread=bread, label_cols=[label_col])
Пример #8
0
def belyi_data(label):
    bread = get_bread([(label, url_for_label(label)), ("Data", " ")])
    if label.count("-") == 1: # passport label length
        labels = [label, label]
        label_cols = ["plabel", "plabel"]
        tables = ["belyi_passports_fixed", "belyi_galmaps_fixed"]
    elif label.count("-") == 2: # galmap label length
        labels = [label, "-".join(label.split("-")[:-1]), label]
        label_cols = ["label", "plabel", "label"]
        tables = ["belyi_galmaps_fixed", "belyi_passports_fixed", "belyi_galmap_portraits"]
    else:
        return abort(404, f"Invalid label {label}")
    return datapage(labels, tables, title=f"Belyi map data - {label}", bread=bread, label_cols=label_cols)
Пример #9
0
def maass_data(label):
    if not MAASS_ID_RE.fullmatch(label):
        return abort(404, f"Invalid id {label}")
    title = f"Maass form data - {label}"
    bread = [("Modular forms", url_for("modular_forms")),
             ("Maass", url_for(".index")),
             (label, url_for(".by_label", label=label)), ("Data", " ")]
    tables = ["maass_newforms", "maass_portraits"]
    label_cols = ["maass_id", "maass_id"]
    return datapage(label,
                    tables,
                    bread=bread,
                    title=title,
                    label_cols=label_cols)
Пример #10
0
def bmf_data(label):
    pieces = label.split("-")
    if len(pieces) == 2:
        url = url_for(".render_bmf_space_webpage",
                      field_label=pieces[0],
                      level_label=pieces[1])
        title = f"Bianchi modular space data - {label}"
        table = "bmf_dims"
    elif len(pieces) == 3:
        url = url_for_label(label)
        title = f"Bianchi modular form data - {label}"
        table = "bmf_forms"
    else:
        return abort(404, f"Invalid label {label}")
    bread = get_bread([(label, url), ("Data", " ")])
    return datapage(label, table, title=title, bread=bread)
Пример #11
0
def gg_data(label):
    if not re.fullmatch(r'\d+T\d+', label):
        return abort(404, f"Invalid label {label}")
    bread = get_bread([(label, url_for_label(label)), ("Data", " ")])
    title = f"Transitive group data - {label}"
    return datapage(label, "gps_transitive", title=title, bread=bread)
Пример #12
0
def lattice_data(label):
    if not lattice_label_regex.fullmatch(label):
        return abort(404, f"Invalid label {label}")
    bread = get_bread([(label, url_for_label(label)), ("Data", " ")])
    title = f"Lattice data - {label}"
    return datapage(label, "lat_lattices", title=title, bread=bread)