Пример #1
0
    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]]
Пример #2
0
    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]]
Пример #3
0
 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],
     ]
Пример #4
0
    def __init__(self):
        dimension = TextBox(name="dimension",
                            label="Dimension",
                            knowl="artin.dimension",
                            example="2",
                            example_span="1, 2-4")
        conductor = TextBox(name="conductor",
                            label="Conductor",
                            knowl="artin.conductor",
                            example="51,100-200")
        group = TextBoxNoEg(
            name="group",
            label="Group",
            knowl="artin.gg_quotient",
            example="A5",
            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")))
        parity = ParityBox(name="parity", label="Parity", knowl="artin.parity")
        container = TextBox(name="container",
                            label="Smallest permutation container",
                            knowl="artin.permutation_container",
                            example="6T13",
                            example_span="6T13 or 7T6")
        ram_quantifier = SubsetNoExcludeBox(name="ram_quantifier")
        ramified = TextBoxWithSelect(name="ramified",
                                     label="Ramified primes",
                                     knowl="artin.ramified_primes",
                                     example="2, 3",
                                     select_box=ram_quantifier,
                                     example_span="2, 3 (no range allowed)")
        unramified = TextBox(name="unramified",
                             label="Unramified primes",
                             knowl="artin.unramified_primes",
                             example="5,7",
                             example_span="5, 7, 13 (no range allowed)")
        root_number = TextBoxNoEg(name="root_number",
                                  label="Root number",
                                  knowl="artin.root_number",
                                  example="1",
                                  example_span="at the moment, one of 1 or -1")
        fsind = TextBoxNoEg(
            name="frobenius_schur_indicator",
            label="Frobenius-Schur indicator",
            knowl="artin.frobenius_schur_indicator",
            example="1",
            example_span=
            "+1 for orthogonal, -1 for symplectic, 0 for non-real character")
        count = CountBox()

        self.browse_array = [[dimension], [conductor], [group], [parity],
                             [container], [ramified], [unramified],
                             [root_number], [fsind], [count]]

        self.refine_array = [[
            dimension, conductor, group, root_number, parity
        ], [container, ramified, unramified, fsind]]
Пример #5
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
                             ]]
Пример #6
0
    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],
        ]
Пример #7
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]
        ]
Пример #8
0
    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")
        count = CountBox()

        self.browse_array = [[order], [dim], [count]]
        self.refine_array = [[order, dim]]
Пример #9
0
    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]]
Пример #10
0
    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]]
Пример #11
0
    def __init__(self):
        degree = TextBox(
            name='n',
            label='Degree',
            knowl='lf.degree',
            example='6',
            example_span='6, or a range like 3..5')
        qp = TextBox(
            name='p',
            label=r'Residue field characteristic',
            short_label='Residue characteristic',
            knowl='lf.residue_field',
            example='3',
            example_span='3, or a range like 3..7')
        c = TextBox(
            name='c',
            label='Discriminant exponent',
            knowl='lf.discriminant_exponent',
            example='8',
            example_span='8, or a range like 2..6')
        e = TextBox(
            name='e',
            label='Ramification index',
            knowl='lf.ramification_index',
            example='3',
            example_span='3, or a range like 2..6')
        topslope = TextBox(
            name='topslope',
            label='Top slope',
            knowl='lf.top_slope',
            example='4/3',
            example_span='0, 1, 2, 4/3, 3.5, or a range like 3..5')
        gal = TextBoxNoEg(
            name='gal',
            label='Galois group',
            short_label='Galois group',
            knowl='nf.galois_group',
            example='5T3',
            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')))
        results = CountBox()

        self.browse_array = [[degree], [qp], [c], [e], [topslope], [gal], [results]]
        self.refine_array = [[degree, c, gal], [qp, e, topslope]]
Пример #12
0
 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]]
Пример #13
0
    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",
                                       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="$\mathrm{P}[a_1=0]$",
                                     example="1/2",
                                     example_span="0, 1/2, or 3/8")
        count = TextBox(name="count", label="Results to display", example=50)

        self.browse_array = [[weight], [degree], [include_irrational],
                             [identity_component], [components],
                             [trace_zero_density], [count]]

        self.refine_array = [[
            weight, degree, include_irrational, identity_component, components,
            trace_zero_density
        ]]
Пример #14
0
    def __init__(self):
        name = TextBox(
            name="name", label="Name", colspan=(1, 2, 1), width=160 * 2 - 1 * 20
        )

        self.browse_array = [
            [category, keywords],
            [institution, name],
            [online, access],
            [count],
        ]
Пример #15
0
    def __init__(self):       
        level = TextBox(name="level", label="Level", knowl="mf.maass.mwf.level", example="1", example_span="997 or 1-10")
        weight = TextBox(name="weight", label="Weight", knowl="mf.maass.mwf.weight", example="0", example_span="0 (only weight 0 currenlty available)")
        character = TextBox(name="character", label="Character", knowl="mf.maass.mwf.character", example="1.1", example_span="1.1 or 5.1 (only trivial character currently available)")
        symmetry = SelectBox(name="symmetry", label="Symmetry",  knowl="mf.maass.mwf.symmetry", options=[("", "any symmetry"), ("1", "even only"), ("-1", "odd only")])
        spectral_parameter = TextBox(name="spectral_parameter",
                                     label="Spectral parameter",
                                     knowl="mf.maass.mwf.spectralparameter",
                                     example="9.5-9.6",
                                     example_span="1.23 or 1.99-2.00 or 40-50")
        count = CountBox()

        self.browse_array = [
            [level],
            [weight],
            [character],
            [spectral_parameter],
            [symmetry],
            [count]]

        self.refine_array = [[level, weight, character, spectral_parameter, symmetry]]
Пример #16
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],
        ]
Пример #17
0
    def __init__(self):
        dim = TextBox(name="dim",
                      label="Dimension",
                      knowl="lattice.dimension",
                      example="3",
                      example_span="3 or 2-5")
        det = TextBox(name="det",
                      label="Determinant",
                      knowl="lattice.determinant",
                      example="1",
                      example_span="1 or 10-100")
        level = TextBox(name="level",
                        label="Level",
                        knowl="lattice.level",
                        example="48",
                        example_span="48 or 40-100")
        gram = TextBox(
            name="gram",
            label="Gram matrix",
            knowl="lattice.gram",
            example="[5,1,23]",
            example_span=
            r"$[5,1,23]$ for the matrix $\begin{pmatrix}5 & 1\\ 1& 23\end{pmatrix}$"
        )
        minimum = TextBox(name="minimum",
                          label="Minimal vector length",
                          knowl="lattice.minimal_vector",
                          example="1")
        class_number = TextBox(name="class_number",
                               label="Class number",
                               knowl="lattice.class_number",
                               example="1")
        aut = TextBox(name="aut",
                      label="Automorphism group order",
                      short_label="Aut. group order",
                      knowl="lattice.group_order",
                      example="2",
                      example_span="696729600")
        count = TextBox(name="count", label="Results to display", example="50")

        self.browse_array = [[dim], [det], [level], [gram], [minimum],
                             [class_number], [aut], [count]]

        self.refine_array = [[dim, det, level, gram],
                             [minimum, class_number, aut]]
Пример #18
0
    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 = IncludeOnlyBox(name="inc_hyper",
                                   label="Hyperelliptic curve(s)",
                                   knowl="ag.hyperelliptic_curve")
        inc_cyc_trig = IncludeOnlyBox(name="inc_cyc_trig",
                                      label="Cyclic trigonal curve(s)",
                                      knowl="ag.cyclic_trigonal")
        inc_full = IncludeOnlyBox(name="inc_full",
                                  label="Full automorphism group",
                                  knowl="curve.highergenus.aut.full")
        count = TextBox(name="count", label="Results to display", example="50")

        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]]
Пример #19
0
    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")
        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()))
        count = TextBox(name="count", label="Results to display", example="50")

        self.browse_array = [[deg], [group], [abc], [abc_list], [g],
                             [orbit_size], [geomtype], [count]]

        self.refine_array = [[deg, group, abc, abc_list],
                             [g, orbit_size, geomtype]]
Пример #20
0
institution = SelectBox(
    name="institution",
    label="Institution",
    options=[("", ""), ("No institution", "None"),]
    + [(elt, elt) for elt in institutions_shortnames()],
)
## online only?
online = SelectBox(
    name="online",
    label="Online",
    options=[("", "only"), ("all", "and offline"), ("exclude", "exclude")],
)
## keywords for seminar or talk
keywords = TextBox(
    name="keywords", label="Keywords", colspan=(1, 2, 1), width=160 * 2 - 1 * 20
)
## type of access
access = SelectBox(
    name="access", label="Access", options=[("", ""), ("open", "open only")]
)
## number of results to display
count = TextBox(name="count", label="Results to display", example=50)


class TalkSearchArray(SearchArray):
    noun = "talk"
    plural_noun = "talks"

    def __init__(self):
        speaker = TextBox(
Пример #21
0
    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]]
Пример #22
0
    def __init__(self):
        degree = TextBox(name='n',
                         label='Degree',
                         knowl='lf.degree',
                         example='6',
                         example_span='6, or a range like 3..5')
        qp = TextBox(name='p',
                     label=r'Residue field characteristic',
                     short_label='Residue characteristic',
                     knowl='lf.residue_field',
                     example='3',
                     example_span='3, or a range like 3..7')
        c = TextBox(name='c',
                    label='Discriminant exponent',
                    knowl='lf.discriminant_exponent',
                    example='8',
                    example_span='8, or a range like 2..6')
        e = TextBox(name='e',
                    label='Ramification index',
                    knowl='lf.ramification_index',
                    example='3',
                    example_span='3, or a range like 2..6')
        f = TextBox(name='f',
                    label='Residue field degree',
                    knowl='lf.residue_field_degree',
                    example='3',
                    example_span='3, or a range like 2..6')
        topslope = TextBox(
            name='topslope',
            label='Top slope',
            knowl='lf.top_slope',
            example='4/3',
            example_span='0, 1, 2, 4/3, 3.5, or a range like 3..5')
        gal = TextBoxNoEg(
            name='gal',
            label='Galois group',
            short_label='Galois group',
            knowl='nf.galois_group',
            example='5T3',
            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')))
        u = TextBox(name='u',
                    label='Galois unramified degree',
                    knowl='lf.unramified_degree',
                    example='3',
                    example_span='3, or a range like 1..4')
        t = TextBox(name='t',
                    label='Galois tame degree',
                    knowl='lf.tame_degree',
                    example='2',
                    example_span='2, or a range like 2..3')
        inertia = TextBox(
            name='inertia_gap',
            label='Inertia subgroup',
            knowl='lf.inertia_group_search',
            example='[3,1]',
            example_span=
            'a %s, e.g. [8,3] or [16,7], a group name from the %s, e.g. C5 or S12, or a %s, e.g., 7T2 or 11T5'
            % (display_knowl('group.small_group_label', "GAP id"),
               display_knowl('nf.galois_group.name', 'list of group labels'),
               display_knowl('gg.label', 'transitive group label')))
        wild = TextBox(
            name='wild_gap',
            label='Wild inertia subgroup',
            knowl='lf.wild_inertia_group_search',
            example='[4,1]',
            example_span=
            'a %s, e.g. [8,3] or [16,7], a group name from the %s, e.g. C5 or S12, or a %s, e.g., 7T2 or 11T5'
            % (display_knowl('group.small_group_label', "GAP id"),
               display_knowl('nf.galois_group.name', 'list of group labels'),
               display_knowl('gg.label', 'transitive group label')))
        results = CountBox()

        self.browse_array = [[degree], [qp], [c], [e], [f], [topslope], [u],
                             [t], [gal], [inertia], [wild], [results]]
        self.refine_array = [[degree, qp, gal, u], [e, c, inertia, t],
                             [f, topslope, wild]]
Пример #23
0
    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],
        ]
Пример #24
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.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]
            ]
Пример #25
0
    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,
            ],
        ]
Пример #26
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",
                        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],
        ]
Пример #27
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]]
Пример #28
0
    def __init__(self):
        degree = TextBox(name="degree",
                         label="Degree",
                         knowl="hgm.degree",
                         example="4",
                         extra=['class="family"'])
        weight = TextBox(name="weight",
                         label="Weight",
                         knowl="hgm.weight",
                         example="3",
                         extra=['class="family"'])
        famhodge = TextBox(name="famhodge",
                           label="Family Hodge vector",
                           knowl="hgm.familyhodgevector",
                           example="[1,1,1,1]",
                           extra=['class="family"'])
        A = TextBox(name="A",
                    label="$A$",
                    knowl="hgm.defining_parameters",
                    example="[3,2,2]",
                    extra=['class="family"'])
        B = TextBox(name="B",
                    label="$B$",
                    knowl="hgm.defining_parameters",
                    example="[6,4]",
                    extra=['class="family"'])
        p = SelectBox(name="p",
                      label="Prime $p$",
                      example_col=True,
                      options=[("", 2), ("3", 3), ("5", 5), ("7", 7)])
        Ap = TextBox(name="Ap",
                     label="$A_p$",
                     knowl="hgm.defining_parameter_ppart",
                     example="[2,2,1,1]",
                     extra=['class="family"'])
        Bp = TextBox(name="Bp",
                     label="$B_p$",
                     knowl="hgm.defining_parameter_ppart",
                     example="[2,2,1,1]",
                     extra=['class="family"'])
        Apperp = TextBox(name="Apperp",
                         label=r"$A^\perp_p$",
                         knowl="hgm.defining_parameter_primetoppart",
                         example="[2,2,1,1]",
                         extra=['class="family"'])
        Bpperp = TextBox(name="Bpperp",
                         label=r"$B^\perp_p$",
                         knowl="hgm.defining_parameter_primetoppart",
                         example="[2,2,1,1]",
                         extra=['class="family"'])
        spacer = BasicSpacer("")

        conductor = TextBox(
            name="conductor",
            label="Conductor",
            knowl="hgm.conductor",
            example="64",
            example_span=
            "a value, like 32, a list, like 32,64, or a range like 1..10000")
        hodge = TextBox(name="hodge",
                        label="Hodge vector",
                        knowl="mot.hodgevector",
                        example="[1,1,1,1]")
        t = TextBox(
            name="t",
            label="Specialization point $t$",
            knowl="hgm.specpoint",
            example="3/2",
            example_span=
            "3/2 (1 has an associated degree drop and is always in the database)"
        )
        sign = TextBoxNoEg(
            name="sign",
            label=r"Root number $\epsilon$",
            knowl="lfunction.sign",
            example="-1",
            example_span=
            "1 or -1, with -1 occurring only in the symplectic case")
        # The following two boxes are not yet enabled
        #generic = YesNoBox(
        #    name="generic",
        #    label="Generic",
        #    knowl="hgm.generic")
        #irreducible = YesNoBox(
        #    name="irreducible",
        #    label="Irreducible",
        #    knowl="hgm.irreducible")
        count = CountBox()

        self.family_array = [[degree, weight], [famhodge, A, B], [p, Ap, Bp],
                             [spacer, Apperp, Bpperp]]

        self.motive_array = [[conductor], [hodge], [t], [sign], [count]]

        self.refine_family_array = [[degree, weight, famhodge, A, B],
                                    [p, Ap, Bp, Apperp, Bpperp]]

        self.refine_motive_array = [[degree, weight, famhodge, A, B],
                                    [conductor, t, hodge, sign],
                                    [p, Ap, Bp, Apperp, Bpperp]]
Пример #29
0
    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]]
Пример #30
0
    def __init__(self):
        dimension = TextBox(
            name="dimension",
            label="Dimension",
            knowl="artin.dimension",
            example="2",
            example_span="1, 2-4")
        conductor = TextBox(
            name="conductor",
            label="Conductor",
            knowl="artin.conductor",
            example="51,100-200")
        group = TextBoxNoEg(
            name="group",
            label="Group",
            knowl="artin.gg_quotient",
            example="A5",
            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")))
        parity = ParityBox(
            name="parity",
            label="Parity",
            knowl="artin.parity")
        container = TextBox(
            name="container",
            label="Smallest permutation container",
            short_label="Smallest permutation",
            knowl="artin.permutation_container",
            example="6T13",
            example_span="6T13 or 7T6")
        ram_quantifier = SubsetNoExcludeBox(
            name="ram_quantifier")
        ramified = TextBoxWithSelect(
            name="ramified",
            label="Ramified primes",
            short_label="Ramified",
            knowl="artin.ramified_primes",
            example="2, 3",
            select_box=ram_quantifier,
            example_span="2, 3 (no range allowed)")
        unramified = TextBox(
            name="unramified",
            label="Unramified primes",
            knowl="artin.unramified_primes",
            example="5,7",
            example_span="5, 7, 13 (no range allowed)")
        num_ram = TextBox(
            name="num_ram",
            label="Ramified prime count",
            knowl="artin.ramified_primes",
            example="1")
        root_number = TextBoxNoEg(
            name="root_number",
            label="Root number",
            knowl="artin.root_number",
            example="1",
            example_span="at the moment, one of 1 or -1")
        fsind = TextBoxNoEg(
            name="frobenius_schur_indicator",
            label="Frobenius-Schur indicator",
            short_label="Frobenius-Schur",
            knowl="artin.frobenius_schur_indicator",
            example="1",
            example_span="+1 for orthogonal, -1 for symplectic, 0 for non-real character")
        projective_image = TextBoxNoEg(
            name='projective_image',
            label='Projective image',
            knowl='artin.projective_image',
            example_span="a GAP id, such as [4,1] or [12,5], a transitive group in nTj notation, such as 5T1, or a <a title = 'Galois group labels' knowl='nf.galois_group.name'>group label</a>.",
            example='D5')
        projective_image_type = SelectBoxNoEg(
            name='projective_image_type',
            knowl='artin.projective_image_type',
            label='Projective image type',
            example_span='',
            options=[('', ''),
                     ('Dn', 'Dn'),
                     ('A4', 'A4'),
                     ('S4', 'S4'),
                     ('A5','A5')])
        count = CountBox()

        self.browse_array = [
            [dimension],
            [conductor],
            [group],
            [parity],
            [container],
            [ramified],
            [unramified],
            [num_ram],
            [root_number],
            [fsind],
            [projective_image],
            [projective_image_type],
            [count]]

        self.refine_array = [
            [dimension, conductor, group, root_number, parity],
            [container, ramified, unramified, num_ram, fsind],
            [projective_image, projective_image_type]]