Modular forms for Hecke triangle groups¶
AUTHORS:
Jonas Jermann (2013): initial version
- class sage.modular.modform_hecketriangle.space.CuspForms(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationModule of (Hecke) cusp forms for the given group, base ring, weight and multiplier
- coordinate_vector(v)[source]¶
Return the coordinate vector of
vwith respect to the basisself.gens().INPUT:
v– an element ofself
OUTPUT:
An element of
self.module(), namely the corresponding coordinate vector ofvwith respect to the basisself.gens().The module is the free module over the coefficient ring of
selfwith the dimension ofself.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import CuspForms sage: MF = CuspForms(n=12, k=72/5, ep=-1) sage: MF.default_prec(4) sage: MF.dimension() 2 sage: el = MF(MF.f_i()*MF.Delta()) sage: el q - 1/(288*d)*q^2 - 96605/(1327104*d^2)*q^3 + O(q^4) sage: vec = el.coordinate_vector() sage: vec (1, -1/(288*d)) sage: vec.parent() Vector space of dimension 2 over Fraction Field of Univariate Polynomial Ring in d over Integer Ring sage: vec.parent() == MF.module() True sage: el == vec[0]*MF.gen(0) + vec[1]*MF.gen(1) True sage: el == MF.element_from_coordinates(vec) True sage: MF = CuspForms(n=infinity, k=16) sage: el2 = MF(MF.Delta()*MF.E4()) sage: vec2 = el2.coordinate_vector() sage: vec2 (1, 5/(8*d), 187/(1024*d^2)) sage: el2 == MF.element_from_coordinates(vec2) True
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import CuspForms >>> MF = CuspForms(n=Integer(12), k=Integer(72)/Integer(5), ep=-Integer(1)) >>> MF.default_prec(Integer(4)) >>> MF.dimension() 2 >>> el = MF(MF.f_i()*MF.Delta()) >>> el q - 1/(288*d)*q^2 - 96605/(1327104*d^2)*q^3 + O(q^4) >>> vec = el.coordinate_vector() >>> vec (1, -1/(288*d)) >>> vec.parent() Vector space of dimension 2 over Fraction Field of Univariate Polynomial Ring in d over Integer Ring >>> vec.parent() == MF.module() True >>> el == vec[Integer(0)]*MF.gen(Integer(0)) + vec[Integer(1)]*MF.gen(Integer(1)) True >>> el == MF.element_from_coordinates(vec) True >>> MF = CuspForms(n=infinity, k=Integer(16)) >>> el2 = MF(MF.Delta()*MF.E4()) >>> vec2 = el2.coordinate_vector() >>> vec2 (1, 5/(8*d), 187/(1024*d^2)) >>> el2 == MF.element_from_coordinates(vec2) True
- dimension()[source]¶
Return the dimension of
self.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import CuspForms sage: MF = CuspForms(n=12, k=72/5, ep=1) sage: MF.dimension() 3 sage: len(MF.gens()) == MF.dimension() True sage: CuspForms(n=infinity, k=8).dimension() 1
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import CuspForms >>> MF = CuspForms(n=Integer(12), k=Integer(72)/Integer(5), ep=Integer(1)) >>> MF.dimension() 3 >>> len(MF.gens()) == MF.dimension() True >>> CuspForms(n=infinity, k=Integer(8)).dimension() 1
- gens()[source]¶
Return a basis of
selfas a tuple of basis elements.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import CuspForms sage: MF=CuspForms(n=12, k=72/5, ep=1) sage: MF CuspForms(n=12, k=72/5, ep=1) over Integer Ring sage: MF.dimension() 3 sage: MF.gens() (q + 296888795/(10319560704*d^3)*q^4 + O(q^5), q^2 + 6629/(221184*d^2)*q^4 + O(q^5), q^3 - 25/(96*d)*q^4 + O(q^5)) sage: MF = CuspForms(n=infinity, k=8, ep=1) sage: MF.gen(0) == MF.E4()*MF.f_inf() True
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import CuspForms >>> MF=CuspForms(n=Integer(12), k=Integer(72)/Integer(5), ep=Integer(1)) >>> MF CuspForms(n=12, k=72/5, ep=1) over Integer Ring >>> MF.dimension() 3 >>> MF.gens() (q + 296888795/(10319560704*d^3)*q^4 + O(q^5), q^2 + 6629/(221184*d^2)*q^4 + O(q^5), q^3 - 25/(96*d)*q^4 + O(q^5)) >>> MF = CuspForms(n=infinity, k=Integer(8), ep=Integer(1)) >>> MF.gen(Integer(0)) == MF.E4()*MF.f_inf() True
- class sage.modular.modform_hecketriangle.space.MeromorphicModularForms(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationModule of (Hecke) meromorphic modular forms for the given group, base ring, weight and multiplier
- class sage.modular.modform_hecketriangle.space.ModularForms(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationModule of (Hecke) modular forms for the given group, base ring, weight and multiplier
- coordinate_vector(v)[source]¶
Return the coordinate vector of
vwith respect to the basisself.gens().INPUT:
v– an element ofself
OUTPUT:
An element of
self.module(), namely the corresponding coordinate vector ofvwith respect to the basisself.gens().The module is the free module over the coefficient ring of
selfwith the dimension ofself.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import ModularForms sage: MF = ModularForms(n=6, k=20, ep=1) sage: MF.dimension() 4 sage: el = MF.E4()^2*MF.Delta() sage: el q + 78*q^2 + 2781*q^3 + 59812*q^4 + O(q^5) sage: vec = el.coordinate_vector() sage: vec (0, 1, 13/(18*d), 103/(432*d^2)) sage: vec.parent() Vector space of dimension 4 over Fraction Field of Univariate Polynomial Ring in d over Integer Ring sage: vec.parent() == MF.module() True sage: el == vec[0]*MF.gen(0) + vec[1]*MF.gen(1) + vec[2]*MF.gen(2) + vec[3]*MF.gen(3) True sage: el == MF.element_from_coordinates(vec) True sage: MF = ModularForms(n=infinity, k=8, ep=1) sage: (MF.E4()^2).coordinate_vector() (1, 1/(2*d), 15/(128*d^2))
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import ModularForms >>> MF = ModularForms(n=Integer(6), k=Integer(20), ep=Integer(1)) >>> MF.dimension() 4 >>> el = MF.E4()**Integer(2)*MF.Delta() >>> el q + 78*q^2 + 2781*q^3 + 59812*q^4 + O(q^5) >>> vec = el.coordinate_vector() >>> vec (0, 1, 13/(18*d), 103/(432*d^2)) >>> vec.parent() Vector space of dimension 4 over Fraction Field of Univariate Polynomial Ring in d over Integer Ring >>> vec.parent() == MF.module() True >>> el == vec[Integer(0)]*MF.gen(Integer(0)) + vec[Integer(1)]*MF.gen(Integer(1)) + vec[Integer(2)]*MF.gen(Integer(2)) + vec[Integer(3)]*MF.gen(Integer(3)) True >>> el == MF.element_from_coordinates(vec) True >>> MF = ModularForms(n=infinity, k=Integer(8), ep=Integer(1)) >>> (MF.E4()**Integer(2)).coordinate_vector() (1, 1/(2*d), 15/(128*d^2))
- dimension()[source]¶
Return the dimension of
self.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import ModularForms sage: MF = ModularForms(n=6, k=20, ep=1) sage: MF.dimension() 4 sage: len(MF.gens()) == MF.dimension() True sage: ModularForms(n=infinity, k=8).dimension() 3
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import ModularForms >>> MF = ModularForms(n=Integer(6), k=Integer(20), ep=Integer(1)) >>> MF.dimension() 4 >>> len(MF.gens()) == MF.dimension() True >>> ModularForms(n=infinity, k=Integer(8)).dimension() 3
- gens()[source]¶
Return a basis of
selfas a tuple of basis elements.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import ModularForms sage: MF = ModularForms(n=6, k=20, ep=1) sage: MF.dimension() 4 sage: MF.gens() (1 + 360360*q^4 + O(q^5), q + 21742*q^4 + O(q^5), q^2 + 702*q^4 + O(q^5), q^3 - 6*q^4 + O(q^5)) sage: ModularForms(n=infinity, k=4).gens() (1 + 240*q^2 + 2160*q^4 + O(q^5), q - 8*q^2 + 28*q^3 - 64*q^4 + O(q^5))
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import ModularForms >>> MF = ModularForms(n=Integer(6), k=Integer(20), ep=Integer(1)) >>> MF.dimension() 4 >>> MF.gens() (1 + 360360*q^4 + O(q^5), q + 21742*q^4 + O(q^5), q^2 + 702*q^4 + O(q^5), q^3 - 6*q^4 + O(q^5)) >>> ModularForms(n=infinity, k=Integer(4)).gens() (1 + 240*q^2 + 2160*q^4 + O(q^5), q - 8*q^2 + 28*q^3 - 64*q^4 + O(q^5))
- class sage.modular.modform_hecketriangle.space.QuasiCuspForms(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationModule of (Hecke) quasi cusp forms for the given group, base ring, weight and multiplier
- coordinate_vector(v)[source]¶
Return the coordinate vector of
vwith respect to the basisself.gens().INPUT:
v– an element ofself
OUTPUT:
An element of
self.module(), namely the corresponding coordinate vector ofvwith respect to the basisself.gens().The module is the free module over the coefficient ring of
selfwith the dimension ofself.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import QuasiCuspForms sage: MF = QuasiCuspForms(n=6, k=20, ep=1) sage: MF.dimension() 12 sage: el = MF(MF.E4()^2*MF.Delta() + MF.E4()*MF.E2()^2*MF.Delta()) sage: el 2*q + 120*q^2 + 3402*q^3 + 61520*q^4 + O(q^5) sage: vec = el.coordinate_vector() # long time sage: vec # long time (1, 13/(18*d), 103/(432*d^2), 0, 0, 1, 1/(2*d), 0, 0, 0, 0, 0) sage: vec.parent() # long time Vector space of dimension 12 over Fraction Field of Univariate Polynomial Ring in d over Integer Ring sage: vec.parent() == MF.module() # long time True sage: el == MF(sum([vec[l]*MF.gen(l) for l in range(0,12)])) # long time True sage: el == MF.element_from_coordinates(vec) # long time True sage: MF.gen(1).coordinate_vector() == vector([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) # long time True sage: MF = QuasiCuspForms(n=infinity, k=10, ep=-1) sage: el2 = MF(MF.E4()*MF.f_inf()*(MF.f_i() - MF.E2())) sage: el2.coordinate_vector() (1, -1) sage: el2 == MF.element_from_coordinates(el2.coordinate_vector()) True
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import QuasiCuspForms >>> MF = QuasiCuspForms(n=Integer(6), k=Integer(20), ep=Integer(1)) >>> MF.dimension() 12 >>> el = MF(MF.E4()**Integer(2)*MF.Delta() + MF.E4()*MF.E2()**Integer(2)*MF.Delta()) >>> el 2*q + 120*q^2 + 3402*q^3 + 61520*q^4 + O(q^5) >>> vec = el.coordinate_vector() # long time >>> vec # long time (1, 13/(18*d), 103/(432*d^2), 0, 0, 1, 1/(2*d), 0, 0, 0, 0, 0) >>> vec.parent() # long time Vector space of dimension 12 over Fraction Field of Univariate Polynomial Ring in d over Integer Ring >>> vec.parent() == MF.module() # long time True >>> el == MF(sum([vec[l]*MF.gen(l) for l in range(Integer(0),Integer(12))])) # long time True >>> el == MF.element_from_coordinates(vec) # long time True >>> MF.gen(Integer(1)).coordinate_vector() == vector([Integer(0), Integer(1), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0)]) # long time True >>> MF = QuasiCuspForms(n=infinity, k=Integer(10), ep=-Integer(1)) >>> el2 = MF(MF.E4()*MF.f_inf()*(MF.f_i() - MF.E2())) >>> el2.coordinate_vector() (1, -1) >>> el2 == MF.element_from_coordinates(el2.coordinate_vector()) True
- dimension()[source]¶
Return the dimension of
self.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import QuasiCuspForms sage: MF = QuasiCuspForms(n=8, k=46/3, ep=-1) sage: MF.default_prec(3) sage: MF.dimension() 7 sage: len(MF.gens()) == MF.dimension() True sage: QuasiCuspForms(n=infinity, k=10, ep=-1).dimension() 2
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import QuasiCuspForms >>> MF = QuasiCuspForms(n=Integer(8), k=Integer(46)/Integer(3), ep=-Integer(1)) >>> MF.default_prec(Integer(3)) >>> MF.dimension() 7 >>> len(MF.gens()) == MF.dimension() True >>> QuasiCuspForms(n=infinity, k=Integer(10), ep=-Integer(1)).dimension() 2
- gens()[source]¶
Return a basis of
selfas a tuple of basis elements.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import QuasiCuspForms sage: MF = QuasiCuspForms(n=8, k=46/3, ep=-1) sage: MF.default_prec(4) sage: MF.dimension() 7 sage: MF.gens() (q - 17535/(262144*d^2)*q^3 + O(q^4), q^2 - 47/(128*d)*q^3 + O(q^4), q - 9/(128*d)*q^2 + 15633/(262144*d^2)*q^3 + O(q^4), q^2 - 7/(128*d)*q^3 + O(q^4), q - 23/(64*d)*q^2 - 3103/(262144*d^2)*q^3 + O(q^4), q - 3/(64*d)*q^2 - 4863/(262144*d^2)*q^3 + O(q^4), q - 27/(64*d)*q^2 + 17217/(262144*d^2)*q^3 + O(q^4)) sage: MF = QuasiCuspForms(n=infinity, k=10, ep=-1) sage: MF.gens() (q - 16*q^2 - 156*q^3 - 256*q^4 + O(q^5), q - 60*q^3 - 256*q^4 + O(q^5))
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import QuasiCuspForms >>> MF = QuasiCuspForms(n=Integer(8), k=Integer(46)/Integer(3), ep=-Integer(1)) >>> MF.default_prec(Integer(4)) >>> MF.dimension() 7 >>> MF.gens() (q - 17535/(262144*d^2)*q^3 + O(q^4), q^2 - 47/(128*d)*q^3 + O(q^4), q - 9/(128*d)*q^2 + 15633/(262144*d^2)*q^3 + O(q^4), q^2 - 7/(128*d)*q^3 + O(q^4), q - 23/(64*d)*q^2 - 3103/(262144*d^2)*q^3 + O(q^4), q - 3/(64*d)*q^2 - 4863/(262144*d^2)*q^3 + O(q^4), q - 27/(64*d)*q^2 + 17217/(262144*d^2)*q^3 + O(q^4)) >>> MF = QuasiCuspForms(n=infinity, k=Integer(10), ep=-Integer(1)) >>> MF.gens() (q - 16*q^2 - 156*q^3 - 256*q^4 + O(q^5), q - 60*q^3 - 256*q^4 + O(q^5))
- class sage.modular.modform_hecketriangle.space.QuasiMeromorphicModularForms(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationModule of (Hecke) quasi meromorphic modular forms for the given group, base ring, weight and multiplier
- class sage.modular.modform_hecketriangle.space.QuasiModularForms(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationModule of (Hecke) quasi modular forms for the given group, base ring, weight and multiplier
- coordinate_vector(v)[source]¶
Return the coordinate vector of
vwith respect to the basisself.gens().INPUT:
v– an element ofself
OUTPUT:
An element of
self.module(), namely the corresponding coordinate vector ofvwith respect to the basisself.gens().The module is the free module over the coefficient ring of
selfwith the dimension ofself.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import QuasiModularForms sage: MF = QuasiModularForms(n=6, k=20, ep=1) sage: MF.dimension() 22 sage: el = MF(MF.E4()^2*MF.E6()^2 + MF.E4()*MF.E2()^2*MF.Delta() + MF.E2()^3*MF.E4()^2*MF.E6()) sage: el 2 + 25*q - 2478*q^2 - 82731*q^3 - 448484*q^4 + O(q^5) sage: vec = el.coordinate_vector() # long time sage: vec # long time (1, 1/(9*d), -11/(81*d^2), -4499/(104976*d^3), 0, 0, 0, 0, 1, 1/(2*d), 1, 5/(18*d), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) sage: vec.parent() # long time Vector space of dimension 22 over Fraction Field of Univariate Polynomial Ring in d over Integer Ring sage: vec.parent() == MF.module() # long time True sage: el == MF(sum([vec[l]*MF.gen(l) for l in range(0,22)])) # long time True sage: el == MF.element_from_coordinates(vec) # long time True sage: MF.gen(1).coordinate_vector() == vector([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) # long time True sage: MF = QuasiModularForms(n=infinity, k=4, ep=1) sage: el2 = MF.E4() + MF.E2()^2 sage: el2 2 + 160*q^2 + 512*q^3 + 1632*q^4 + O(q^5) sage: el2.coordinate_vector() (1, 1/(4*d), 0, 1) sage: el2 == MF.element_from_coordinates(el2.coordinate_vector()) True
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import QuasiModularForms >>> MF = QuasiModularForms(n=Integer(6), k=Integer(20), ep=Integer(1)) >>> MF.dimension() 22 >>> el = MF(MF.E4()**Integer(2)*MF.E6()**Integer(2) + MF.E4()*MF.E2()**Integer(2)*MF.Delta() + MF.E2()**Integer(3)*MF.E4()**Integer(2)*MF.E6()) >>> el 2 + 25*q - 2478*q^2 - 82731*q^3 - 448484*q^4 + O(q^5) >>> vec = el.coordinate_vector() # long time >>> vec # long time (1, 1/(9*d), -11/(81*d^2), -4499/(104976*d^3), 0, 0, 0, 0, 1, 1/(2*d), 1, 5/(18*d), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) >>> vec.parent() # long time Vector space of dimension 22 over Fraction Field of Univariate Polynomial Ring in d over Integer Ring >>> vec.parent() == MF.module() # long time True >>> el == MF(sum([vec[l]*MF.gen(l) for l in range(Integer(0),Integer(22))])) # long time True >>> el == MF.element_from_coordinates(vec) # long time True >>> MF.gen(Integer(1)).coordinate_vector() == vector([Integer(0), Integer(1), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0), Integer(0)]) # long time True >>> MF = QuasiModularForms(n=infinity, k=Integer(4), ep=Integer(1)) >>> el2 = MF.E4() + MF.E2()**Integer(2) >>> el2 2 + 160*q^2 + 512*q^3 + 1632*q^4 + O(q^5) >>> el2.coordinate_vector() (1, 1/(4*d), 0, 1) >>> el2 == MF.element_from_coordinates(el2.coordinate_vector()) True
- dimension()[source]¶
Return the dimension of
self.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import QuasiModularForms sage: MF = QuasiModularForms(n=5, k=6, ep=-1) sage: MF.dimension() 3 sage: len(MF.gens()) == MF.dimension() True
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import QuasiModularForms >>> MF = QuasiModularForms(n=Integer(5), k=Integer(6), ep=-Integer(1)) >>> MF.dimension() 3 >>> len(MF.gens()) == MF.dimension() True
- gens()[source]¶
Return a basis of
selfas a tuple of basis elements.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import QuasiModularForms sage: MF = QuasiModularForms(n=5, k=6, ep=-1) sage: MF.default_prec(2) sage: MF.gens() (1 - 37/(200*d)*q + O(q^2), 1 + 33/(200*d)*q + O(q^2), 1 - 27/(200*d)*q + O(q^2)) sage: MF = QuasiModularForms(n=infinity, k=2, ep=-1) sage: MF.default_prec(2) sage: MF.gens() (1 - 24*q + O(q^2), 1 - 8*q + O(q^2))
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import QuasiModularForms >>> MF = QuasiModularForms(n=Integer(5), k=Integer(6), ep=-Integer(1)) >>> MF.default_prec(Integer(2)) >>> MF.gens() (1 - 37/(200*d)*q + O(q^2), 1 + 33/(200*d)*q + O(q^2), 1 - 27/(200*d)*q + O(q^2)) >>> MF = QuasiModularForms(n=infinity, k=Integer(2), ep=-Integer(1)) >>> MF.default_prec(Integer(2)) >>> MF.gens() (1 - 24*q + O(q^2), 1 - 8*q + O(q^2))
- class sage.modular.modform_hecketriangle.space.QuasiWeakModularForms(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationModule of (Hecke) quasi weakly holomorphic modular forms for the given group, base ring, weight and multiplier
- class sage.modular.modform_hecketriangle.space.WeakModularForms(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationModule of (Hecke) weakly holomorphic modular forms for the given group, base ring, weight and multiplier
- class sage.modular.modform_hecketriangle.space.ZeroForm(group, base_ring, k, ep, n)[source]¶
Bases:
FormsSpace_abstract,Module,UniqueRepresentationZero Module for the zero form for the given group, base ring weight and multiplier
- coordinate_vector(v)[source]¶
Return the coordinate vector of
vwith respect to the basisself.gens().Since this is the zero module which only contains the zero form the trivial vector in the trivial module of dimension
0is returned.INPUT:
v– an element ofself, i.e. in this case the zero vector
EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import ZeroForm sage: MF = ZeroForm(6, QQ, 3, -1) sage: el = MF(0) sage: el O(q^5) sage: vec = el.coordinate_vector() sage: vec () sage: vec.parent() Vector space of dimension 0 over Fraction Field of Univariate Polynomial Ring in d over Rational Field sage: vec.parent() == MF.module() True
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import ZeroForm >>> MF = ZeroForm(Integer(6), QQ, Integer(3), -Integer(1)) >>> el = MF(Integer(0)) >>> el O(q^5) >>> vec = el.coordinate_vector() >>> vec () >>> vec.parent() Vector space of dimension 0 over Fraction Field of Univariate Polynomial Ring in d over Rational Field >>> vec.parent() == MF.module() True
- dimension()[source]¶
Return the dimension of
self. Since this is the zero module0is returned.EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import ZeroForm sage: ZeroForm(6, CC, 3, -1).dimension() 0
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import ZeroForm >>> ZeroForm(Integer(6), CC, Integer(3), -Integer(1)).dimension() 0
- gens()[source]¶
Return a basis of
selfas a tuple of basis elements.Since this is the zero module an empty tuple is returned.
EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import ZeroForm sage: ZeroForm(6, CC, 3, -1).gens() ()
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import ZeroForm >>> ZeroForm(Integer(6), CC, Integer(3), -Integer(1)).gens() ()
- sage.modular.modform_hecketriangle.space.canonical_parameters(group, base_ring, k, ep, n=None)[source]¶
Return a canonical version of the parameters.
EXAMPLES:
sage: from sage.modular.modform_hecketriangle.space import canonical_parameters sage: canonical_parameters(5, ZZ, 20/3, int(1)) (Hecke triangle group for n = 5, Integer Ring, 20/3, 1, 5) sage: canonical_parameters(infinity, ZZ, 2, int(-1)) (Hecke triangle group for n = +Infinity, Integer Ring, 2, -1, +Infinity)
>>> from sage.all import * >>> from sage.modular.modform_hecketriangle.space import canonical_parameters >>> canonical_parameters(Integer(5), ZZ, Integer(20)/Integer(3), int(Integer(1))) (Hecke triangle group for n = 5, Integer Ring, 20/3, 1, 5) >>> canonical_parameters(infinity, ZZ, Integer(2), int(-Integer(1))) (Hecke triangle group for n = +Infinity, Integer Ring, 2, -1, +Infinity)