Elements of Hecke modules#

AUTHORS:

• William Stein

class sage.modular.hecke.element.HeckeModuleElement(parent, x=None)[source]#

Bases: `ModuleElement`

Element of a Hecke module.

ambient_module()[source]#

Return the ambient Hecke module that contains this element.

EXAMPLES:

```sage: BrandtModule(37)([0,1,-1]).ambient_module()
Brandt module of dimension 3 of level 37 of weight 2 over Rational Field
```
```>>> from sage.all import *
>>> BrandtModule(Integer(37))([Integer(0),Integer(1),-Integer(1)]).ambient_module()
Brandt module of dimension 3 of level 37 of weight 2 over Rational Field
```
element()[source]#

Return underlying vector space element that defines this Hecke module element.

EXAMPLES:

```sage: z = BrandtModule(37)([0,1,-1]).element(); z
(0, 1, -1)
sage: type(z)
<class 'sage.modules.vector_rational_dense.Vector_rational_dense'>
```
```>>> from sage.all import *
>>> z = BrandtModule(Integer(37))([Integer(0),Integer(1),-Integer(1)]).element(); z
(0, 1, -1)
>>> type(z)
<class 'sage.modules.vector_rational_dense.Vector_rational_dense'>
```
is_cuspidal()[source]#

Return `True` if this element is cuspidal.

EXAMPLES:

```sage: M = ModularForms(2, 22); M.0.is_cuspidal()
True
sage: (M.0 + M.4).is_cuspidal()
False
sage: EllipticCurve('37a1').newform().is_cuspidal()
True
```
```>>> from sage.all import *
>>> M = ModularForms(Integer(2), Integer(22)); M.gen(0).is_cuspidal()
True
>>> (M.gen(0) + M.gen(4)).is_cuspidal()
False
>>> EllipticCurve('37a1').newform().is_cuspidal()
True
```

It works for modular symbols too:

```sage: M = ModularSymbols(19,2)
sage: M.0.is_cuspidal()
False
sage: M.1.is_cuspidal()
True
```
```>>> from sage.all import *
>>> M = ModularSymbols(Integer(19),Integer(2))
>>> M.gen(0).is_cuspidal()
False
>>> M.gen(1).is_cuspidal()
True
```
is_eisenstein()[source]#

Return `True` if this element is Eisenstein.

This makes sense for both modular forms and modular symbols.

EXAMPLES:

```sage: CuspForms(2,8).0.is_eisenstein()
False
sage: M = ModularForms(2,8);(M.0  + M.1).is_eisenstein()
False
sage: M.1.is_eisenstein()
True
sage: ModularSymbols(19,4).0.is_eisenstein()
False
sage: EllipticCurve('37a1').newform().element().is_eisenstein()
False
```
```>>> from sage.all import *
>>> CuspForms(Integer(2),Integer(8)).gen(0).is_eisenstein()
False
>>> M = ModularForms(Integer(2),Integer(8));(M.gen(0)  + M.gen(1)).is_eisenstein()
False
>>> M.gen(1).is_eisenstein()
True
>>> ModularSymbols(Integer(19),Integer(4)).gen(0).is_eisenstein()
False
>>> EllipticCurve('37a1').newform().element().is_eisenstein()
False
```
is_new(p=None)[source]#

Return `True` if this element is p-new.

If p is `None`, return `True` if the element is new.

EXAMPLES:

```sage: CuspForms(22, 2).0.is_new(2)
False
sage: CuspForms(22, 2).0.is_new(11)
True
sage: CuspForms(22, 2).0.is_new()
False
```
```>>> from sage.all import *
>>> CuspForms(Integer(22), Integer(2)).gen(0).is_new(Integer(2))
False
>>> CuspForms(Integer(22), Integer(2)).gen(0).is_new(Integer(11))
True
>>> CuspForms(Integer(22), Integer(2)).gen(0).is_new()
False
```
is_old(p=None)[source]#

Return `True` if this element is p-old.

If p is `None`, return `True` if the element is old.

EXAMPLES:

```sage: CuspForms(22, 2).0.is_old(11)
False
sage: CuspForms(22, 2).0.is_old(2)
True
sage: CuspForms(22, 2).0.is_old()
True
sage: EisensteinForms(144, 2).1.is_old()  # long time (3s on sage.math, 2011)
False
sage: EisensteinForms(144, 2).1.is_old(2) # not implemented
False
```
```>>> from sage.all import *
>>> CuspForms(Integer(22), Integer(2)).gen(0).is_old(Integer(11))
False
>>> CuspForms(Integer(22), Integer(2)).gen(0).is_old(Integer(2))
True
>>> CuspForms(Integer(22), Integer(2)).gen(0).is_old()
True
>>> EisensteinForms(Integer(144), Integer(2)).gen(1).is_old()  # long time (3s on sage.math, 2011)
False
>>> EisensteinForms(Integer(144), Integer(2)).gen(1).is_old(Integer(2)) # not implemented
False
```
sage.modular.hecke.element.is_HeckeModuleElement(x)[source]#

Return `True` if x is a Hecke module element, i.e., of type HeckeModuleElement.

EXAMPLES:

```sage: sage.modular.hecke.all.is_HeckeModuleElement(0)
doctest:warning...
DeprecationWarning: the function is_HeckeModuleElement is deprecated;
use 'isinstance(..., HeckeModuleElement)' instead
See https://github.com/sagemath/sage/issues/37895 for details.
False
sage: sage.modular.hecke.all.is_HeckeModuleElement(BrandtModule(37)([1,2,3]))
True
```
```>>> from sage.all import *
>>> sage.modular.hecke.all.is_HeckeModuleElement(Integer(0))
doctest:warning...
DeprecationWarning: the function is_HeckeModuleElement is deprecated;
use 'isinstance(..., HeckeModuleElement)' instead
See https://github.com/sagemath/sage/issues/37895 for details.
False
>>> sage.modular.hecke.all.is_HeckeModuleElement(BrandtModule(Integer(37))([Integer(1),Integer(2),Integer(3)]))
True
```