def __init__(self): field = TextBox( name='field_label', label='Base field', knowl='nf', example='2.0.4.1', example_span= r'either a field label, e.g. 2.0.4.1 for \(\mathbb{Q}(\sqrt{-1})\), or a nickname, e.g. Qsqrt-1', example_span_colspan=4) degree = TextBox(name='deg', label='Base field degree', knowl='nf.degree', example='2', example_span='2, 2..3') discriminant = TextBox(name='disc', label='Base field discriminant', knowl='nf.discriminant', example='5', example_span='5 or 1-100') weight = TextBox(name='weight', label='Weight', knowl='mf.hilbert.weight_vector', example='[2,2]', example_span='2 or [2,2]') level = TextBox(name='level_norm', label='Level norm', knowl='mf.hilbert.level_norm', example='1', example_span='1 or 1-100') dimension = TextBox(name='dimension', label='Dimension', knowl='mf.hilbert.dimension', example='1', example_span='1 or 2') base_change = ExcludeOnlyBox( name='bc', label='Base change', knowl='mf.base_change', ) CM = ExcludeOnlyBox( name='cm', label='CM', knowl='mf.cm', ) count = CountBox() self.browse_array = [[field], [degree, discriminant], [level, weight], [dimension, base_change], [count, CM]] self.refine_array = [ [field, degree, discriminant, CM], [weight, level, dimension, base_change], ]
def __init__(self): field = TextBox( name='field_label', label='Base field', knowl='nf', example='2.0.4.1', example_span= r'either a field label, e.g. 2.0.4.1 for \(\mathbb{Q}(\sqrt{-1})\), or a nickname, e.g. Qsqrt-1', example_span_colspan=4) level = TextBox(name='level_norm', label='Level norm', knowl='mf.bianchi.level', example='1', example_span='e.g. 1 or 1-100') # See Issue #4170 # dimension = TextBox( # name='dimension', # label='Dimension', # knowl='mf.bianchi.spaces', # example='1', # example_span='e.g. 1 or 2') sign = SelectBox(name='sfe', label='Sign', knowl='mf.bianchi.sign', options=[("", ""), ("+1", "+1"), ("-1", "-1")], example_col=True) base_change = ExcludeOnlyBox(name='include_base_change', label='Base change', knowl='mf.bianchi.base_change', example="exclude") CM = ExcludeOnlyBox(name='include_cm', label='CM', knowl='mf.bianchi.cm') field_bad_quant = SubsetBox(name="field_bad_quantifier") field_bad_primes = TextBoxWithSelect(name="field_bad_primes", label="Field bad primes", knowl="nf.ramified_primes", example="5,13", select_box=field_bad_quant) level_bad_quant = SubsetBox(name="level_bad_quantifier") level_bad_primes = TextBoxWithSelect(name="level_bad_primes", label="Level bad primes", knowl="mf.bianchi.level", example="5,13", select_box=level_bad_quant) count = CountBox() self.browse_array = [[field], [level, sign], [base_change, CM], [field_bad_primes, level_bad_primes], [count]] self.refine_array = [[field, level, CM], [ sign, base_change, field_bad_primes, level_bad_primes ]]
def __init__(self): field = TextBox( name='field_label', label='Base field', knowl='nf', example='2.0.4.1', example_span=r'either a field label, e.g. 2.0.4.1 for \(\mathbb{Q}(\sqrt{-1})\), or a nickname, e.g. Qsqrt-1', example_span_colspan=4) level = TextBox( name='level_norm', label='Level norm', knowl='mf.bianchi.level', example='1', example_span='e.g. 1 or 1-100') dimension = TextBox( name='dimension', label='Dimension', knowl='mf.bianchi.spaces', example='1', example_span='e.g. 1 or 2') sign = SelectBox( name='sfe', label='Sign', knowl='mf.bianchi.sign', options=[("", ""), ("+1", "+1"), ("-1", "-1")], example_col=True ) base_change = ExcludeOnlyBox( name='include_base_change', label='Base change', knowl='mf.bianchi.base_change' ) CM = ExcludeOnlyBox( name='include_cm', label='CM', knowl='mf.bianchi.cm' ) count = CountBox() self.browse_array = [ [field], [level, sign], [dimension, base_change], [count, CM] ] self.refine_array = [ [field, level, dimension], [sign, base_change, CM] ]
def __init__(self): genus = TextBox(name="genus", label="Genus", knowl="ag.curve.genus", example="3", example_span="4, or a range like 3..5") g0 = TextBox(name="g0", label="Quotient genus", knowl="curve.highergenus.aut.quotientgenus", example="0", example_span="4, or a range like 3..5") signature = TextBox(name="signature", label="Signature", knowl="curve.highergenus.aut.signature", example="[0,2,3,3,6]", example_span="[0,2,3,3,6] or [0;2,3,8]") group_order = TextBox( name="group_order", label="Group order(s)", knowl="group.order", example="2..5", example_span= "12, or a range like 10..20, or you may include the variable g for genus like 84(g-1)" ) group = TextBox(name="group", label="Group identifier", knowl="group.small_group_label", example="[4,2]") dim = TextBox(name="dim", label="Dimension of the family", knowl="curve.highergenus.aut.dimension", example="1", example_span="1, or a range like 0..2") inc_hyper = ExcludeOnlyBox(name="inc_hyper", label="Hyperelliptic curve(s)", knowl="ag.hyperelliptic_curve") inc_cyc_trig = ExcludeOnlyBox(name="inc_cyc_trig", label="Cyclic trigonal curve(s)", knowl="ag.cyclic_trigonal") inc_full = ExcludeOnlyBox(name="inc_full", label="Full automorphism group", knowl="curve.highergenus.aut.full") count = CountBox() self.browse_array = [[genus], [g0], [signature], [group_order], [group], [dim], [inc_hyper], [inc_cyc_trig], [inc_full], [count]] self.refine_array = [[genus, dim, group_order, inc_hyper, inc_full], [g0, signature, group, inc_cyc_trig]]
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): 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.q.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="isodeg", label="Cyclic isogeny 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 = ExcludeOnlyBox(name="include_cm", label="CM", knowl="ec.complex_multiplication") 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", options=[("", ""), ("on", "one")]) surj_quant = SubsetNoExcludeBox(name="surj_quantifier") nonsurj_primes = TextBoxWithSelect(name="nonsurj_primes", label="Non-max. $p$", short_label="Non-max. $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) 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") 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)] 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, optimal], [surj_primes, nonsurj_primes], [isodeg, bad_primes], [num_int_pts, semistable], [count]] self.refine_array = [[cond, jinv, rank, torsion, torsion_struct], [ sha, isodeg, surj_primes, nonsurj_primes, bad_primes ], [num_int_pts, regulator, cm, cm_disc, semistable], [optimal]]
def __init__(self): field = TextBox(name="field", label="Base field", knowl="nf", 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", options=[("", ""), ("yes", "one")]) include_cm = ExcludeOnlyBox(name="include_cm", label="CM", knowl="ec.complex_multiplication") 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=675, short_width=160, colspan=(1, 4, 1), example_span_colspan=2, example="105474/49 + a*34213/49", example_span="") torsion = TextBox(name="torsion", label="Torsion order", knowl="ec.torsion_order", example="2") def disp_tor(t): if len(t) == 1: return "[%s]" % t, "C%s" % t else: return "[%s,%s]" % t, "C%s×C%s" % t 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) isodeg = TextBox(name="isodeg", label="Cyclic isogeny degree", knowl="ec.isogeny", example="16") count = CountBox() self.browse_array = [[jinv], [field, include_base_change], [conductor_norm, include_Q_curves], [torsion, torsion_structure], [cm_disc, include_cm], [isodeg, one], [count]] self.refine_array = [[ field, conductor_norm, jinv, include_base_change, include_Q_curves ], [isodeg, torsion, torsion_structure, include_cm, cm_disc], [one]]
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", options=[("", ""), ("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=675, 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) isodeg = TextBox(name="isodeg", label="Cyclic isogeny degree", knowl="ec.isogeny", example="16") count = CountBox() self.browse_array = [[jinv], [field, bf_deg], [conductor_norm, include_base_change], [rank, include_Q_curves], [torsion, torsion_structure], [cm_disc, include_cm], [isodeg, one], [count]] self.refine_array = [[ field, bf_deg, conductor_norm, jinv, include_base_change ], [include_Q_curves, isodeg, rank, torsion, torsion_structure], [include_cm, cm_disc, one]]