Modular degrees oldforms¶
- mdsage.modular_degrees_oldforms.degree_pairing(E, N)¶
For a modular elliptic curve E of level M and an integer N that is a multiple of M give the degree pairing on $Hom(J0(N),E) otimes mathbb QQ$ as a matrix with respect to the basis coming from the degeneracy maps.
EXAMPLES:
sage: from mdsage.modular_degrees_oldforms import * sage: GN = Gamma0(37) sage: SN = GN.modular_symbols().cuspidal_subspace() sage: SE = SN.decomposition()[0] sage: E = SE.abelian_variety() sage: degree_pairing(E, 37*4*9) [ 144 -96 -108 24 72 60 -18 -40 10] [ -96 144 72 -96 -108 -40 72 60 -40] [-108 72 144 -18 -96 -108 24 72 -18] [ 24 -96 -18 144 72 10 -108 -40 60] [ 72 -108 -96 72 144 72 -96 -108 72] [ 60 -40 -108 10 72 144 -18 -96 24] [ -18 72 24 -108 -96 -18 144 72 -108] [ -40 60 72 -40 -108 -96 72 144 -96] [ 10 -40 -18 60 72 24 -108 -96 144]
- mdsage.modular_degrees_oldforms.degree_quadratic_form(E, N)¶
For a modular elliptic curve E of level M and an integer N that is a multiple of M, give the degree quadratic form on $Hom(J0(N),E) otimes mathbb QQ$ as a quadratic multivariate polynomial with respect to the basis coming from the degeneracy maps.
EXAMPLES:
sage: from mdsage.modular_degrees_oldforms import * sage: GN = Gamma0(37) sage: SN = GN.modular_symbols().cuspidal_subspace() sage: SE = SN.decomposition()[0] sage: E = SE.abelian_variety() sage: degree_quadratic_form(E, 37*2*3) 24*x0^2 - 32*x0*x1 + 24*x1^2 - 36*x0*x2 + 24*x1*x2 + 24*x2^2 + 24*x0*x3 - 36*x1*x3 - 32*x2*x3 + 24*x3^2
- mdsage.modular_degrees_oldforms.modular_symbol_elliptic_curves(N, sign=None)¶
INPUT:
N - an integer giving the conductor of the elliptic curves to be returned
sign (optional) - an integer that should be +/-1. Only elliptic curves where atkin lehner acts with this sign on the associated newform are returned. If no sign is given then both elliptic curves of both signs will be returned.
OUTPUT:
An iterator of all strong weil elliptic curves of conductor N. The returned curves are returned as modular abelian varieties associated to modular symbol spaces rather then elliptic curves given by a Weierstrass equation.
Examples:
sage: from mdsage.modular_degrees_oldforms import * sage: list(modular_symbol_elliptic_curves(37)) [Abelian subvariety of dimension 1 of J0(37), Abelian subvariety of dimension 1 of J0(37)] sage: list(modular_symbol_elliptic_curves(37,sign=1)) [Abelian subvariety of dimension 1 of J0(37)] sage: list(modular_symbol_elliptic_curves(37,sign=-1)) [Abelian subvariety of dimension 1 of J0(37)]
- mdsage.modular_degrees_oldforms.modular_symbol_elliptic_curves_divisors(N, sign=None)¶
Does the same as
mdsage.modular_degrees_oldforms.modular_symbol_elliptic_curves()
but then all elliptic curves of conductor strictly dividing N instead of equal to N.Examples:
sage: from mdsage.modular_degrees_oldforms import * sage: list(modular_symbol_elliptic_curves_divisors(210)) [Abelian variety J0(14) of dimension 1, Abelian variety J0(15) of dimension 1, Abelian variety J0(21) of dimension 1, Abelian subvariety of dimension 1 of J0(30), Abelian subvariety of dimension 1 of J0(35), Abelian subvariety of dimension 1 of J0(42), Abelian subvariety of dimension 1 of J0(70), Abelian subvariety of dimension 1 of J0(105)] sage: list(modular_symbol_elliptic_curves_divisors(210, sign=1)) []
- mdsage.modular_degrees_oldforms.modular_symbol_elliptic_curves_range(N, sign=None)¶
Does the same as
mdsage.modular_degrees_oldforms.modular_symbol_elliptic_curves()
but then all elliptic curves of conductor < N instead of equal to N.Examples:
sage: from mdsage.modular_degrees_oldforms import * sage: list(modular_symbol_elliptic_curves_range(37)) [Abelian variety J0(11) of dimension 1, Abelian variety J0(14) of dimension 1, Abelian variety J0(15) of dimension 1, Abelian variety J0(17) of dimension 1, Abelian variety J0(19) of dimension 1, Abelian variety J0(20) of dimension 1, Abelian variety J0(21) of dimension 1, Abelian variety J0(24) of dimension 1, Abelian subvariety of dimension 1 of J0(26), Abelian subvariety of dimension 1 of J0(26), Abelian variety J0(27) of dimension 1, Abelian subvariety of dimension 1 of J0(30), Abelian variety J0(32) of dimension 1, Abelian subvariety of dimension 1 of J0(33), Abelian subvariety of dimension 1 of J0(34), Abelian subvariety of dimension 1 of J0(35), Abelian variety J0(36) of dimension 1]
- mdsage.modular_degrees_oldforms.product_isogeny_map(E, N)¶
For a modular elliptic curve E of level M give and an integer N such that M divides N, this computes the map $E^n \to J_0(N)$ where $n$ is the number of divisors of N/M. The $i$-th coordinate of this map is given by the degeneracy map $J_0(M) to J_0(N)$ corresponding to the $i$-th divisor of N/M.
Examples:
sage: from mdsage.modular_degrees_oldforms import * sage: GN = Gamma0(37) sage: SN = GN.modular_symbols().cuspidal_subspace() sage: SE = SN.decomposition()[0] sage: E = SE.abelian_variety() sage: xi = product_isogeny_map(E,6*37); xi Abelian variety morphism: From: Abelian subvariety of dimension 4 of J0(37) x J0(37) x J0(37) x J0(37) To: Abelian variety J0(222) of dimension 35 sage: xi.kernel()[0].invariants() []