Hecke operators

class sage.modular.hecke.hecke_operator.HeckeAlgebraElement(parent)

Bases: sage.structure.element.AlgebraElement

Base class for elements of Hecke algebras.

apply_sparse(x)

Apply this Hecke operator to x, where we avoid computing the matrix of x if possible.

EXAMPLES:

sage: M = ModularSymbols(11)
sage: T = M.hecke_operator(23)
sage: T.apply_sparse(M.gen(0))
24*(1,0) - 5*(1,9)
charpoly(var='x')

Return the characteristic polynomial of this Hecke operator.

INPUT:

  • var - string (default: ‘x’)

OUTPUT: a monic polynomial in the given variable.

EXAMPLES:

sage: M = ModularSymbols(Gamma1(6),4)
sage: M.hecke_operator(2).charpoly('x')
x^6 - 14*x^5 + 29*x^4 + 172*x^3 - 124*x^2 - 320*x + 256
codomain()

The codomain of this operator. This is the Hecke module associated to the parent Hecke algebra.

EXAMPLE:

sage: R = ModularForms(Gamma0(7), 4).hecke_algebra()
sage: sage.modular.hecke.hecke_operator.HeckeAlgebraElement(R).codomain()
Modular Forms space of dimension 3 for Congruence Subgroup Gamma0(7) of weight 4 over Rational Field
decomposition()

Decompose the Hecke module under the action of this Hecke operator.

EXAMPLES:

sage: M = ModularSymbols(11)
sage: t2 = M.hecke_operator(2)
sage: t2.decomposition()
[
Modular Symbols subspace of dimension 1 of Modular Symbols space of dimension 3 for Gamma_0(11) of weight 2 with sign 0 over Rational Field,
Modular Symbols subspace of dimension 2 of Modular Symbols space of dimension 3 for Gamma_0(11) of weight 2 with sign 0 over Rational Field
]
sage: M = ModularSymbols(33, sign=1).new_submodule()
sage: T = M.hecke_operator(2)
sage: T.decomposition()
[
Modular Symbols subspace of dimension 1 of Modular Symbols space of dimension 6 for Gamma_0(33) of weight 2 with sign 1 over Rational Field,
Modular Symbols subspace of dimension 1 of Modular Symbols space of dimension 6 for Gamma_0(33) of weight 2 with sign 1 over Rational Field
]
det()

Return the determinant of this Hecke operator.

EXAMPLES:

sage: M = ModularSymbols(23)
sage: T = M.hecke_operator(3)
sage: T.det()
100
domain()

The domain of this operator. This is the Hecke module associated to the parent Hecke algebra.

EXAMPLE:

sage: R = ModularForms(Gamma0(7), 4).hecke_algebra()
sage: sage.modular.hecke.hecke_operator.HeckeAlgebraElement(R).domain()
 Modular Forms space of dimension 3 for Congruence Subgroup Gamma0(7) of weight 4 over Rational Field
fcp(var='x')

Return the factorization of the characteristic polynomial of this Hecke operator.

EXAMPLES:

sage: M = ModularSymbols(23)
sage: T = M.hecke_operator(3)
sage: T.fcp('x')
(x - 4) * (x^2 - 5)^2
hecke_module_morphism()

Return the endomorphism of Hecke modules defined by the matrix attached to this Hecke operator.

EXAMPLES:

sage: M = ModularSymbols(Gamma1(13))
sage: t = M.hecke_operator(2)
sage: t
Hecke operator T_2 on Modular Symbols space of dimension 15 for Gamma_1(13) of weight 2 with sign 0 and over Rational Field
sage: t.hecke_module_morphism()
Hecke module morphism T_2 defined by the matrix
[ 2  1  0  0  0  0  0  0  0  0  0  0  0  0 -1]                                               
[ 0  2  0  1  0  0  0 -1  0  0  0  0  0  0  0]                                               
[ 0  0  2  0  0  1 -1  1  0 -1  0  1 -1  0  0]                                               
[ 0  0  0  2  1  0  1  0  0  0  1 -1  0  0  0]                                               
[ 0  0  1  0  2  0  0  0  0  1 -1  0  0  0  1]                                               
[ 1  0  0  0  0  2  0  0  0  0  0  0  1  0  0]                                               
[ 0  0  0  0  0  0  0  1 -1  1 -1  0 -1  1  1]                                               
[ 0  0  0  0  0  0  0 -1  1  1  0  0 -1  1  0]                                               
[ 0  0  0  0  0  0 -1 -1  0  1 -1 -1  1  0 -1]                                               
[ 0  0  0  0  0  0 -2  0  2 -2  0  2 -2  1 -1]                                               
[ 0  0  0  0  0  0  0  0  2 -1  1  0  0  1 -1]                                               
[ 0  0  0  0  0  0 -1  1  2 -1  1  0 -2  2  0]                                               
[ 0  0  0  0  0  0  0  0  1  1  0 -1  0  0  0]                                               
[ 0  0  0  0  0  0 -1  1  1  0  1  1 -1  0  0]                                               
[ 0  0  0  0  0  0  2  0  0  0  2 -1  0  1 -1]                                               
Domain: Modular Symbols space of dimension 15 for Gamma_1(13) of weight ...
Codomain: Modular Symbols space of dimension 15 for Gamma_1(13) of weight ...
image()

Return the image of this Hecke operator.

EXAMPLES:

sage: M = ModularSymbols(23)
sage: T = M.hecke_operator(3)
sage: T.fcp('x')
(x - 4) * (x^2 - 5)^2
sage: T.image()
Modular Symbols subspace of dimension 5 of Modular Symbols space of dimension 5 for Gamma_0(23) of weight 2 with sign 0 over Rational Field
sage: (T-4).image()
Modular Symbols subspace of dimension 4 of Modular Symbols space of dimension 5 for Gamma_0(23) of weight 2 with sign 0 over Rational Field
sage: (T**2-5).image()
Modular Symbols subspace of dimension 1 of Modular Symbols space of dimension 5 for Gamma_0(23) of weight 2 with sign 0 over Rational Field
kernel()

Return the kernel of this Hecke operator.

EXAMPLES:

sage: M = ModularSymbols(23)
sage: T = M.hecke_operator(3)
sage: T.fcp('x')
(x - 4) * (x^2 - 5)^2
sage: T.kernel()
Modular Symbols subspace of dimension 0 of Modular Symbols space of dimension 5 for Gamma_0(23) of weight 2 with sign 0 over Rational Field
sage: (T-4).kernel()
Modular Symbols subspace of dimension 1 of Modular Symbols space of dimension 5 for Gamma_0(23) of weight 2 with sign 0 over Rational Field
sage: (T**2-5).kernel()
Modular Symbols subspace of dimension 4 of Modular Symbols space of dimension 5 for Gamma_0(23) of weight 2 with sign 0 over Rational Field
trace()

Return the trace of this Hecke operator.

sage: M = ModularSymbols(1,12)
sage: T = M.hecke_operator(2)
sage: T.trace()
2001
class sage.modular.hecke.hecke_operator.HeckeAlgebraElement_matrix(parent, A)

Bases: sage.modular.hecke.hecke_operator.HeckeAlgebraElement

An element of the Hecke algebra represented by a matrix.

matrix()

Return the matrix that defines this Hecke algebra element.

EXAMPLES:

sage: M = ModularSymbols(1,12)
sage: T = M.hecke_operator(2).matrix_form()
sage: T.matrix()
[ -24    0    0]
[   0  -24    0]
[4860    0 2049]
class sage.modular.hecke.hecke_operator.HeckeOperator(parent, n)

Bases: sage.modular.hecke.hecke_operator.HeckeAlgebraElement

The Hecke operator T_n for some n (which need not be coprime to the level). The matrix is not computed until it is needed.

index()

Return the index of this Hecke operator, i.e., if this Hecke operator is T_n, return the int n.

EXAMPLES:

sage: T = ModularSymbols(11).hecke_operator(17)
sage: T.index()
17
matrix(*args, **kwds)

Return the matrix underlying this Hecke operator.

EXAMPLES:

sage: T = ModularSymbols(11).hecke_operator(17)
sage: T.matrix()
[18  0 -4]
[ 0 -2  0]
[ 0  0 -2]
matrix_form()

Return the matrix form of this element of a Hecke algebra.

sage: T = ModularSymbols(11).hecke_operator(17)
sage: T.matrix_form()
Hecke operator on Modular Symbols space of dimension 3 for Gamma_0(11) of weight 2 with sign 0 over Rational Field defined by:
[18  0 -4]
[ 0 -2  0]
[ 0  0 -2]
sage.modular.hecke.hecke_operator.is_HeckeAlgebraElement(x)

Return True if x is of type HeckeAlgebraElement.

EXAMPLES:

sage: from sage.modular.hecke.hecke_operator import is_HeckeAlgebraElement
sage: M = ModularSymbols(Gamma0(7), 4)
sage: is_HeckeAlgebraElement(M.T(3))
True
sage: is_HeckeAlgebraElement(M.T(3) + M.T(5))
True
sage.modular.hecke.hecke_operator.is_HeckeOperator(x)

Return True if x is of type HeckeOperator.

EXAMPLES:

sage: from sage.modular.hecke.hecke_operator import is_HeckeOperator
sage: M = ModularSymbols(Gamma0(7), 4)
sage: is_HeckeOperator(M.T(3))
True
sage: is_HeckeOperator(M.T(3) + M.T(5))
False

Previous topic

Hecke algebras

Next topic

Modular Symbols

This Page