|
Operators on spaces of Hilbert modular forms are returned as matrices
with respect to a basis of M.
For spaces of parallel weight 2, operators are matrices over Q,
and the basis of M is permanently fixed.
For all other weights, two finite extensions of Q may arise:
- (i)
- The field that is used for the raw computations;
operators are originally computed as matrices over this field.
- (ii)
- The minimal field F for which there exists a basis of M
such that operators are matrices with entries in F.
For all parallel weights, this minimal field is Q.
We refer to such a basis as a "rational basis" of M.
Changing the basis can be expensive for large spaces, so for
some spaces a "rational basis" is not computed by default.
In these cases, Hecke operators are returned as matrices over
the "raw" field, with respect to a basis which remains fixed
until SetRationalBasis(M) is invoked by the user.
When that occurs, the basis of the space is changed to a
"rational basis" which is then permanently fixed;
as a result, the operators also change (they are now given
as matrices with respect to the new basis).
A space M is guaranteed to have a "rational basis"
(which is permanently fixed) in any of the following circumstances:
- (i)
- M has parallel weight,
- (ii)
- M was constructed using NewSubspace (unless RationalBasis
was set to false), or was constructed using NewformDecomposition,
- (iii)
- SetRationalBasis(M) has been invoked.
This returns a matrix representing the Hecke operator TP on
the space M of Hilbert modular forms.
> R<x> := PolynomialRing(IntegerRing());
> F<a> := NumberField(x^2-2); OF := Integers(F);
> M3 := HilbertCuspForms(F, 3*OF, [2,4]);
> Dimension(M3);
1
> P2 := Factorization(2*OF)[1][1];
> Norm(P2);
2
> HeckeOperator(M3, P2);
[2]
Since the space has dimension 1, it consists of a single eigenform,
whose eigenvalues can be read from the Hecke matrices.
We now consider the space of level 5, which has dimension 3.
The Hecke matrices are given with respect to the basis used to
compute the space, over the extension K displayed here.
> M5 := HilbertCuspForms(F, 5*OF, [2,4] : QuaternionOrder:=QuaternionOrder(M3) );
> Dimension(M5);
3
> T2 := HeckeOperator(M5, P2);
> K<b> := BaseRing(T2);
> K;
Number Field with defining polynomial $.1^2 + 1 over F
> T2;
[ 0 8*a*b -2*b - 2]
[-1/2*a*b 2 0]
[ b - 1 0 0]
This returns a matrix representing the Atkin-Lehner operator wP on
the space M of Hilbert modular forms.
This computes degeneracy maps in the "downward" direction as maps from M to itself.
Here M is a space of Hilbert modular forms of level N, P is a prime dividing N,
and Q either equals P or the unit ideal (1).
The function returns a matrix representing a map from M to M
whose image equals a copy of the space of level N/P.
When Q = (1), this is double coset operator defined by cosets of an element
with determinant 1 (which can be seen as a "norm" map); when Q = P, it is
the double coset operator defined by cosets of an element with determinant (Norm)(P).
DeleteHeckePrecomputation(O, P) : AlgAssVOrd, RngOrdIdl ->
These procedures delete data obtained during the precomputation phase
of the "definite" algorithm. This data is used in the computation
of Hecke operators (and other operators) for given primes, and the
same data can be re-used for all spaces that are computed with the
some quaternion order O. (Often this is the same for spaces of
all weights and levels over a particular number field.)
Since the data is the most expensive part of the Hecke computation,
it is stored by default. However it is very expensive in memory;
these procedures allow the user to reclaim this memory when necessary.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|