Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
""" Constructors for certain modular abelian varieties
AUTHORS:
- William Stein (2007-03) """ ########################################################################### # Copyright (C) 2007 William Stein <wstein@gmail.com> # # Distributed under the terms of the GNU General Public License (GPL) # # http://www.gnu.org/licenses/ # ########################################################################### from __future__ import absolute_import from six import integer_types
import weakref
from sage.rings.integer import Integer
from sage.modular.arithgroup.all import is_CongruenceSubgroup, Gamma0 from sage.modular.modsym.space import is_ModularSymbolsSpace from .abvar_newform import ModularAbelianVariety_newform import sage.modular.modform.element from . import abvar
_cache = {}
def _get(key): """ Returns the cached abelian variety with given key. This is used internally by the abelian varieties constructor.
INPUT:
- ``key`` - hashable
EXAMPLES::
sage: sage.modular.abvar.constructor._saved('a', J0(37)) Abelian variety J0(37) of dimension 2 sage: sage.modular.abvar.constructor._get('a') Abelian variety J0(37) of dimension 2 sage: sage.modular.abvar.constructor._get('b') Traceback (most recent call last): ... ValueError: element not in cache """
def _saved(key, J): """ Returns the cached abelian variety with given key. This is used internally by the abelian varieties constructor.
INPUT:
- ``key`` - hashable
- ``J`` - modular abelian variety
OUTPUT:
- ``J`` - returns the modabvar, to make code that uses this simpler
EXAMPLES::
sage: sage.modular.abvar.constructor._saved('37', J0(37)) Abelian variety J0(37) of dimension 2 """
def J0(N): """ Return the Jacobian `J_0(N)` of the modular curve `X_0(N)`.
EXAMPLES::
sage: J0(389) Abelian variety J0(389) of dimension 32
The result is cached::
sage: J0(33) is J0(33) True """
def J1(N): """ Return the Jacobian `J_1(N)` of the modular curve `X_1(N)`.
EXAMPLES::
sage: J1(389) Abelian variety J1(389) of dimension 6112 """
def JH(N, H): """ Return the Jacobian `J_H(N)` of the modular curve `X_H(N)`.
EXAMPLES::
sage: JH(389,[16]) Abelian variety JH(389,[16]) of dimension 64 """
def AbelianVariety(X): """ Create the abelian variety corresponding to the given defining data.
INPUT:
- ``X`` - an integer, string, newform, modsym space, congruence subgroup or tuple of congruence subgroups
OUTPUT: a modular abelian variety
EXAMPLES::
sage: AbelianVariety(Gamma0(37)) Abelian variety J0(37) of dimension 2 sage: AbelianVariety('37a') Newform abelian subvariety 37a of dimension 1 of J0(37) sage: AbelianVariety(Newform('37a')) Newform abelian subvariety 37a of dimension 1 of J0(37) sage: AbelianVariety(ModularSymbols(37).cuspidal_submodule()) Abelian variety J0(37) of dimension 2 sage: AbelianVariety((Gamma0(37), Gamma0(11))) Abelian variety J0(37) x J0(11) of dimension 3 sage: AbelianVariety(37) Abelian variety J0(37) of dimension 2 sage: AbelianVariety([1,2,3]) Traceback (most recent call last): ... TypeError: X must be an integer, string, newform, modsym space, congruence subgroup or tuple of congruence subgroups """
|