예제 #1
0
    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],
        ]
예제 #2
0
    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
                             ]]
예제 #3
0
    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]
        ]
예제 #4
0
파일: main.py 프로젝트: manamiroy/lmfdb
    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]]
예제 #5
0
파일: main.py 프로젝트: assaferan/lmfdb
    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],
        ]
예제 #6
0
    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]]
예제 #7
0
    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]]
예제 #8
0
    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]]