42.4 Modular Forms with Character

Module: sage.modular.modform.ambient_eps

Modular Forms with Character

sage: eps = DirichletGroup(13).0
sage: M = ModularForms(eps^2, 2); M
Modular Forms space of dimension 3, character [zeta6] and weight 2 over
Cyclotomic Field of order 6 and degree 2

sage: S = M.cuspidal_submodule(); S
Cuspidal subspace of dimension 1 of Modular Forms space of dimension 3,
character [zeta6] and weight 2 over Cyclotomic Field of order 6 and degree
2
sage: S.modular_symbols()
Modular Symbols subspace of dimension 2 of Modular Symbols space of
dimension 4 and level 13, weight 2, character [zeta6], sign 0, over
Cyclotomic Field of order 6 and degree 2

We create a spaces associated to Dirichlet characters of modulus 225:

sage: e = DirichletGroup(225).0
sage: e.order()
6
sage: e.base_ring()
Cyclotomic Field of order 60 and degree 16
sage: M = ModularForms(e,3)

Notice that the base ring is ``minimized'':

sage: M
Modular Forms space of dimension 66, character [zeta6, 1] and weight 3
over Cyclotomic Field of order 6 and degree 2

If we don't want the base ring to change, we can explicitly specify it:

sage: ModularForms(e, 3, e.base_ring())
Modular Forms space of dimension 66, character [zeta6, 1] and weight 3
over Cyclotomic Field of order 60 and degree 16

Next we create a space associated to a Dirichlet character of order 20:

sage: e = DirichletGroup(225).1
sage: e.order()
20
sage: e.base_ring()
Cyclotomic Field of order 60 and degree 16
sage: M = ModularForms(e,17); M
Modular Forms space of dimension 484, character [1, zeta20] and
weight 17 over Cyclotomic Field of order 20 and degree 8

We compute the Eisenstein subspace, which is fast even though the dimension of the space is large (since an explicit basis of $ q$ -expansions has not been computed yet).

sage: M.eisenstein_submodule()
Eisenstein subspace of dimension 8 of Modular Forms space of
dimension 484, character [1, zeta20] and weight 17 over Cyclotomic Field of
order 20 and degree 8

sage: M.cuspidal_submodule()
Cuspidal subspace of dimension 476 of Modular Forms space of dimension 484,
character [1, zeta20] and weight 17 over Cyclotomic Field of order 20 and
degree 8

TESTS:

sage: m = ModularForms(DirichletGroup(20).1,5)
sage: m == loads(dumps(m))
True
sage: type(m)
<class 'sage.modular.modform.ambient_eps.ModularFormsAmbient_eps'>

Class: ModularFormsAmbient_eps

class ModularFormsAmbient_eps
A space of modular forms with character.
ModularFormsAmbient_eps( self, character, [weight=2], [base_ring=None])

Create an ambient modular forms space with character.

NOTE that the base ring must be of characteristic 0. The ambient_R Python module is used for computing in characteristic p, which we view as the reduction of characteristic 0.

Input:

weight
- int
character
- dirichlet.DirichletCharacter
base_ring
- base field

sage: m = ModularForms(DirichletGroup(11).0,3); m
Modular Forms space of dimension 3, character [zeta10] and weight 3 over
Cyclotomic Field of order 10 and degree 4
sage: type(m)
<class 'sage.modular.modform.ambient_eps.ModularFormsAmbient_eps'>

Functions: change_ring,$ \,$ cuspidal_submodule,$ \,$ eisenstein_submodule,$ \,$ modular_symbols

change_ring( self, base_ring)

Return space with same defining parameters as this ambient space of modular symbols, but defined over a different base ring.

sage: m = ModularForms(DirichletGroup(13).0^2,2); m
Modular Forms space of dimension 3, character [zeta6] and weight 2 over
Cyclotomic Field of order 6 and degree 2
sage: m.change_ring(CyclotomicField(12))
Modular Forms space of dimension 3, character [zeta12^2] and weight 2 over
Cyclotomic Field of order 12 and degree 4

It must be possible to change the ring of the underlying Dirichlet character:

sage: m.change_ring(QQ)
Traceback (most recent call last):
...
TypeError: Unable to coerce zeta6 to a rational

cuspidal_submodule( self)

Return the cuspidal submodule of this ambient space of modular forms.

sage: eps = DirichletGroup(4).0
sage: M = ModularForms(eps, 5); M
Modular Forms space of dimension 3, character [-1] and weight 5 over
Rational Field
sage: M.cuspidal_submodule()
Cuspidal subspace of dimension 1 of Modular Forms space of dimension 3,
character [-1] and weight 5 over Rational Field

eisenstein_submodule( self)

Return the submodule of this ambient module with character that is spanned by Eisenstein series. This is the Hecke stable complement of the cuspidal submodule.

sage: m = ModularForms(DirichletGroup(13).0^2,2); m
Modular Forms space of dimension 3, character [zeta6] and weight 2 over
Cyclotomic Field of order 6 and degree 2
sage: m.eisenstein_submodule()
Eisenstein subspace of dimension 2 of Modular Forms space of dimension 3,
character [zeta6] and weight 2 over Cyclotomic Field of order 6 and degree
2

modular_symbols( self, [sign=0])

Return corresponding space of modular symbols with given sign.

sage: eps = DirichletGroup(13).0
sage: M = ModularForms(eps^2, 2)
sage: M.modular_symbols()
Modular Symbols space of dimension 4 and level 13, weight 2, character
[zeta6], sign 0, over Cyclotomic Field of order 6 and degree 2
sage: M.modular_symbols(1)
Modular Symbols space of dimension 3 and level 13, weight 2, character
[zeta6], sign 1, over Cyclotomic Field of order 6 and degree 2
sage: M.modular_symbols(-1)
Modular Symbols space of dimension 1 and level 13, weight 2, character
[zeta6], sign -1, over Cyclotomic Field of order 6 and degree 2
sage: M.modular_symbols(2)
Traceback (most recent call last):
...
ValueError: sign must be -1, 0, or 1

Special Functions: __init__,$ \,$ _dim_cuspidal,$ \,$ _dim_eisenstein,$ \,$ _dim_new_cuspidal,$ \,$ _dim_new_eisenstein,$ \,$ _repr_

_dim_cuspidal( self)

Return the dimension of the cuspidal subspace, computed using a dimension formula.

sage: m = ModularForms(DirichletGroup(389,CyclotomicField(4)).0,3); m._dim_cuspidal()
64

_dim_eisenstein( self)

Return the dimension of the Eisenstein subspace of this space, computed using a dimension formula.

sage: m = ModularForms(DirichletGroup(13).0,7); m
Modular Forms space of dimension 8, character [zeta12] and weight 7 over
Cyclotomic Field of order 12 and degree 4
sage: m._dim_eisenstein()
2
sage: m._dim_cuspidal()
6

_dim_new_cuspidal( self)

Return the dimension of the new cuspidal subspace, computed using a dimension formula.

sage: m = ModularForms(DirichletGroup(33).0,7); m
Modular Forms space of dimension 26, character [-1, 1] and weight 7 over
Rational Field
sage: m._dim_new_cuspidal()
20
sage: m._dim_cuspidal()
22

_dim_new_eisenstein( self)

Return the dimension of the new Eisenstein subspace, computed by enumerating all Eisenstein series of the appropriate level.

sage: m = ModularForms(DirichletGroup(36).0,5); m
Modular Forms space of dimension 28, character [-1, 1] and weight 5 over
Rational Field
sage: m._dim_new_eisenstein()
2
sage: m._dim_eisenstein()
8

_repr_( self)

String representation of this space with character.

sage: m = ModularForms(DirichletGroup(8).1,2)
sage: m._repr_()
'Modular Forms space of dimension 2, character [1, -1] and weight 2 over
Rational Field'

You can rename the space with the rename command.

sage: m.rename('Modforms of level 8')
sage: m
Modforms of level 8

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