7.2.1 sage.modular.modform.modform - Modular Forms

DESIGN NOTES: Our implementation depends heavily on the fact that we have good dimension formulas (see dims.py) for spaces of modular forms with character, and new subspaces, so that we don't have to compute q-expansions for the whole space in order to compute q-expansions / elements / and dimensions of certain subspaces. Also, the following design is much simpler than the one I used in MAGMA because subspaces don't have lots of complicated special labels. Here's the actual design.

The internal basis of q-expansions of modular forms for the ambient space is defined as follows:

First Block: Cuspidal Subspace Second Block: Eisenstein Subspace

Cuspidal Subspace: Block for each level M dividing N, from highest level to lowest, and block for level M contains the images at level N of the newsubspace of level M (basis, then basis(q**d), then basis(q**e), etc.)

Eisenstein Subspace: ???

Since we can compute dimensions of cuspidal subspaces quickly and easily, it should be easy to locate any of the above blocks. Hence, e.g., to compute basis for new cuspidal subspace, just have to return first n standard basis vector where n is the dimension. However, we can also create completely arbitrary subspaces as well.

The base field is the field generated by the character values.

The module sage.modular.modform.modform defines the following classes:

class EisensteinSeries

class ModularFormElement
An element of a space of modular forms.

class ModularForms
An ambient space of modular forms. Create using the command

ModularForms(weight, group, character)

INPUT: group - a congruence subgroup (sage.modular.congroup.CongruenceSubgroup) weight - an integer base_field - a field (default rings.RationalField)

class ModularFormsSpace
A generic space of modular forms.

class ModularFormsSubspace
A subspace of an ambient space of modular forms.

class ModularFormsWithCharacter
A space of modular forms with character.

The module sage.modular.modform.modform defines the following methods:

compute_eisenstein_params( character, k)

Compute and return a list of all parameters $ (\chi,\psi,t)$ that define the Eisenstein series with given character and weight $ k$.

Only the parity of $ k$ is relevant.

If character is an integer $ N$, then the parameters for $ \Gamma_1(N)$ are computed instead. Then the condition is that $ \chi(-1)*\psi(-1) =(-1)^k$.



Subsections
See About this document... for information on suggesting changes.