def __init__(self): parity = ParityBox(name="parity", label="Parity", knowl="gg.parity", width=50, short_width=170) cyc = YesNoBox(name="cyc", label="Cyclic", knowl="group.cyclic", width=50, short_width=170) solv = YesNoBox(name="solv", label="Solvable", knowl="group.solvable", width=50, short_width=170) prim = YesNoBox(name="prim", label="Primitive", knowl="gg.primitive", width=50, short_width=170) n = TextBox(name="n", label="Degree", knowl="gg.degree", example="6", example_span="6 or 4,6 or 2..5 or 4,6..8") t = TextBox(name="t", label="$T$-number", knowl="gg.tnumber", example="3", example_span="3 or 4,6 or 2..5 or 4,6..8") order = TextBox(name="order", label="Order", knowl="group.order", example="6", example_span="6 or 4,6 or 2..35 or 4,6..80") gal = TextBoxNoEg( name="gal", label="Group", knowl="group", example="[8,3]", example_span= "list of %s, e.g. [8,3] or [16,7], group names from the %s, e.g. C5 or S12, and %s, e.g., 7T2 or 11T5" % (display_knowl("group.small_group_label", "GAP id's"), display_knowl("nf.galois_group.name", "list of group labels"), display_knowl("gg.label", "transitive group labels"))) nilpotency = TextBox(name="nilpotency", label="Nilpotency class", knowl="group.nilpotent", example="1..100", example_span="-1, or 1..3") count = TextBox(name="count", label="Results to display", example=50) self.bool_array = [[parity, cyc, solv, prim]] self.browse_array = [[n], [t], [order], [gal], [nilpotency], [count]] self.refine_array = [[parity, cyc, solv, prim], [n, t, order, gal, nilpotency]]
def __init__(self): modulus = TextBox( "modulus", knowl="character.dirichlet.modulus", label="Modulus", example="13", example_span="13", ) conductor = TextBox( "conductor", knowl="character.dirichlet.conductor", label="Conductor", example="5", example_span="5 or 10,20", ) order = TextBox("order", label="Order", knowl="character.dirichlet.order", example="2", example_span="2 or 3-5") parity = ParityBox("parity", knowl="character.dirichlet.parity", label="Parity", example="odd") is_primitive = YesNoBox("is_primitive", label="Primitive", knowl="character.dirichlet.primitive", example="yes") is_real = YesNoBox("is_real", label="Real", knowl="character.dirichlet.real", example="yes") is_minimal = YesNoBox("is_minimal", label="Minimal", knowl="character.dirichlet.minimal", example="yes") count = CountBox() self.refine_array = [ [modulus, conductor, order, is_real], [parity, is_primitive, is_minimal, count], ] self.browse_array = [ [modulus], [conductor], [order], [parity], [is_primitive], [is_real], [is_minimal], [count], ]
def __init__(self): parity = ParityBox(name="parity", label="Parity", knowl="gg.parity") cyc = YesNoBox(name="cyc", label="Cyclic", knowl="group.cyclic") solv = YesNoBox(name="solv", label="Solvable", knowl="group.solvable") prim = YesNoBox(name="prim", label="Primitive", knowl="gg.primitive") n = TextBox(name="n", label="Degree", knowl="gg.degree", example="6", example_span="6 or 4,6 or 2..5 or 4,6..8") t = TextBox(name="t", label="$T$-number", knowl="gg.tnumber", example="3", example_span="3 or 4,6 or 2..5 or 4,6..8") order = TextBox(name="order", label="Order", knowl="group.order", example="6", example_span="6 or 4,6 or 2..35 or 4,6..80") gal = TextBoxNoEg( name="gal", label="Group", knowl="group", example_span_colspan=8, example="[8,3]", example_span= "list of %s, e.g. [8,3] or [16,7], group names from the %s, e.g. C5 or S12, and %s, e.g., 7T2 or 11T5" % (display_knowl("group.small_group_label", "GAP id's"), display_knowl("nf.galois_group.name", "list of group labels"), display_knowl("gg.label", "transitive group labels"))) nilpotency = TextBox(name="nilpotency", label="Nilpotency class", knowl="group.nilpotent", example="1..100", example_span="-1, or 1..3") arith_equiv = TextBox(name="arith_equiv", label="Equivalent siblings", knowl="gg.arithmetically_equiv_input", example="1", example_span="1 or 2,3 or 1..5 or 1,3..10") count = CountBox() self.browse_array = [[n, parity], [t, cyc], [order, solv], [nilpotency, prim], [gal], [arith_equiv], [count]] self.refine_array = [[parity, cyc, solv, prim, arith_equiv], [n, t, order, gal, nilpotency]]
def __init__(self): speaker = TextBox( name="speaker", label="Speaker", colspan=(1, 2, 1), width=160 * 2 - 1 * 20 ) affiliation = TextBox( name="affiliation", label="Affiliation", colspan=(1, 2, 1), width=160 * 2 - 1 * 20, ) title = TextBox( name="title", label="Title", colspan=(1, 2, 1), width=160 * 2 - 1 * 20 ) date = TextBox( # should have date widget? name="daterange", id="daterange", label="Date", colspan=(1, 2, 1), width=160 * 2 - 1 * 20, ) video = YesNoBox(name="video", label="Has video") self.browse_array = [ [category, keywords], [institution, title], [online, speaker], [access, affiliation], [video, date], [count], ]
def __init__(self): order = TextBox( name="order", label="Order", knowl="group.order", example="3", example_span="4, or a range like 3..5") dim = TextBox( name="dim", label="Dimension", example="2", example_span="4, or a range like 3..5") irreducible = YesNoBox( name="irreducible", knowl="group.representation.irreducible", label="Irreducible", ) count = CountBox() self.browse_array = [ [order], [dim], [irreducible], [count]] self.refine_array = [ [order, dim, irreducible]]
def __init__(self): category = SelectBox(name="category", label="Category", options=[("", "")] + categories) keywords = TextBox(name="keywords", label="Keywords") speaker = TextBox(name="speaker", label="Speaker") affiliation = TextBox(name="affiliation", label="Affiliation") institution = TextBox(name="institution", label="Institution") title = TextBox(name="title", label="Title") online = SelectBox(name="online", label="Online", options=[("", "only"), ("all", "and offline"), ("exclude", "exclude")]) when = SelectBox(name="when", label="Occuring in", options=[("", ""), ("future", "the future"), ("past", "the past")]) date = TextBox( # should have date widget? name="date", label="Date") video = YesNoBox(name="video", label="Has video") avail = SelectBox(name="access", label="Access", options=[("", ""), ("open", "open only")]) count = TextBox(name="count", label="Results to display", example=50) self.browse_array = [[category, keywords], [speaker, affiliation], [title, institution], [when, date], [online], [video, avail], [count]]
def __init__(self): deg = TextBox(name="deg", label="Degree", knowl="belyi.degree", example="5", example_span="4, 5-6") group = TextBox(name="group", label="Group", knowl="belyi.group", example="4T5") abc = TextBox(name="abc", label="Orders", knowl="belyi.orders", example="5", example_span="4, 5-6") abc_list = TextBox(name="abc_list", label=r"\([a,b,c]\) triple", knowl="belyi.abc", example="[4,4,3]") g = TextBox(name="g", label="Genus", knowl="belyi.genus", example="1", example_span="1, 0-2") pass_size = TextBox(name="pass_size", label="Passport size", knowl="belyi.pass_size", example="2", example_span="2, 5-6") orbit_size = TextBox(name="orbit_size", label="Orbit size", knowl="belyi.orbit_size", example="2", example_span="2, 5-6") geomtype = SelectBox(name="geomtype", label="Geometry type", knowl="belyi.geometry_type", options=[("", "")] + list(geometry_types_dict.items())) is_primitive = YesNoBox(name="is_primitive", label="Primitive", knowl="belyi.primitive", example="yes") field = TextBox(name="field", label="Base field", knowl="belyi.base_field", example="2.2.5.1", example_span="2.2.5.1 or Qsqrt5") count = CountBox() self.browse_array = [[deg], [group], [abc], [abc_list], [g], [orbit_size], [pass_size], [field], [geomtype], [is_primitive], [count]] self.refine_array = [[deg, group, abc, abc_list], [g, orbit_size, pass_size, field], [geomtype, is_primitive]]
def __init__(self): degree = TextBox(name="degree", label="Degree", knowl="nf.degree", example=3) signature = TextBox(name="signature", label="Signature", knowl="nf.signature", example="[1,1]") discriminant = TextBox(name="discriminant", label="Discriminant", knowl="nf.discriminant", example="-1000..-1", example_span="-3 or 1000-2000") rd = TextBox(name="rd", label="Root discriminant", knowl="nf.root_discriminant", example="1..4.3", example_span="a range such as 1..4.3 or 3-10") cm_field = YesNoBox(name="cm_field", label="CM field", knowl="nf.cm_field") gal = TextBoxNoEg( name="galois_group", label="Galois group", knowl="nf.galois_group", example="C5", example_span_colspan=4, example_span= "%s, e.g. [8,3] or [16,7]; %s, e.g. C5 or S12; %s, e.g., 7T2 or 11T5" % (display_knowl("group.small_group_label", "GAP id's"), display_knowl("nf.galois_group.name", "group names"), display_knowl("gg.label", "transitive group labels"))) regulator = TextBox(name="regulator", label="Regulator", knowl="nf.regulator", example="1..3.5", example_span="a range such as 1..3.5") class_number = TextBox(name="class_number", label="Class number", knowl="nf.class_number", example="5") class_group = TextBox(name="class_group", label="Class group structure", knowl="nf.ideal_class_group", example="[2,4]", example_span="[ ], [3], or [2,4]") num_ram = TextBox(name="num_ram", label="Ramified prime count", knowl="nf.ramified_primes", example=2) ram_quantifier = SubsetNoExcludeBox(name="ram_quantifier") ram_primes = TextBoxWithSelect(name="ram_primes", label="Ramified", knowl="nf.ramified_primes", example="2,3", select_box=ram_quantifier) ur_primes = TextBox(name="ur_primes", label="Unramified primes", knowl="nf.unramified_prime", example="2,3") subfield = TextBox(name="subfield", label="Intermediate field", knowl="nf.intermediate_fields", example_span="2.2.5.1 or x^2-5 or a " + display_knowl("nf.nickname", "field nickname"), example="x^2-5") count = CountBox() self.browse_array = [[degree, signature], [discriminant, rd], [gal], [class_number, class_group], [num_ram, cm_field], [ram_primes, ur_primes], [regulator, subfield], [count]] self.refine_array = [[ degree, signature, gal, class_number, class_group ], [regulator, num_ram, ram_primes, ur_primes, cm_field], [discriminant, rd, subfield]]
def __init__(self): degree = TextBox(name="degree", label="Degree", knowl="nf.degree", example=3) signature = TextBox(name="signature", label="Signature", knowl="nf.signature", example="[1,1]") discriminant = TextBox(name="discriminant", label="Discriminant", knowl="nf.discriminant", example="-1000..-1", example_span="-3 or 1000-2000") rd = TextBox(name="rd", label="Root discriminant", knowl="nf.root_discriminant", example="1..4.3", example_span="a range such as 1..4.3 or 3-10") cm_field = YesNoBox(name="cm_field", label="CM field", knowl="nf.cm_field") gal = TextBox(name="galois_group", label="Galois group", knowl="nf.galois_search", example="C5", example_span="[8,3], C5 or 7T2") is_galois = YesNoBox(name="is_galois", label="Is Galois", knowl="nf.galois_group") regulator = TextBox(name="regulator", label="Regulator", knowl="nf.regulator", example="1..3.5", example_span="a range such as 1..3.5") class_number = TextBox(name="class_number", label="Class number", knowl="nf.class_number", example="5") class_group = TextBox(name="class_group", label="Class group structure", knowl="nf.ideal_class_group", example="[2,4]", example_span="[ ], [3], or [2,4]") num_ram = TextBox(name="num_ram", label="Ramified prime count", knowl="nf.ramified_primes", example=2) ram_quantifier = SubsetNoExcludeBox(name="ram_quantifier") ram_primes = TextBoxWithSelect(name="ram_primes", label="Ramified", knowl="nf.ramified_primes", example="2,3", select_box=ram_quantifier) ur_primes = TextBox(name="ur_primes", label="Unramified primes", knowl="nf.unramified_prime", example="2,3") subfield = TextBox(name="subfield", label="Intermediate field", knowl="nf.intermediate_fields", example_span="2.2.5.1 or x^2-5 or a " + display_knowl("nf.nickname", "field nickname"), example="x^2-5") count = CountBox() self.browse_array = [[degree, signature], [discriminant, rd], [gal, is_galois], [class_number, class_group], [num_ram, cm_field], [ram_primes, ur_primes], [regulator, subfield], [count]] self.refine_array = [[ degree, signature, class_number, class_group, cm_field ], [num_ram, ram_primes, ur_primes, gal, is_galois], [discriminant, rd, regulator, subfield]]
def __init__(self): qshort = display_knowl("ag.base_field", "Base field") q = TextBox( "q", label="Cardinality of the %s" % (qshort), short_label=qshort, example="81", example_span="81 or 3-49", ) pshort = display_knowl("ag.base_field", "Base char.") p = TextBox( "p", label="Characteristic of the %s" % (qshort), short_label=pshort, example="3", example_span="3 or 2-5", ) g = TextBox("g", label="Dimension", knowl="ag.dimension", example="2", example_span="2 or 3-5") p_rank = TextBox("p_rank", label="$p$-rank", knowl="av.fq.p_rank", example="2") p_rank_deficit = TextBox( "p_rank_deficit", label="$p$-rank deficit", knowl="av.fq.p_rank", example="2", advanced=True, ) angle_rank = TextBox( "angle_rank", label="Angle rank", knowl="av.fq.angle_rank", example="3", example_col=False, advanced=True, ) newton_polygon = TextBox( "newton_polygon", label="Slopes of Newton polygon", knowl="lf.newton_polygon", example="[0,0,1/2]", colspan=(1, 3, 1), width=3 * 190 - 30, short_width=160, short_label="Slopes", advanced=True, ) initial_coefficients = TextBox( "initial_coefficients", label="Initial coefficients", knowl="av.fq.initial_coefficients", example="[2, -1, 3, 9]", ) abvar_point_count = TextBox( "abvar_point_count", label="Point counts of the variety", knowl="ag.fq.point_counts", example="[75,7125]", colspan=(1, 3, 1), width=3 * 190 - 30, short_width=160, short_label="Points on variety", advanced=True, ) curve_point_count = TextBox( "curve_point_count", label="Point counts of the curve", knowl="av.fq.curve_point_counts", example="[9,87]", colspan=(1, 3, 1), width=3 * 190 - 30, short_width=160, short_label="Points on curve", advanced=True, ) def nbsp(knowl, label): return " " + display_knowl(knowl, label) number_field = TextBox( "number_field", label=nbsp("av.fq.number_field", "Number field"), short_label=display_knowl("av.fq.number_field", "Number field"), example="4.0.29584.2", example_span="4.0.29584.2 or Qzeta8", colspan=(1, 3, 1), width=3 * 190 - 30, short_width=160, advanced=True, ) galois_group = TextBox( "galois_group", label=nbsp("nf.galois_group", "Galois group"), short_label=display_knowl("nf.galois_group", "Galois group"), example="4T3", example_span="C4, or 8T12, a list of " + display_knowl("nf.galois_group.name", "group names"), colspan=(1, 3, 1), width=3 * 190 - 30, short_width=160, advanced=True, ) #size = TextBox( # "size", # label="Isogeny class size", # knowl="av.fq.isogeny_class_size", # example="1", # example_col=False, # advanced=True, #) gdshort = display_knowl("av.endomorphism_field", "End.") + " degree" gdlong = "Degree of " + display_knowl("av.endomorphism_field", "endomorphism_field") geom_deg = TextBox( "geom_deg", label=gdlong, short_label=gdshort, example="168", example_span="6-12, 168", advanced=True, ) jac_cnt = TextBox( "jac_cnt", label="Number of Jacobians", knowl="av.jacobian_count", example="6", short_label="# Jacobians", advanced=True, ) hyp_cnt = TextBox( "hyp_cnt", label="Number of hyperelliptic Jacobians", knowl="av.hyperelliptic_count", example="6", example_col=False, short_label="# Hyp. Jacobians", advanced=True, ) tcshort = display_knowl("av.twist", "# twists") tclong = "Number of " + display_knowl("av.twist", "twists") twist_count = TextBox( "twist_count", label=tclong, short_label=tcshort, example="390", advanced=True, ) max_twist_degree = TextBox( "max_twist_degree", label="Max twist degree", knowl="av.twist", example="16", example_col=False, advanced=True, ) simple = YesNoBox( "simple", label="Simple", knowl="av.simple", ) geom_simple = YesNoBox( "geom_simple", label="Geometrically simple", knowl="av.geometrically_simple", short_label="Geom. simple", ) geom_squarefree = SelectBox(name="geom_squarefree", knowl="av.geometrically_squarefree", label="(Geometrically) Squarefree", short_label="(Geom.) Sq.free", options=[('', ''), ('Yes', 'yes'), ('YesAndGeom', 'yes; and geom.'), ('YesNotGeom', 'yes; not geom.'), ('No', 'no'), ('NotGeom', 'not geom.')], advanced=True) primitive = YesNoBox( "primitive", label="Primitive", knowl="ag.primitive", ) polarizable = YesNoMaybeBox( "polarizable", label="Principally polarizable", knowl="av.princ_polarizable", short_label="Princ. polarizable", ) jacobian = YesNoMaybeBox("jacobian", label="Jacobian", knowl="ag.jacobian") uglabel = "Use %s in the following inputs" % display_knowl( "av.decomposition", "Geometric decomposition") use_geom_decomp = CheckBox("use_geom_decomp", label=uglabel, short_label=uglabel) use_geom_index = CheckboxSpacer(use_geom_decomp, colspan=4, advanced=True) use_geom_refine = CheckboxSpacer(use_geom_decomp, colspan=5, advanced=True) def long_label(d): return nbsp("av.decomposition", "Dimension %s factors" % d) def short_label(d): return display_knowl("av.decomposition", "Dim %s factors" % d) dim1 = TextBox( "dim1_factors", label=long_label(1), example="1-3", example_col=False, short_label=short_label(1), advanced=True, ) dim1d = TextBox( "dim1_distinct", label="Distinct factors", knowl="av.decomposition", example="1-2", example_span="2 or 1-3", short_label="(distinct)", advanced=True, ) dim2 = TextBox( "dim2_factors", label=long_label(2), example="1-3", example_col=False, short_label=short_label(2), advanced=True, ) dim2d = TextBox( "dim2_distinct", label="Distinct factors", knowl="av.decomposition", example="1-2", example_span="2 or 1-3", short_label="(distinct)", advanced=True, ) dim3 = TextBox( "dim3_factors", label=long_label(3), example="2", example_col=False, short_label=short_label(3), advanced=True, ) dim3d = TextBox( "dim3_distinct", label="Distinct factors", knowl="av.decomposition", example="1", example_span="2 or 0-1", short_label="(distinct)", advanced=True, ) dim4 = TextBox( "dim4_factors", label=long_label(4), example="2", example_col=False, short_label=short_label(4), advanced=True, ) dim5 = TextBox( "dim5_factors", label=long_label(5), example="2", example_col=False, short_label=short_label(5), advanced=True, ) dim4d = dim5d = SkipBox(example_span="0 or 1", advanced=True) simple_quantifier = SubsetBox("simple_quantifier", ) simple_factors = TextBoxWithSelect( "simple_factors", label="Simple factors", select_box=simple_quantifier, knowl="av.decomposition", colspan=(1, 3, 2), width=3 * 190 - 30, short_width=2 * 190 - 30, example="1.2.b,1.2.b,2.2.a_b", advanced=True, ) count = CountBox() self.refine_array = [ [q, p, g, p_rank, initial_coefficients], [simple, geom_simple, primitive, polarizable, jacobian], [ newton_polygon, abvar_point_count, curve_point_count, simple_factors ], [angle_rank, jac_cnt, hyp_cnt, twist_count, max_twist_degree], [geom_deg, p_rank_deficit, geom_squarefree], use_geom_refine, [dim1, dim2, dim3, dim4, dim5], [dim1d, dim2d, dim3d, number_field, galois_group], ] self.browse_array = [ [q, primitive], [p, simple], [g, geom_simple], [initial_coefficients, polarizable], [p_rank, jacobian], [p_rank_deficit, geom_squarefree], [jac_cnt, hyp_cnt], [geom_deg, angle_rank], [twist_count, max_twist_degree], [newton_polygon], [abvar_point_count], [curve_point_count], [simple_factors], use_geom_index, [dim1, dim1d], [dim2, dim2d], [dim3, dim3d], [dim4, dim4d], [dim5, dim5d], [number_field], [galois_group], [count], ]
def __init__(self): cond = TextBox( name="conductor", label="Conductor", knowl="ec.q.conductor", example="389", example_span="389 or 100-200") rank = TextBox( name="rank", label="Rank", knowl="ec.rank", example="0") torsion = TextBox( name="torsion", label="Torsion order", knowl="ec.torsion_order", example="2") sha = TextBox( name="sha", label="Analytic order of Ш", knowl="ec.analytic_sha_order", example="4") surj_primes = TextBox( name="surj_primes", label="Maximal primes", knowl="ec.maximal_galois_rep", example="2,3") isodeg = TextBox( name="isogeny_degrees", label="Cyclic isogeny degree", knowl="ec.isogeny", example="16") class_size = TextBox( name="class_size", label="Isogeny class size", knowl="ec.isogeny", example="4") class_deg = TextBox( name="class_deg", label="Isogeny class degree", knowl="ec.isogeny", example="16") num_int_pts = TextBox( name="num_int_pts", label="Number of %s" % display_knowl("ec.q.integral_points", "integral points"), example="2", example_span="2 or 4-15") jinv = TextBox( name="jinv", label="j-invariant", knowl="ec.q.j_invariant", example="1728", example_span="1728 or -4096/11") cm = SelectBox( name="include_cm", label="CM", knowl="ec.complex_multiplication", options=[('', ''), ('only', 'potential CM'), ('exclude', 'no potential CM')]) tor_opts = ([("", ""), ("[]", "trivial")] + [("[%s]"%n, "C%s"%n) for n in range(2, 13) if n != 11] + [("[2,%s]"%n, "C2×C%s"%n) for n in range(2, 10, 2)]) torsion_struct = SelectBox( name="torsion_structure", label="Torsion structure", knowl="ec.torsion_subgroup", options=tor_opts) optimal = SelectBox( name="optimal", label="Curves per isogeny class", knowl="ec.isogeny_class", example="all, one", options=[("", "all"), ("on", "one")]) surj_quant = SubsetNoExcludeBox( name="surj_quantifier") nonsurj_primes = TextBoxWithSelect( name="nonsurj_primes", label="Nonmax $p$", knowl="ec.maximal_galois_rep", example="2,3", select_box=surj_quant) bad_quant = SubsetBox( name="bad_quantifier") bad_primes = TextBoxWithSelect( name="bad_primes", label="Bad $p$", knowl="ec.q.reduction_type", example="5,13", select_box=bad_quant) sha_quant = SubsetBox( name="sha_quantifier") sha_primes = TextBoxWithSelect( name="sha_primes", label="$p$ dividing |Ш|", short_label="$p$ div |Ш|", knowl="ec.analytic_sha_order", example="3,5", select_box=sha_quant) regulator = TextBox( name="regulator", label="Regulator", knowl="ec.q.regulator", example="8.4-9.1") semistable = YesNoBox( name="semistable", label="Semistable", example="Yes", knowl="ec.semistable") potentially_good = YesNoBox( name="potential_good_reduction", label="Potential good reduction", example="Yes", knowl="ec.potential_good_reduction") cm_opts = [('', ''), ('-3', '-3'), ('-4', '-4'), ('-7', '-7'), ('-8', '-8'), ('-11', '-11'), ('-12', '-12'), ('-16', '-16'), ('-19', '-19'), ('-27', '-27'), ('-28', '-28'), ('-43', '-43'), ('-67', '-67'), ('-163', '-163'), ('-3,-12,-27', '-3,-12,-27'), ('-4,-16', '-4,-16'), ('-7,-28', '-7,-28')] cm_disc = SelectBox( name="cm_disc", label="CM discriminant", example="-3", knowl="ec.complex_multiplication", options=cm_opts ) count = CountBox() self.browse_array = [ [cond, jinv], [rank, regulator], [torsion, torsion_struct], [cm_disc, cm], [sha, sha_primes], [surj_primes, nonsurj_primes], [isodeg, bad_primes], [class_size, num_int_pts], [class_deg, semistable], [optimal, potentially_good], [count] ] self.refine_array = [ [cond, jinv, rank, torsion, torsion_struct], [sha, sha_primes, surj_primes, nonsurj_primes, bad_primes], [num_int_pts, regulator, cm, cm_disc, semistable], [optimal, isodeg, class_size, class_deg, potentially_good] ]
def __init__(self): geometric_invariants_type = SelectBox( name="geometric_invariants_type", min_width=115, options=[("", "Igusa-Clebsh"), ("igusa_inv", "Igusa"), ("g2_inv", "G2")], ) geometric_invariants = TextBoxWithSelect( name="geometric_invariants", knowl="g2c.geometric_invariants", label=r"\(\overline{\Q}\)-invariants", example="[8,3172,30056,-692224]", select_box=geometric_invariants_type, width=689, colspan=(1, 4, 1), example_span="", ) # the last 1 is irrelevant bad_quantifier = SubsetBox( name="bad_quantifier", min_width=115, ) bad_primes = TextBoxWithSelect( name="bad_primes", knowl="g2c.good_reduction", label="Bad primes", short_label=r"Bad \(p\)", example="5,13", example_span="2 or 2,3,5", select_box=bad_quantifier, ) conductor = TextBox( name="cond", knowl="ag.conductor", label="Conductor", example="169", example_span="169, 100-1000", ) discriminant = TextBox( name="abs_disc", knowl="g2c.abs_discriminant", label="Absolute discriminant", short_label="Discriminant", example="169", example_span="169, 0-1000", ) rational_points = TextBox( name="num_rat_pts", knowl="g2c.num_rat_pts", label="Rational points*", example="1", example_span="0, 20-26", ) rational_weirstrass_points = TextBox( name="num_rat_wpts", knowl="g2c.num_rat_wpts", label="Rational Weierstrass points", short_label="Weierstrass", example="1", example_span="1, 0-6", ) torsion_order = TextBox( name="torsion_order", knowl="g2c.torsion_order", label="Torsion order", example="2", ) torsion_structure = TextBox( name="torsion", knowl="g2c.torsion", label="Torsion structure", short_label="Torsion", example="[2,2,2]", ) two_selmer_rank = TextBox( name="two_selmer_rank", knowl="g2c.two_selmer_rank", label="2-Selmer rank", example="1", ) analytic_sha = TextBox( name="analytic_sha", knowl="g2c.analytic_sha", label="Analytic order of Ш*", short_label="Analytic Ш*", example="2", ) analytic_rank = TextBox( name="analytic_rank", knowl="g2c.analytic_rank", label="Analytic rank*", example="1", ) is_gl2_type = YesNoBox( name="is_gl2_type", knowl="g2c.gl2type", label=r"$\GL_2$-type", ) st_group = SelectBox( name="st_group", knowl="g2c.st_group", label="Sato-Tate group", short_label=r"\(\mathrm{ST}(X)\)", options=([("", "")] + [(elt, st_group_dict[elt]) for elt in st_group_list]), ) st_group_identity_component = SelectBox( name="real_geom_end_alg", knowl="g2c.st_group_identity_component", label="Sate-Tate identity component", short_label=r"\(\mathrm{ST}^0(X)\)", options=([("", "")] + [(elt, real_geom_end_alg_to_ST0_dict[elt]) for elt in real_geom_end_alg_list]), ) Q_automorphism = SelectBox( name="aut_grp_id", knowl="g2c.aut_grp", label=r"\(\Q\)-automorphism group", short_label=r"\(\mathrm{Aut}(X)\)", options=([("", "")] + [(elt, aut_grp_dict[elt]) for elt in aut_grp_list]), ) geometric_automorphism = SelectBox( name="geom_aut_grp_id", knowl="g2c.aut_grp", label=r"\(\overline{\Q}\)-automorphism group", short_label=r"\(\mathrm{Aut}(X_{\overline{\Q}})\)", options=([("", "")] + [(elt, geom_aut_grp_dict[elt]) for elt in geom_aut_grp_list]), ) Q_endomorphism = SelectBox( name="end_alg", knowl="g2c.end_alg", label=r"\(\Q\)-endomorphism algebra", short_label=r"\(\Q\)-end algebra", options=([("", "")] + [(elt, end_alg_dict[elt]) for elt in end_alg_list]), ) geometric_endomorphism = SelectBox( name="geom_end_alg", knowl="g2c.geom_end_alg", label=r"\(\overline{\Q}\)-endomorphism algebra", short_label=r"\(\overline{\Q}\)-end algebra", options=([("", "")] + [(elt, geom_end_alg_dict[elt]) for elt in geom_end_alg_list]), ) locally_solvable = YesNoBox( name="locally_solvable", knowl="g2c.locally_solvable", label="Locally solvable", ) has_square_sha = YesNoBox( name="has_square_sha", knowl="g2c.analytic_sha", label=r"Order of Ш is square*", short_label=r"Square Ш*", ) geometrically_simple = YesNoBox( name="is_simple_geom", knowl="ag.geom_simple", label="Geometrically simple", short_label=r"\(\overline{\Q}\)-simple", ) count = CountBox() self.browse_array = [ [geometric_invariants], [bad_primes, geometrically_simple], [conductor, is_gl2_type], [discriminant, st_group], [rational_points, st_group_identity_component], [rational_weirstrass_points, Q_automorphism], [torsion_order, geometric_automorphism], [torsion_structure, Q_endomorphism], [two_selmer_rank, geometric_endomorphism], [analytic_sha, has_square_sha], [analytic_rank, locally_solvable], [count], ] self.refine_array = [ [ conductor, discriminant, rational_points, rational_weirstrass_points, torsion_order, ], [ bad_primes, two_selmer_rank, analytic_rank, analytic_sha, torsion_structure, ], [ Q_endomorphism, st_group, Q_automorphism, has_square_sha, geometrically_simple, ], [ geometric_endomorphism, st_group_identity_component, geometric_automorphism, locally_solvable, is_gl2_type, ], ]
def __init__(self): field = TextBox(name="field", label="Base field", knowl="ag.base_field", example="2.2.5.1", example_span="2.2.5.1 or Qsqrt5") include_base_change = ExcludeOnlyBox(name="include_base_change", label="Base change curves", knowl="ec.base_change") include_Q_curves = ExcludeOnlyBox(name="include_Q_curves", label=r"\(\Q\)-curves", knowl="ec.q_curve") conductor_norm = TextBox(name="conductor_norm", label="Conductor norm", knowl="ec.conductor", example="31", example_span="31 or 1-100") one = SelectBox(name="one", label="Curves per isogeny class", knowl="ec.isogeny_class", example="all, one", options=[("", "all"), ("yes", "one")]) include_cm = SelectBox(name="include_cm", label="CM", knowl="ec.complex_multiplication", options=[('', ''), ('PCM', 'potential CM'), ('PCMnoCM', 'potential CM but no CM'), ('CM', 'CM'), ('noPCM', 'no potential CM')]) cm_disc = TextBox(name="cm_disc", label="CM discriminant", example="-4", example_span="-4 or -3,-8", knowl="ec.complex_multiplication") jinv = TextBox(name="jinv", label="j-invariant", knowl="ec.j_invariant", width=685, short_width=160, colspan=(1, 4, 1), example_span_colspan=2, example="105474/49 + a*34213/49", example_span="") rank = TextBox(name="rank", label="Rank*", knowl="ec.rank", example="2") torsion = TextBox(name="torsion", label="Torsion order", knowl="ec.torsion_order", example="2") bf_deg = SelectBox(name="bf_deg", label="Base field degree", knowl="nf.degree", options=[("", ""), ("2", "2"), ("3", "3"), ("4", "4"), ("5", "5"), ("6", "6")]) tor_opts = ( [("", ""), ("[]", "trivial")] + [disp_tor(tuple(t)) for t in ECNF_stats().torsion_counts if t]) torsion_structure = SelectBox(name="torsion_structure", label="Torsion structure", knowl="ec.torsion_subgroup", options=tor_opts) sha = TextBox(name="sha", label="Analytic order* of Ш", knowl="ec.analytic_sha_order", example="4") regulator = TextBox(name="regulator", label="Regulator*", knowl="ec.regulator", example="8.4-9.1") bad_quant = SubsetBox(name="bad_quantifier") bad_primes = TextBoxWithSelect(name="conductor_norm_factors", label="Bad primes", knowl="ec.reduction_type", example="5,13", select_box=bad_quant) isodeg = TextBox(name="isodeg", label="Cyclic isogeny degree", knowl="ec.isogeny", example="16") semistable = YesNoBox(name="semistable", label="Semistable", example="Yes", knowl="ec.semistable") potential_good_reduction = YesNoBox( name="potential_good_reduction", label="Potential good reduction", example="Yes", knowl="ec.potential_good_reduction") class_size = TextBox(name="class_size", label="Isogeny class size", knowl="ec.isogeny", example="4") class_deg = TextBox(name="class_deg", label="Isogeny class degree", knowl="ec.isogeny", example="16") count = CountBox() self.browse_array = [[field, bf_deg], [conductor_norm, include_base_change], [rank, include_Q_curves], [torsion, torsion_structure], [cm_disc, include_cm], [sha, regulator], [isodeg, one], [class_size, class_deg], [semistable, potential_good_reduction], [jinv], [count, bad_primes]] self.refine_array = [ [field, conductor_norm, rank, torsion, cm_disc], [ bf_deg, include_base_change, include_Q_curves, torsion_structure, include_cm ], [sha, isodeg, class_size, semistable, jinv], [regulator, one, class_deg, potential_good_reduction, bad_primes], ]
def __init__(self): weight = TextBox(name="weight", label="Weight", knowl="st_group.weight", example="1", example_span="1 or 0-3") degree = TextBox(name="degree", label="Degree", knowl="st_group.degree", example="4", example_span="4 or 1-6") include_irrational = SelectBox(name="include_irrational", label="Include irrational", knowl="st_group.rational", example_col=True, options=[("", "no"), ("yes", "yes")]) identity_component = SelectBox(name="identity_component", label="Identity component", short_label=r"$\mathrm{ST}^0$", knowl="st_group.identity_component", example_span="U(1) or USp(4)", options=[("", "")] + [(r, r) for r in st0_list]) components = TextBox(name="components", label="Components", knowl="st_group.components", example="1", example_span="1 (connected) or 4-12") trace_zero_density = TextBox(name="trace_zero_density", label="Trace zero density", knowl="st_group.trace_zero_density", short_label=r"$\mathrm{P}[a_1=0]$", example="1/2", example_span="0, 1/2, or 3/8") second_trace_moment = TextBox(name="second_trace_moment", label="Second trace moment", knowl="st_group.moments", example="8") fourth_trace_moment = TextBox(name="fourth_trace_moment", label="Fourth trace moment", knowl="st_group.moments", example="96") first_a2_moment = TextBox(name="first_a2_moment", label="First $a_2$ moment", knowl="st_group.moments", example="4") maximal = YesNoBox(name="maximal", label="Maximal", knowl="st_group.supgroups", example_col=True) component_group = TextBox( name="component_group", label="Component group", knowl="st_group.component_group", example="[48,48]", example_span="list of %s, e.g. [8,3], or %s, e.g. S4." % (display_knowl("group.small_group_label", "GAP ids"), display_knowl("nf.galois_group.name", "group labels"))) count = CountBox() self.browse_array = [[weight, trace_zero_density], [degree, second_trace_moment], [include_irrational, fourth_trace_moment], [identity_component, first_a2_moment], [maximal, components], [count, component_group]] self.refine_array = [ [weight, degree, include_irrational, identity_component, maximal], [ components, component_group, trace_zero_density, second_trace_moment, fourth_trace_moment ], [first_a2_moment] ]
def __init__(self): degree = TextBox(name="degree", label="Degree", knowl="nf.degree", example=3) signature = TextBox(name="signature", label="Signature", knowl="nf.signature", example="[1,1]") discriminant = TextBox(name="discriminant", label="Discriminant", knowl="nf.discriminant", example="-1000..-1", example_span="-3 or 1000-2000") rd = TextBox(name="rd", label="Root discriminant", knowl="nf.root_discriminant", example="1..4.3", example_span="a range such as 1..4.3 or 3-10") cm_field = YesNoBox(name="cm_field", label="CM field", knowl="nf.cm_field") gal = TextBoxNoEg( name="galois_group", label="Galois group", knowl="nf.galois_group", example="C5", example_span_colspan=4, example_span= "list of %s, e.g. [8,3] or [16,7], group names from the %s, e.g. C5 or S12, and %s, e.g., 7T2 or 11T5" % (display_knowl("group.small_group_label", "GAP id's"), display_knowl("nf.galois_group.name", "list of group labels"), display_knowl("gg.label", "transitive group labels"))) regulator = TextBox(name="regulator", label="Regulator", knowl="nf.regulator", example="1..3.5", example_span="a range such as 1..3.5") class_number = TextBox(name="class_number", label="Class number", knowl="nf.class_number", example="5") class_group = TextBox(name="class_group", label="Class group structure", knowl="nf.ideal_class_group", example="[2,4]", example_span="[ ], [3], or [2,4]") num_ram = TextBox(name="num_ram", label="Number of ramified primes", knowl="nf.ramified_primes", example=2) ram_quantifier = SubsetBox(name="ram_quantifier", width=50) ram_primes = TextBoxWithSelect(name="ram_primes", label="Ram. primes", knowl="nf.ramified_primes", example="2,3", select_box=ram_quantifier) ur_primes = TextBox(name="ur_primes", label="Unramified primes", knowl="nf.unramified_prime", example="2,3") count = TextBox(name="count", label="Results to display", example=50) self.browse_array = [[degree, signature], [discriminant, rd], [gal], [class_number, class_group], [num_ram, cm_field], [ram_primes, ur_primes], [regulator], [count]] self.refine_array = [[ degree, signature, gal, class_number, class_group ], [regulator, num_ram, ram_primes, ur_primes, cm_field], [discriminant, rd]]