g2c_columns = SearchColumns([ LinkCol("label", "g2c.label", "Label", url_for_curve_label, default=True), ProcessedLinkCol( "class", "g2c.isogeny_class", "Class", lambda v: url_for_isogeny_class_label(class_from_curve_label(v)), class_from_curve_label, default=True, orig="label"), ProcessedCol("eqn", "g2c.minimal_equation", "Equation", lambda v: min_eqn_pretty(literal_eval(v)), default=True, mathmode=True), ProcessedCol("st_group", "g2c.st_group", "Sato-Tate", lambda v: st_link_by_name(1, 4, v), default=True, align="center"), CheckCol("is_simple_geom", "ag.geom_simple", r"\(\overline{\Q}\)-simple", default=True), CheckCol("is_gl2_type", "g2c.gl2type", r"\(\GL_2\)", default=True), MathCol("analytic_rank", "g2c.analytic_rank", "Rank*", default=True) ])
shortcuts={ "jump": genus2_jump, "download": G2C_download() }, projection=[ "label", "eqn", "st_group", "is_gl2_type", "is_simple_geom", "analytic_rank", ], cleaners={ "class": lambda v: class_from_curve_label(v["label"]), "equation_formatted": lambda v: min_eqn_pretty(literal_eval(v.pop("eqn"))), "st_group_link": lambda v: st_link_by_name(1, 4, v.pop("st_group")), }, bread=lambda: get_bread("Search results"), learnmore=learnmore_list, credit=lambda: credit_string, url_for_label=lambda label: url_for(".by_label", label=label), ) def genus2_curve_search(info, query): parse_ints(info, query, 'abs_disc', 'absolute discriminant') parse_bool(info, query, 'is_gl2_type', 'is of GL2-type') parse_bool(info, query, 'has_square_sha', 'has square Sha') parse_bool(info, query, 'locally_solvable', 'is locally solvable') parse_bool(info, query, 'is_simple_geom', 'is geometrically simple') parse_ints(info, query, 'cond', 'conductor') if info.get('analytic_sha') == "None":
CheckCol("is_simple_geom", "ag.geom_simple", r"\(\overline{\Q}\)-simple", short_title="Qbar-simple"), MathCol("aut_grp_tex", "g2c.aut_grp", r"\(\Aut(X)\)", short_title="Q-automorphisms"), MathCol("geom_aut_grp_tex", "g2c.geom_aut_grp", r"\(\Aut(X_{\overline{\Q}})\)", short_title="Qbar-automorphisms"), MathCol("num_rat_pts", "g2c.all_rational_points", r"$\Q$-points", short_title="Q-points*"), MathCol("num_rat_wpts", "g2c.num_rat_wpts", r"$\Q$-Weierstrass points", short_title="Q-Weierstrass points"), CheckCol("locally_solvable", "g2c.locally_solvable", "Locally solvable"), CheckCol("has_square_sha", "g2c.analytic_sha", "Square ле*"), MathCol("analytic_sha", "g2c.analytic_sha", "Analytic ле*"), ProcessedCol("tamagawa_product", "g2c.tamagawa", "Tamagawa", lambda v: web_latex(factor(v)), short_title="Tamagawa product", align="center"), ProcessedCol("regulator", "g2c.regulator", "Regulator", lambda v: r"\(%.6f\)"%v, align="right"), ProcessedCol("real_period", "g2c.real_period", "Real period", lambda v: r"\(%.6f\)"%v, align="right"), ProcessedCol("leading_coeff", "g2c.bsd_invariants", "Leading coefficient", lambda v: r"\(%.6f\)"%v, align="right"), ProcessedCol("igusa_clebsch_inv", "g2c.igusa_clebsch_invariants", "Igusa-Clebsch invariants", lambda v: v.replace("'",""), short_title="Igusa-Clebsch invariants", mathmode=True), ProcessedCol("igusa_inv", "g2c.igusa_invariants", "Igusa invariants", lambda v: v.replace("'",""), short_title="Igusa invariants", mathmode=True), ProcessedCol("g2_inv", "g2c.g2_invariants", "G2-invariants", lambda v: v.replace("'",""), short_title="G2-invariants", mathmode=True), ProcessedCol("eqn", "g2c.minimal_equation", "Equation", lambda v: min_eqn_pretty(literal_eval(v)), default=True, mathmode=True), ]) @search_wrap( table=db.g2c_curves, title="Genus 2 curve search results", err_title="Genus 2 curves search input error", shortcuts={"jump": genus2_jump, "download": G2C_download()}, columns=g2c_columns, bread=lambda: get_bread("Search results"), learnmore=learnmore_list, url_for_label=lambda label: url_for(".by_label", label=label), ) def genus2_curve_search(info, query): parse_ints(info, query, "abs_disc", "absolute discriminant") parse_bool(info, query, "is_gl2_type", "is of GL2-type")