Package sage :: Package modular :: Package modform :: Module modform :: Class ModularFormsSpace
[show private | hide private]
[frames | no frames]

Class ModularFormsSpace

HeckeModule --+
              |
             ModularFormsSpace

Known Subclasses:
ModularForms, ModularFormsSubspace

A generic space of modular forms.
Method Summary
  __init__(self, group, weight, character, base_field)
  __add__(self, right)
  __and__(self, right)
  __call__(self, x, check)
  __cmp__(self, x)
  __contains__(self, x)
True if x is an element or subspace of self.
  ambient_space(self)
  base_field(self)
  basis(self)
  change_base(self)
  character(self)
  cuspidal_subspace(self)
  decompose(self)
This function returns a list of subspaces V(f_i,t) corresponding to newforms f_i of some level dividing the level of self, such that the direct sum of the subspaces equals self, if possible.
  eisenstein_subspace(self)
  embedded_subspace(self)
  group(self)
  has_character(self)
  hecke_matrix(self, n)
  intersect(self, right)
  is_ambient(self)
  key(self)
  level(self)
  modular_symbols(self)
  newspaces(self)
This function returns a list of subspaces S(M,t) and E(M,t), corresponding to levels M dividing N and integers t dividing N/M, such that self is the direct sum of these spaces, if possible.
  sturm_bound(self, M)
For a space M of modular forms, this function returns an integer B such that two modular forms in either self or M are equal if and only if their q-expansions are equal to precision B.
  weight(self)
    Inherited from HeckeModule
  base_ring(self)
  decomposition(self, anemic)
  dimension(self)
  factor_number(self)
  is_splittable(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.
  is_splittable_anemic(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.
  set_factor_number(self, i)
  vector_space(self)

Method Details

__contains__(self, x)
(In operator)

True if x is an element or subspace of self.

decompose(self)

This function returns a list of subspaces V(f_i,t) corresponding to newforms f_i of some level dividing the level of self, such that the direct sum of the subspaces equals self, if possible. The space V(f_i,t) is the image under g(q) maps to g(q^t) of the intersection with R[[q]] of the space spanned by the conjugates of f_i, where R is the base ring of self.

newspaces(self)

This function returns a list of subspaces S(M,t) and E(M,t), corresponding to levels M dividing N and integers t dividing N/M, such that self is the direct sum of these spaces, if possible. Here S(M,t) is by definition the image under f(q) maps to f(q^t) of the new subspace of cusp forms of level M, and similarly E(M,t) is the image of Eisenstein series.

Notes: (1) the subspaces S(M,t) need not be stable under Hecke operators of index dividing N/M. (2) Since self can be an arbitrary subspace, there's no guarantee any S(M,t) or E(M,t) is in self, so the return list could be empty.

sturm_bound(self, M=None)

For a space M of modular forms, this function returns an integer B
such that two modular forms in either self or M are equal if and only
if their q-expansions are equal to precision B.  If M is none, then
M is set equal to self.

NOTES:
Reference for the Sturm bound that we use in the definition of
of this function:

 J. Sturm, On the congruence of modular forms, 
      Number theory (New York, 1984--1985), Springer,
      Berlin, 1987, pp.~275--280.

Useful Remark:
    Buzzard pointed out to me (William Stein) in Fall 2002
    that the above bound is fine for Gamma1 with character,
    as one sees by taking a power of f.  More precisely, if
    f = 0 (mod p) for first s coefficients, then f^r = 0
    (mod p) for first s*r coefficents.  Since weight of f^r
    is r*weight(f), it follows that if s >= sturm bound for
    Gamma_0 at weight(f), then f^r has valuation large
    enough to be forced to be 0 at r*weight(f) by Sturm
    bound (which is valid if we choose r right).  Thus f = 0
    (mod p).  Conclusion: For Gamma_1 with fixed character,
    the Sturm bound is *exactly* the same as for Gamma_0.
    A key point is that we are finding Z[eps] generators for
    the Hecke algebra here, not Z-generators.  So if one
    wants generators for the Hecke algebra over Z, this
    bound is wrong.

    This bound works over any base, even a finite field.
    There might be much better bounds over Q, or for comparing
    two eigenforms.

Generated by Epydoc 2.1 on Fri Jun 24 17:58:45 2005 http://epydoc.sf.net