The ModularSymbol class represents a single modular symbol .
AUTHOR:
TESTS:
sage: s = ModularSymbols(11).2.modular_symbol_rep()[0][1]; s
{-1/9, 0}
sage: loads(dumps(s)) == s
True
The modular symbol .
Return Manin symbol representation of X^i*Y^(k-2-i){0,alpha}.
EXAMPLES:
sage: s = ModularSymbols(11,2).1.modular_symbol_rep()[0][1]; s
{-1/8, 0}
sage: s.manin_symbol_rep() # indirect doctest
-(-8,1) - (1,1)
sage: M = ModularSymbols(11,2)
sage: s = M( (1,9) ); s
(1,9)
sage: t = s.modular_symbol_rep()[0][1].manin_symbol_rep(); t
-(-9,1) - (1,1)
sage: M(t)
(1,9)
Compare self to other.
EXAMPLES:
sage: M = ModularSymbols(11)
sage: s = M.2.modular_symbol_rep()[0][1]
sage: t = M.0.modular_symbol_rep()[0][1]
sage: s, t
({-1/9, 0}, {Infinity, 0})
sage: s < t
True
sage: t > s
True
sage: s == s
True
sage: t == t
True
Given a modular symbols , s[0] is
and s[1] is
.
EXAMPLES:
sage: s = ModularSymbols(11).2.modular_symbol_rep()[0][1]; s
{-1/9, 0}
sage: s[0]
-1/9
sage: s[1]
0
sage: s[2]
...
IndexError: list index out of range
Initialise a modular symbol.
INPUT:
EXAMPLES:
sage: s = ModularSymbols(11).2.modular_symbol_rep()[0][1]; s
{-1/9, 0}
sage: type(s)
<class 'sage.modular.modsym.modular_symbols.ModularSymbol'>
sage: s = ModularSymbols(11,4).2.modular_symbol_rep()[0][1]; s
X^2*{-1/7, 0}
Return Latex representation of this modular symbol.
EXAMPLES:
sage: s = ModularSymbols(11,4).2.modular_symbol_rep()[0][1]; s X^2*{-1/7, 0} sage: latex(s) # indirect doctest X^{2}\left\{rac{-1}{7}, 0
ight}
String representation of this modular symbol.
EXAMPLES:
sage: s = ModularSymbols(11,4).2.modular_symbol_rep()[0][1]; s
X^2*{-1/7, 0}
sage: s._repr_()
'X^2*{-1/7, 0}'
sage: s.rename('sym')
sage: s
sym
For a symbol of the form , return
.
EXAMPLES:
sage: s = ModularSymbols(11,4).1.modular_symbol_rep()[0][1]; s
X^2*{-1/6, 0}
sage: s.alpha()
-1/6
sage: type(s.alpha())
<class 'sage.modular.cusps.Cusp'>
Act on this symbol by the element .
INPUT:
OUTPUT:
The action of on symbols is by
Note that for us we have , which simplifies computation
of the polynomial part slightly.
EXAMPLES:
sage: s = ModularSymbols(11,2).1.modular_symbol_rep()[0][1]; s
{-1/8, 0}
sage: a=1;b=2;c=3;d=4; s.apply([a,b,c,d])
{15/29, 1/2}
sage: x = -1/8; (a*x+b)/(c*x+d)
15/29
sage: x = 0; (a*x+b)/(c*x+d)
1/2
sage: s = ModularSymbols(11,4).1.modular_symbol_rep()[0][1]; s
X^2*{-1/6, 0}
sage: s.apply([a,b,c,d])
16*X^2*{11/21, 1/2} - 16*X*Y*{11/21, 1/2} + 4*Y^2*{11/21, 1/2}
sage: P = s.polynomial_part()
sage: X,Y = P.parent().gens()
sage: P(d*X-b*Y, -c*X+a*Y)
16*X^2 - 16*X*Y + 4*Y^2
sage: x=-1/6; (a*x+b)/(c*x+d)
11/21
sage: x=0; (a*x+b)/(c*x+d)
1/2
sage: type(s.apply([a,b,c,d]))
<class 'sage.structure.formal_sum.FormalSum'>
For a symbol of the form , return
.
EXAMPLES:
sage: s = ModularSymbols(11,4).1.modular_symbol_rep()[0][1]; s
X^2*{-1/6, 0}
sage: s.beta()
0
sage: type(s.beta())
<class 'sage.modular.cusps.Cusp'>
For a symbol of the form , return
.
EXAMPLES:
sage: s = ModularSymbols(11).2.modular_symbol_rep()[0][1]
sage: s.i()
0
sage: s = ModularSymbols(1,28).0.modular_symbol_rep()[0][1]; s
X^22*Y^4*{0, Infinity}
sage: s.i()
22
Returns a representation of self as a formal sum of Manin symbols. (The result is not cached.)
EXAMPLES:
sage: M = ModularSymbols(11,4)
sage: s = M.1.modular_symbol_rep()[0][1]; s
X^2*{-1/6, 0}
sage: s.manin_symbol_rep()
-[Y^2,(1,1)] - 2*[X*Y,(-1,0)] - [X^2,(-6,1)] - [X^2,(-1,0)]
sage: M(s.manin_symbol_rep()) == M([2,-1/6,0])
True
Return the polynomial part of this symbol, i.e. for a symbol of the
form , return
.
EXAMPLES:
sage: s = ModularSymbols(11).2.modular_symbol_rep()[0][1]
sage: s.polynomial_part()
1
sage: s = ModularSymbols(1,28).0.modular_symbol_rep()[0][1]; s
X^22*Y^4*{0, Infinity}
sage: s.polynomial_part()
X^22*Y^4
The list of Manin symbols to which this symbol belongs.
EXAMPLES:
sage: s = ModularSymbols(11).2.modular_symbol_rep()[0][1]
sage: s.space()
Manin Symbol List of weight 2 for Gamma0(11)
Return the weight of the modular symbols space to which this symbol
belongs; i.e. for a symbol of the form , return
.
EXAMPLES:
sage: s = ModularSymbols(1,28).0.modular_symbol_rep()[0][1]
sage: s.weight()
28