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:
A space M is guaranteed to have a "rational basis" (which is permanently fixed) in any of the following circumstances:
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).
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.