Example #1
0
def abelian_variety_search(info, query):
    parse_ints(info,query,'q',name='base field')
    parse_ints(info,query,'g',name='dimension')
    parse_bool(info,query,'simple',qfield='is_simp')
    parse_bool(info,query,'primitive',qfield='is_prim')
    parse_bool_unknown(info, query, 'jacobian', qfield='is_jac')
    parse_bool_unknown(info, query, 'polarizable', qfield='is_pp')
    parse_ints(info,query,'p_rank')
    parse_ints(info,query,'ang_rank')
    parse_newton_polygon(info,query,'newton_polygon',qfield='slps')
    parse_string_start(info,query,'initial_coefficients',qfield='poly_str',initial_segment=["1"])
    parse_string_start(info,query,'abvar_point_count',qfield='A_cnts_str')
    parse_string_start(info,query,'curve_point_count',qfield='C_cnts_str',first_field='pt_cnt')
    if info.get('simple_quantifier') == 'contained':
        parse_subset(info,query,'simple_factors',qfield='simple_distinct',mode='subsets')
    elif info.get('simple_quantifier') == 'exactly':
        parse_subset(info,query,'simple_factors',qfield='simple_distinct',mode='exact')
    elif info.get('simple_quantifier') == 'include':
        parse_submultiset(info,query,'simple_factors',mode='append')
    for n in range(1,6):
        parse_ints(info,query,'dim%s_factors'%n)
    for n in range(1,4):
        parse_ints(info,query,'dim%s_distinct'%n)
    parse_nf_string(info,query,'number_field',qfield='nf')
    parse_galgrp(info,query,qfield=('galois_n','galois_t'))
Example #2
0
def abelian_variety_search(info, query):
    parse_ints(info,query,'q',name='base field')
    parse_ints(info,query,'g',name='dimension')
    parse_bool(info,query,'simple',qfield='is_simp')
    parse_bool(info,query,'primitive',qfield='is_prim')
    parse_bool_unknown(info, query, 'jacobian', qfield='is_jac')
    parse_bool_unknown(info, query, 'polarizable', qfield='is_pp')
    parse_ints(info,query,'p_rank')
    parse_ints(info,query,'ang_rank')
    parse_newton_polygon(info,query,'newton_polygon',qfield='slps')
    parse_string_start(info,query,'initial_coefficients',qfield='poly_str',initial_segment=["1"])
    parse_string_start(info,query,'abvar_point_count',qfield='A_cnts_str')
    parse_string_start(info,query,'curve_point_count',qfield='C_cnts_str',first_field='pt_cnt')
    if info.get('simple_quantifier') == 'contained':
        parse_subset(info,query,'simple_factors',qfield='simple_distinct',mode='subsets')
    elif info.get('simple_quantifier') == 'exactly':
        parse_subset(info,query,'simple_factors',qfield='simple_distinct',mode='exact')
    elif info.get('simple_quantifier') == 'include':
        parse_submultiset(info,query,'simple_factors',mode='append')
    for n in range(1,6):
        parse_ints(info,query,'dim%s_factors'%n)
    for n in range(1,4):
        parse_ints(info,query,'dim%s_distinct'%n)
    parse_nf_string(info,query,'number_field',qfield='nf')
    parse_galgrp(info,query,qfield=('galois_n','galois_t'))
Example #3
0
def common_parse(info, query):
    parse_ints(info, query, "q", name="base field")
    parse_ints(info, query, "p", name="base cardinality")
    parse_ints(info, query, "g", name="dimension")
    parse_ints(info, query, "geom_deg", qfield="geometric_extension_degree")
    parse_bool(info, query, "simple", qfield="is_simple")
    parse_bool(info, query, "geom_simple", qfield="is_geometrically_simple")
    parse_bool(info, query, "primitive", qfield="is_primitive")
    parse_bool_unknown(info, query, "jacobian", qfield="has_jacobian")
    parse_bool_unknown(info, query, "polarizable", qfield="has_principal_polarization")
    parse_ints(info, query, "p_rank")
    parse_ints(info, query, "p_rank_deficit")
    parse_ints(info, query, "angle_rank")
    parse_ints(info, query, "jac_cnt", qfield="jacobian_count", name="Number of Jacobians")
    parse_ints(info, query, "hyp_cnt", qfield="hyp_count", name="Number of Hyperelliptic Jacobians")
    parse_ints(info, query, "twist_count")
    parse_ints(info, query, "max_twist_degree")
    parse_ints(info, query, "size")
    parse_newton_polygon(info, query, "newton_polygon", qfield="slopes")
    parse_string_start(info, query, "initial_coefficients", qfield="poly_str", initial_segment=["1"])
    parse_string_start(info, query, "abvar_point_count", qfield="abvar_counts_str", first_field="abvar_count")
    parse_string_start(info, query, "curve_point_count", qfield="curve_counts_str", first_field="curve_count")
    if info.get("simple_quantifier") in ["subset", "exactly"]:
        parse_subset(info, query, "simple_factors", qfield="simple_distinct", mode=info.get("simple_quantifier"))
    else:
        parse_submultiset(info, query, "simple_factors")
    if info.get("use_geom_decomp") == "on":
        dimstr = "geom_dim"
        nf_qfield = "geometric_number_fields"
        gal_qfield = "geometric_galois_groups"
    else:
        dimstr = "dim"
        nf_qfield = "number_fields"
        gal_qfield = "galois_groups"
    for n in range(1, 6):
        parse_ints(info, query, "dim%s_factors" % n, qfield="%s%s_factors" % (dimstr, n))
    for n in range(1, 4):
        parse_ints(info, query, "dim%s_distinct" % n, qfield="%s%s_distinct" % (dimstr, n))
    parse_nf_string(info, query, "number_field", qfield=nf_qfield)
    parse_galgrp(info, query, "galois_group", qfield=gal_qfield)

    if 'geom_squarefree' in info:
        if info['geom_squarefree'] == 'Yes':
            query['is_squarefree'] = True

        elif info['geom_squarefree'] == 'YesAndGeom':
            query['is_squarefree'] = True
            query['is_geometrically_squarefree'] = True

        elif info['geom_squarefree'] == 'YesNotGeom':
            query['is_squarefree'] = True
            query['is_geometrically_squarefree'] = False

        elif info['geom_squarefree'] == 'No':
            query['is_squarefree'] = False

        elif info['geom_squarefree'] == 'NotGeom':
            query['is_geometrically_squarefree'] = False