Modular Unit Divisors

This is a sage version of the original maple code by Mark van Hoeij. This maple code can be found at:

The code is for computing divisors of the modular unit F_k as defined in: Arxiv 1307.5719

mdsage.modular_unit_divisors.Phi(d)

Function Phi in Mark his code

mdsage.modular_unit_divisors.cusp_number_from_signature(signature, N)

The cusp signature of a cusp on X_1(N) is a pair (v2,v3). Where v2 is the valuation of F_2 and v3 the valuation of F_3

mdsage.modular_unit_divisors.cusp_sums_from_signature_to_standard_basis(cuspsums, signatures, level)

Converts a list of cuspsums where each entry is a list of multiplicities with respect to the input signature order. To a list of cuspsums where each entry is a list of multiplicities with respect to the standard order of the cusps.

mdsage.modular_unit_divisors.cuspsums_on_Gamma1_of_degree(N, degree)

Returns all rational sums of cusps on X_1(N) of a given degree.

INPUT:

  • N - an integer

  • degree - an integer

OUTPUT:

  • A set of tuples of integers. Each output tuple (t_0,…,t_n) has length N//2+1 (i.e. n = N//2). A tuple (t_0,…,t_n) encodes the cuspsum t_0*C_0 + t_1*C_1 + … + t_n*C_n. Where the C_i are as defined on page 4 of http://arxiv.org/pdf/1307.5719v2.pdf .

EXAMPLES:

sage: from mdsage import *
sage: sorted(cuspsums_on_Gamma1_of_degree(5,3))
[(0, 0, 3), (0, 1, 2), (0, 2, 1), (0, 3, 0), (1, 0, 1), (1, 1, 0)]

Note that the degrees of the cusps C_0,C_1,C_2 in this case are 2,1,1 respectively so each cusp sum above indeed has total degree 3.

mdsage.modular_unit_divisors.degree_cusp(i, N)

Function DegreeCusp in Mark his code

returns the degree over Q of the cusp $q^(i/n)zeta_n^j$ on X_1(N)

mdsage.modular_unit_divisors.divisor_F_bc(N, k)

Function Divisor_F_bc in Mark his code, return the divisor of F_k as function on X_1(N)

mdsage.modular_unit_divisors.inverse_gcd(i, N)

Function IG in Mark his code

mdsage.modular_unit_divisors.min_formula(N, t)

Function MinFormula in Mark his code

mdsage.modular_unit_divisors.split_into_diamond_orbits(cuspsums, level)

Input a list of cuspsums w.r.t. to the standard basis. Output a list of orbits of these cuspsums.