Module: sage.modular.hecke.module
Module-level Functions
x) |
Class: HeckeModule_free_module
self, base_ring, level, weight) |
Functions: ambient,
ambient_module,
atkin_lehner_operator,
basis,
decomposition,
degree,
dual_eigenvector,
dual_hecke_matrix,
eigenvalue,
factor_number,
gen,
hecke_matrix,
hecke_operator,
hecke_polynomial,
is_simple,
is_splittable,
is_splittable_anemic,
is_submodule,
ngens,
projection,
system_of_eigenvalues,
T,
weight,
zero_submodule
self, [d=None]) |
Return the Atkin-Lehner operator
on this space, if
defined, where
is a divisor of the level
such that
and
are coprime.
sage: M = ModularSymbols(11) sage: w = M.atkin_lehner_operator() sage: w Hecke module morphism Atkin-Lehner operator W_11 defined by the matrix [-1 0 0] [ 0 -1 0] [ 0 0 -1] Domain: Modular Symbols space of dimension 3 for Gamma_0(11) of weight ... Codomain: Modular Symbols space of dimension 3 for Gamma_0(11) of weight ... sage: M = ModularSymbols(Gamma1(13)) sage: w = M.atkin_lehner_operator() sage: w.fcp() (x - 1)^7 * (x + 1)^8
sage: M = ModularSymbols(33) sage: S = M.cuspidal_submodule() sage: S.atkin_lehner_operator() Hecke module morphism Atkin-Lehner operator W_33 defined by the matrix (not printing 6 x 6 matrix) Domain: Modular Symbols subspace of dimension 6 of Modular Symbols space ... Codomain: Modular Symbols subspace of dimension 6 of Modular Symbols space ...
sage: S.atkin_lehner_operator(3) Hecke module morphism Atkin-Lehner operator W_3 defined by the matrix (not printing 6 x 6 matrix) Domain: Modular Symbols subspace of dimension 6 of Modular Symbols space ... Codomain: Modular Symbols subspace of dimension 6 of Modular Symbols space ...
sage: N = M.new_submodule() sage: N.atkin_lehner_operator() Hecke module morphism Atkin-Lehner operator W_33 defined by the matrix [ 1 2/5 4/5] [ 0 -1 0] [ 0 0 -1] Domain: Modular Symbols subspace of dimension 3 of Modular Symbols space ... Codomain: Modular Symbols subspace of dimension 3 of Modular Symbols space ...
self) |
Returns a basis for self.
self, [bound=False], [anemic=True], [compute_dual=None]) |
Returns the maximal decomposition of this Hecke module under the action of Hecke operators of index coprime to the level. This is the finest decomposition of self that we can obtain using factors obtained by taking kernels of Hecke operators.
Each factor in the decomposition is a Hecke submodule obtained
as the kernel of
acting on self, where n is coprime
to the level and
. If anemic if False, instead choose
so that
exactly divides the characteristic
polynomial.
INPUT: anemic -- bool (default: True), if True, use only Hecke operators of index coprime to the level. compute_dual -- bool (default: False) also compute dual subspaces along the way. These are useful for many algorithms. This is only allowed for ambient Hecke modules. bound -- int or None, (default: None). If None, use all Hecke operators up to the Sturm bound, and hence obtain the same result as one would obtain by using every element of the Hecke ring. If a fixed integer, decompose using only Hecke operators T_p, with p prime, up to bound. OUTPUT: list -- a list of subspaces of self.
self) |
Return an eigenvector for the Hecke operators acting on the linear dual of this space. This eigenvector will have entries in an extension of the base ring of degree equal to the dimension of this space.
INPUT: The input space must be simple. OUTPUT: A vector with entries possibly in an extension of the base ring. This vector is an eigenvector for all Hecke operators acting via their transpose.
NOTES: (1) The answer is cached so subsequent calls always return the same vector. However, the algorithm is randomized, so calls during another session may yield a different eigenvector. This function is used mainly for computing systems of Hecke eigenvalues.
(2) One can also view a dual eigenvector as defining (via dot product) a functional phi from the ambient space of modular symbols to a field. This functional phi is an eigenvector for the dual action of Hecke operators on functionals.
self, n) |
The matrix of the
-th Hecke operator acting on the dual
embedded representation of self.
self, n) |
Assuming that self is a simple space, return the eigenvalue of
the
th Hecke operator on self.
NOTES:
(1) In fact there are
systems of eigenvalues associated to
self, where
is the rank of self. Each of the systems of
eigenvalues is conjugate over the base field. This function
chooses one of the systems and consistently returns
eigenvalues from that system. Thus these are the coefficients
for
of a modular eigenform attached to self.
(2) This function works even for Eisenstein subspaces, though it will not give the constant coefficient of one of the corresponding Eisenstein series (i.e., the generalized Bernoulli number).
self) |
If this Hecke module was computed via a decomposition of another Hecke module, this is the corresponding number. Otherwise return -1.
self, n) |
The matrix of the
-th Hecke operator acting on given basis.
self, n) |
Returns the n-th Hecke operator
.
INPUT: ModularSymbols self -- Hecke equivariant space of modular symbols int n -- an integer at least 1.
self, n) |
Return the characteristic polynomial of the n-th Hecke operator acting on this space.
INPUT: n -- integer OUTPUT: a polynomial
self) |
Returns True if and only if only it is possible to split off a nontrivial generalized eigenspace of self as the kernel of some Hecke operator.
self) |
Returns true if and only if only it is possible to split off a nontrivial generalized eigenspace of self as the kernel of some Hecke operator of index coprime to the level.
self) |
Return the projection map from the ambient space to self.
ALGORITHM:
Let
be the matrix whose columns are got by
concatenating together a basis for the factors of the
ambient space. Then the projection matrix onto self is
the submatrix of
got from the rows corresponding
to self, i.e., if the basis vectors for self appear as
columns
through
of
, then the projection matrix
is got from rows
through
of
. This is
because projection with respect to the B basis is just
given by an
row slice
of a diagonal matrix D
with 1's in the
through
positions, so projection
with respect to the standard basis is given by
, which is just rows
through
of
.
self, n) |
Assuming that self is a simple space of modular symbols, return
the eigenvalues
of the Hecke operators
on self. See
self.eigenvalue(n)
for more details.
self, n) |
Returns the
-th Hecke operator
. This function is a
synonym for
hecke_operator
.
self) |
Returns the weight of this modular symbols space.
INPUT: ModularSymbols self -- an arbitrary space of modular symbols OUTPUT: int -- the weight
sage: m = ModularSymbols(20, weight=2) sage: m.weight() 2
self) |
Return the zero submodule of self.
Special Functions: __cmp__,
__contains__,
__getitem__,
__len__,
_eigen_nonzero,
_eigen_nonzero_element,
_element_eigenvalue,
_hecke_image_of_ith_basis_vector,
_set_factor_number
self, [n=1]) |
Return
where
is a sparse modular symbol such that
the image of
is nonzero under the dual projection map
associated to this space, and
is the
-th Hecke
operator.
self, n, i) |
Return
, where
is the
th basis vector of
the ambient space.
Class: HeckeModule_generic
All Hecke module classes derive from this class--spaces of modular symbols (free modules), modular forms (finite-rank free modules), modular abelian varieties (infinitely divisible groups), torsion submodules of abelian varieties (finite groups), etc.
self, base_ring, level) |
Functions: anemic_hecke_algebra,
base_ring,
basis_matrix,
category,
character,
dimension,
hecke_algebra,
is_full_hecke_module,
is_hecke_invariant,
level,
submodule
self) |
Return the Hecke algebra associated to this Hecke module.
sage: T = ModularSymbols(1,12).hecke_algebra() sage: A = ModularSymbols(1,12).anemic_hecke_algebra() sage: T == A False sage: A Anemic Hecke algebra acting on Modular Symbols space of dimension 3 for Gamma_0(1) of weight 12 with sign 0 over Rational Field
sage: A.is_anemic() True
self) |
Return the Hecke algebra associated to this Hecke module.
sage: T = ModularSymbols(Gamma1(5),3).hecke_algebra() sage: T Full Hecke algebra acting on Modular Symbols space of dimension 4 for Gamma_1(5) of weight 3 with sign 0 and over Rational Field sage: T.is_anemic() False
sage: M = ModularSymbols(37,sign=1) sage: E, A, B = M.decomposition() sage: A.hecke_algebra() == B.hecke_algebra() False
self) |
Return True if this space is invariant under all Hecke operators.
self, n) |
Return True if self is invariant under the Hecke operator
.
self) |
Returns the level of this modular symbols space.
INPUT: ModularSymbols self -- an arbitrary space of modular symbols OUTPUT: int -- the level
sage: m = ModularSymbols(20) sage: m.level() 20
Special Functions: __cmp__,
_compute_dual_hecke_matrix,
_compute_hecke_matrix,
_compute_hecke_matrix_general_product,
_compute_hecke_matrix_prime,
_compute_hecke_matrix_prime_power
self, p) |
Compute and return the matrix of the p-th Hecke operator.