Manin symbol lists¶
There are various different classes holding lists of Manin symbols of different types. The hierarchy is as follows:
- class sage.modular.modsym.manin_symbol_list.ManinSymbolList(weight, lst)[source]¶
Bases:
ParentBase class for lists of all Manin symbols for a given weight, group or character.
- Element[source]¶
alias of
ManinSymbol
- apply(j, X)[source]¶
Apply the matrix \(X = [a, b; c, d]\) to the \(j\)-th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.apply(10, [1,2,0,1]) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.apply(Integer(10), [Integer(1),Integer(2),Integer(0),Integer(1)]) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
- apply_I(j)[source]¶
Apply the matrix \(I = [-1, 0; 0, 1]\) to the \(j\)-th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.apply_I(10) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.apply_I(Integer(10)) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
- apply_S(j)[source]¶
Apply the matrix \(S = [0, -1; 1, 0]\) to the \(j\)-th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.apply_S(10) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.apply_S(Integer(10)) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
- apply_T(j)[source]¶
Apply the matrix \(T = [0, 1; -1, -1]\) to the \(j\)-th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.apply_T(10) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.apply_T(Integer(10)) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
- apply_TT(j)[source]¶
Apply the matrix \(TT = T^2 = [-1, -1; 0, 1]\) to the \(j\)-th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.apply_TT(10) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.apply_TT(Integer(10)) Traceback (most recent call last): ... NotImplementedError: Only implemented in derived classes
- index(x)[source]¶
Return the index of
xin the list of Manin symbols.INPUT:
x– a triple of integers \((i, u, v)\) defining a valid Manin symbol, which need not be normalized
OUTPUT:
integer – the index of the normalized Manin symbol equivalent to \((i, u, v)\). If
xis not inself, -1 is returned.EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.index(m.symbol_list()[2]) 2 sage: S = m.symbol_list() sage: all(i == m.index(S[i]) for i in range(len(S))) True
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.index(m.symbol_list()[Integer(2)]) 2 >>> S = m.symbol_list() >>> all(i == m.index(S[i]) for i in range(len(S))) True
- list()[source]¶
Return all the Manin symbols in
selfas a list.Cached for subsequent calls.
OUTPUT:
A list of
ManinSymbolobjects, which is a copy of the complete list of Manin symbols.EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.manin_symbol_list() # not implemented for the base class
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.manin_symbol_list() # not implemented for the base class
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(6, 4) sage: m.manin_symbol_list() [[Y^2,(0,1)], [Y^2,(1,0)], [Y^2,(1,1)], ... [X^2,(3,1)], [X^2,(3,2)]]
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(6), Integer(4)) >>> m.manin_symbol_list() [[Y^2,(0,1)], [Y^2,(1,0)], [Y^2,(1,1)], ... [X^2,(3,1)], [X^2,(3,2)]]
- manin_symbol(i)[source]¶
Return the
i-th Manin symbol in thisManinSymbolList.INPUT:
i– integer; a valid index of a symbol in this list
OUTPUT:
ManinSymbol– the \(i\)-th Manin symbol in the list.EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.manin_symbol(3) # not implemented for base class
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.manin_symbol(Integer(3)) # not implemented for base class
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(6, 4) sage: s = m.manin_symbol(3); s [Y^2,(1,2)] sage: type(s) <class 'sage.modular.modsym.manin_symbol.ManinSymbol'>
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(6), Integer(4)) >>> s = m.manin_symbol(Integer(3)); s [Y^2,(1,2)] >>> type(s) <class 'sage.modular.modsym.manin_symbol.ManinSymbol'>
- manin_symbol_list()[source]¶
Return all the Manin symbols in
selfas a list.Cached for subsequent calls.
OUTPUT:
A list of
ManinSymbolobjects, which is a copy of the complete list of Manin symbols.EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.manin_symbol_list() # not implemented for the base class
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.manin_symbol_list() # not implemented for the base class
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(6, 4) sage: m.manin_symbol_list() [[Y^2,(0,1)], [Y^2,(1,0)], [Y^2,(1,1)], ... [X^2,(3,1)], [X^2,(3,2)]]
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(6), Integer(4)) >>> m.manin_symbol_list() [[Y^2,(0,1)], [Y^2,(1,0)], [Y^2,(1,1)], ... [X^2,(3,1)], [X^2,(3,2)]]
- normalize(x)[source]¶
Return a normalized Manin symbol from
x.To be implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6,P1List(11)) sage: m.normalize((0,6,7)) # not implemented in base class
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6),P1List(Integer(11))) >>> m.normalize((Integer(0),Integer(6),Integer(7))) # not implemented in base class
- symbol_list()[source]¶
Return the list of symbols of
self.EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList sage: m = ManinSymbolList(6, P1List(11))
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList >>> m = ManinSymbolList(Integer(6), P1List(Integer(11)))
- weight()[source]¶
Return the weight of the Manin symbols in this
ManinSymbolList.OUTPUT: integer; the weight of the Manin symbols in the list
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(6, 4) sage: m.weight() 4
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(6), Integer(4)) >>> m.weight() 4
- class sage.modular.modsym.manin_symbol_list.ManinSymbolList_character(character, weight)[source]¶
Bases:
ManinSymbolListList of Manin symbols with character.
INPUT:
character– (DirichletCharacter) the Dirichlet characterweight– integer; the weight
EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,2); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] sage: m.manin_symbol_list() [(0,1), (1,0), (1,1), (1,2), (1,3), (2,1)] sage: m == loads(dumps(m)) True
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(2)); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] >>> m.manin_symbol_list() [(0,1), (1,0), (1,1), (1,2), (1,3), (2,1)] >>> m == loads(dumps(m)) True
- apply(j, m)[source]¶
Apply the integer matrix \(m=[a,b;c,d]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; the index of the symbol to act onm– list of integers \([a,b,c,d]\) where \(m = [a, b; c, d]\) is the matrix to be applied
OUTPUT:
A list of pairs \((j, c_i)\), where each \(c_i\) is an integer, \(j\) is an integer (the \(j\)-th Manin symbol), and the sum \(c_i*x_i\) is the image of
selfunder the right action of the matrix \([a,b;c,d]\). Here the right action of \(g = [a,b;c,d]\) on a Manin symbol \([P(X,Y),(u,v)]\) is by definition \([P(aX+bY,cX+dY),(u,v)*g]\).EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,4) sage: m[6] [X*Y,(0,1)] sage: m.apply(4, [1,0,0,1]) [(4, 1)] sage: m.apply(1, [-1,0,0,1]) [(1, -1)]
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(4)) >>> m[Integer(6)] [X*Y,(0,1)] >>> m.apply(Integer(4), [Integer(1),Integer(0),Integer(0),Integer(1)]) [(4, 1)] >>> m.apply(Integer(1), [-Integer(1),Integer(0),Integer(0),Integer(1)]) [(1, -1)]
- apply_I(j)[source]¶
Apply the matrix \(I=[-1,0,0,1]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol index
OUTPUT:
(k, s)where \(k\) is the index of the symbol obtained by acting on the \(j\)-th symbol with \(I\), and \(s\) is the parity of the \(j\)-th symbol.EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,2); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] sage: m.apply_I(4) (2, -1) sage: [m.apply_I(i) for i in range(len(m))] [(0, 1), (1, -1), (4, -1), (3, -1), (2, -1), (5, 1)]
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(2)); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] >>> m.apply_I(Integer(4)) (2, -1) >>> [m.apply_I(i) for i in range(len(m))] [(0, 1), (1, -1), (4, -1), (3, -1), (2, -1), (5, 1)]
- apply_S(j)[source]¶
Apply the matrix \(S=[0,1;-1,0]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol index
OUTPUT:
(k, s)where \(k\) is the index of the symbol obtained by acting on the \(j\)-th symbol with \(S\), and \(s\) is the parity of the \(j\)-th symbol.EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,2); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] sage: m.apply_S(4) (2, -1) sage: [m.apply_S(i) for i in range(len(m))] [(1, 1), (0, -1), (4, 1), (5, -1), (2, -1), (3, 1)]
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(2)); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] >>> m.apply_S(Integer(4)) (2, -1) >>> [m.apply_S(i) for i in range(len(m))] [(1, 1), (0, -1), (4, 1), (5, -1), (2, -1), (3, 1)]
- apply_T(j)[source]¶
Apply the matrix \(T=[0,1,-1,-1]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol index
OUTPUT:
A list of pairs \((j, c_i)\), where each \(c_i\) is an integer, \(j\) is an integer (the \(j\)-th Manin symbol), and the sum \(c_i*x_i\) is the image of
selfunder the right action of the matrix \(T\).EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,2); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] sage: m.apply_T(4) [(1, -1)] sage: [m.apply_T(i) for i in range(len(m))] [[(4, 1)], [(0, -1)], [(3, 1)], [(5, 1)], [(1, -1)], [(2, 1)]]
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(2)); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] >>> m.apply_T(Integer(4)) [(1, -1)] >>> [m.apply_T(i) for i in range(len(m))] [[(4, 1)], [(0, -1)], [(3, 1)], [(5, 1)], [(1, -1)], [(2, 1)]]
- apply_TT(j)[source]¶
Apply the matrix \(TT=[-1,-1,0,1]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol index
OUTPUT:
A list of pairs \((j, c_i)\), where each \(c_i\) is an integer, \(j\) is an integer (the \(j\)-th Manin symbol), and the sum \(c_i*x_i\) is the image of
selfunder the right action of the matrix \(T^2\).EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,2); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] sage: m.apply_TT(4) [(0, 1)] sage: [m.apply_TT(i) for i in range(len(m))] [[(1, -1)], [(4, -1)], [(5, 1)], [(2, 1)], [(0, 1)], [(3, 1)]]
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(2)); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] >>> m.apply_TT(Integer(4)) [(0, 1)] >>> [m.apply_TT(i) for i in range(len(m))] [[(1, -1)], [(4, -1)], [(5, 1)], [(2, 1)], [(0, 1)], [(3, 1)]]
- character()[source]¶
Return the character of this
ManinSymbolList_characterobject.OUTPUT: the Dirichlet character of this Manin symbol list
EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,2); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] sage: m.character() Dirichlet character modulo 4 of conductor 4 mapping 3 |--> -1
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(2)); m Manin Symbol List of weight 2 for Gamma1(4) with character [-1] >>> m.character() Dirichlet character modulo 4 of conductor 4 mapping 3 |--> -1
- index(x)[source]¶
Return the index of a standard Manin symbol equivalent to
x, together with a scaling factor.INPUT:
x– 3-tuple of integers defining an element of this list of Manin symbols, which need not be normalized
OUTPUT:
A pair
(i, s)whereiis the index of the Manin symbol equivalent toxandsis the scalar (an element of the base field). If there is no Manin symbol equivalent toxin the list, then(-1, 0)is returned.EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,4); m Manin Symbol List of weight 4 for Gamma1(4) with character [-1] sage: [m.index(s.tuple()) for s in m.manin_symbol_list()] [(0, 1), (1, 1), (2, 1), (3, 1), ... (16, 1), (17, 1)]
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(4)); m Manin Symbol List of weight 4 for Gamma1(4) with character [-1] >>> [m.index(s.tuple()) for s in m.manin_symbol_list()] [(0, 1), (1, 1), (2, 1), (3, 1), ... (16, 1), (17, 1)]
- level()[source]¶
Return the level of this
ManinSymbolList.OUTPUT: integer; the level of the symbols in this list
EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: ManinSymbolList_character(eps,4).level() 4
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> ManinSymbolList_character(eps,Integer(4)).level() 4
- normalize(x)[source]¶
Return the normalization of the Manin Symbol
xwith respect to this list, together with the normalizing scalar.INPUT:
x– 3-tuple of integers(i,u,v), defining an element of this list of Manin symbols, which need not be normalized
OUTPUT:
((i,u,v),s), where(i,u,v)is the normalized Manin symbol equivalent tox, andsis the normalizing scalar.EXAMPLES:
sage: # needs sage.rings.number_field sage: eps = DirichletGroup(4).gen(0) sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character sage: m = ManinSymbolList_character(eps,4); m Manin Symbol List of weight 4 for Gamma1(4) with character [-1] sage: [m.normalize(s.tuple()) for s in m.manin_symbol_list()] [((0, 0, 1), 1), ((0, 1, 0), 1), ((0, 1, 1), 1), ... ((2, 1, 3), 1), ((2, 2, 1), 1)]
>>> from sage.all import * >>> # needs sage.rings.number_field >>> eps = DirichletGroup(Integer(4)).gen(Integer(0)) >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_character >>> m = ManinSymbolList_character(eps,Integer(4)); m Manin Symbol List of weight 4 for Gamma1(4) with character [-1] >>> [m.normalize(s.tuple()) for s in m.manin_symbol_list()] [((0, 0, 1), 1), ((0, 1, 0), 1), ((0, 1, 1), 1), ... ((2, 1, 3), 1), ((2, 2, 1), 1)]
- class sage.modular.modsym.manin_symbol_list.ManinSymbolList_gamma0(level, weight)[source]¶
Bases:
ManinSymbolList_groupClass for Manin symbols for \(\Gamma_0(N)\).
INPUT:
level– integer; the levelweight– integer; the weight
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,2); m Manin Symbol List of weight 2 for Gamma0(5) sage: m.manin_symbol_list() [(0,1), (1,0), (1,1), (1,2), (1,3), (1,4)] sage: m = ManinSymbolList_gamma0(6,4); m Manin Symbol List of weight 4 for Gamma0(6) sage: len(m) 36
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(5),Integer(2)); m Manin Symbol List of weight 2 for Gamma0(5) >>> m.manin_symbol_list() [(0,1), (1,0), (1,1), (1,2), (1,3), (1,4)] >>> m = ManinSymbolList_gamma0(Integer(6),Integer(4)); m Manin Symbol List of weight 4 for Gamma0(6) >>> len(m) 36
- class sage.modular.modsym.manin_symbol_list.ManinSymbolList_gamma1(level, weight)[source]¶
Bases:
ManinSymbolList_groupClass for Manin symbols for \(\Gamma_1(N)\).
INPUT:
level– integer; the levelweight– integer; the weight
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma1 sage: m = ManinSymbolList_gamma1(5,2); m Manin Symbol List of weight 2 for Gamma1(5) sage: m.manin_symbol_list() [(0,1), (0,2), (0,3), ... (4,3), (4,4)] sage: m = ManinSymbolList_gamma1(6,4); m Manin Symbol List of weight 4 for Gamma1(6) sage: len(m) 72 sage: m == loads(dumps(m)) True
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma1 >>> m = ManinSymbolList_gamma1(Integer(5),Integer(2)); m Manin Symbol List of weight 2 for Gamma1(5) >>> m.manin_symbol_list() [(0,1), (0,2), (0,3), ... (4,3), (4,4)] >>> m = ManinSymbolList_gamma1(Integer(6),Integer(4)); m Manin Symbol List of weight 4 for Gamma1(6) >>> len(m) 72 >>> m == loads(dumps(m)) True
- class sage.modular.modsym.manin_symbol_list.ManinSymbolList_gamma_h(group, weight)[source]¶
Bases:
ManinSymbolList_groupClass for Manin symbols for \(\Gamma_H(N)\).
INPUT:
group– integer; the congruence subgroupweight– integer; the weight
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma_h sage: G = GammaH(117, [4]) sage: m = ManinSymbolList_gamma_h(G,2); m Manin Symbol List of weight 2 for Congruence Subgroup Gamma_H(117) with H generated by [4] sage: m.manin_symbol_list()[100:110] [(1,88), (1,89), (1,90), (1,91), (1,92), (1,93), (1,94), (1,95), (1,96), (1,97)] sage: len(m.manin_symbol_list()) 2016 sage: m == loads(dumps(m)) True
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma_h >>> G = GammaH(Integer(117), [Integer(4)]) >>> m = ManinSymbolList_gamma_h(G,Integer(2)); m Manin Symbol List of weight 2 for Congruence Subgroup Gamma_H(117) with H generated by [4] >>> m.manin_symbol_list()[Integer(100):Integer(110)] [(1,88), (1,89), (1,90), (1,91), (1,92), (1,93), (1,94), (1,95), (1,96), (1,97)] >>> len(m.manin_symbol_list()) 2016 >>> m == loads(dumps(m)) True
- group()[source]¶
Return the group associated to
self.EXAMPLES:
sage: ModularSymbols(GammaH(12, [5]), 2).manin_symbols().group() Congruence Subgroup Gamma_H(12) with H generated by [5]
>>> from sage.all import * >>> ModularSymbols(GammaH(Integer(12), [Integer(5)]), Integer(2)).manin_symbols().group() Congruence Subgroup Gamma_H(12) with H generated by [5]
- class sage.modular.modsym.manin_symbol_list.ManinSymbolList_group(level, weight, syms)[source]¶
Bases:
ManinSymbolListBase class for Manin symbol lists for a given group.
INPUT:
level– integer levelweight– integer weightsyms– something withnormalizeandlistmethods, e.g.P1List
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_group sage: ManinSymbolList_group(11, 2, P1List(11)) <sage.modular.modsym.manin_symbol_list.ManinSymbolList_group_with_category object at ...>
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_group >>> ManinSymbolList_group(Integer(11), Integer(2), P1List(Integer(11))) <sage.modular.modsym.manin_symbol_list.ManinSymbolList_group_with_category object at ...>
- apply(j, m)[source]¶
Apply the matrix \(m = [a, b; c, d]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol indexm = [a, b, c, d]a list of 4 integers, which defines a 2x2 matrix
OUTPUT:
a list of pairs \((j_i, \alpha_i)\), where each \(\alpha_i\) is a nonzero integer, \(j_i\) is an integer (index of the \(j_i\)-th Manin symbol), and \(\sum_i \alpha_i\*x_{j_i}\) is the image of the \(j\)-th Manin symbol under the right action of the matrix [a,b;c,d]. Here the right action of \(g = [a, b; c, d]\) on a Manin symbol \([P(X,Y),(u,v)]\) is \([P(aX+bY,cX+dY),(u,v)\*g]\).
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: m.apply(40, [2,3,1,1]) [(0, 729), (6, 2916), (12, 4860), (18, 4320), (24, 2160), (30, 576), (36, 64)]
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(5),Integer(8)) >>> m.apply(Integer(40), [Integer(2),Integer(3),Integer(1),Integer(1)]) [(0, 729), (6, 2916), (12, 4860), (18, 4320), (24, 2160), (30, 576), (36, 64)]
- apply_I(j)[source]¶
Apply the matrix \(I=[-1,0,0,1]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol index
OUTPUT:
(k, s)where k is the index of the symbol obtained by acting on the \(j\)-th symbol with \(I\), and \(s\) is the parity of the \(j\)-th symbol (a Pythonint, either 1 or -1)EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: m.apply_I(4) (3, 1) sage: [m.apply_I(i) for i in range(10)] [(0, 1), (1, 1), (5, 1), (4, 1), (3, 1), (2, 1), (6, -1), (7, -1), (11, -1), (10, -1)]
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(5),Integer(8)) >>> m.apply_I(Integer(4)) (3, 1) >>> [m.apply_I(i) for i in range(Integer(10))] [(0, 1), (1, 1), (5, 1), (4, 1), (3, 1), (2, 1), (6, -1), (7, -1), (11, -1), (10, -1)]
- apply_S(j)[source]¶
Apply the matrix \(S = [0, -1; 1, 0]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol index
OUTPUT:
(k, s)where k is the index of the symbol obtained by acting on the \(j\)-th symbol with \(S\), and \(s\) is the parity of the \(j\)-th symbol (a Pythonint, either 1 or -1).EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: m.apply_S(4) (40, 1) sage: [m.apply_S(i) for i in range(len(m))] [(37, 1), (36, 1), (41, 1), (39, 1), (40, 1), (38, 1), (31, -1), (30, -1), (35, -1), (33, -1), (34, -1), (32, -1), ... (4, 1), (2, 1)]
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(5),Integer(8)) >>> m.apply_S(Integer(4)) (40, 1) >>> [m.apply_S(i) for i in range(len(m))] [(37, 1), (36, 1), (41, 1), (39, 1), (40, 1), (38, 1), (31, -1), (30, -1), (35, -1), (33, -1), (34, -1), (32, -1), ... (4, 1), (2, 1)]
- apply_T(j)[source]¶
Apply the matrix \(T=[0,1,-1,-1]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol index
OUTPUT: see documentation for apply()
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: m.apply_T(4) [(3, 1), (9, -6), (15, 15), (21, -20), (27, 15), (33, -6), (39, 1)] sage: [m.apply_T(i) for i in range(10)] [[(5, 1), (11, -6), (17, 15), (23, -20), (29, 15), (35, -6), (41, 1)], [(0, 1), (6, -6), (12, 15), (18, -20), (24, 15), (30, -6), (36, 1)], [(4, 1), (10, -6), (16, 15), (22, -20), (28, 15), (34, -6), (40, 1)], [(2, 1), (8, -6), (14, 15), (20, -20), (26, 15), (32, -6), (38, 1)], [(3, 1), (9, -6), (15, 15), (21, -20), (27, 15), (33, -6), (39, 1)], [(1, 1), (7, -6), (13, 15), (19, -20), (25, 15), (31, -6), (37, 1)], [(5, 1), (11, -5), (17, 10), (23, -10), (29, 5), (35, -1)], [(0, 1), (6, -5), (12, 10), (18, -10), (24, 5), (30, -1)], [(4, 1), (10, -5), (16, 10), (22, -10), (28, 5), (34, -1)], [(2, 1), (8, -5), (14, 10), (20, -10), (26, 5), (32, -1)]]
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(5),Integer(8)) >>> m.apply_T(Integer(4)) [(3, 1), (9, -6), (15, 15), (21, -20), (27, 15), (33, -6), (39, 1)] >>> [m.apply_T(i) for i in range(Integer(10))] [[(5, 1), (11, -6), (17, 15), (23, -20), (29, 15), (35, -6), (41, 1)], [(0, 1), (6, -6), (12, 15), (18, -20), (24, 15), (30, -6), (36, 1)], [(4, 1), (10, -6), (16, 15), (22, -20), (28, 15), (34, -6), (40, 1)], [(2, 1), (8, -6), (14, 15), (20, -20), (26, 15), (32, -6), (38, 1)], [(3, 1), (9, -6), (15, 15), (21, -20), (27, 15), (33, -6), (39, 1)], [(1, 1), (7, -6), (13, 15), (19, -20), (25, 15), (31, -6), (37, 1)], [(5, 1), (11, -5), (17, 10), (23, -10), (29, 5), (35, -1)], [(0, 1), (6, -5), (12, 10), (18, -10), (24, 5), (30, -1)], [(4, 1), (10, -5), (16, 10), (22, -10), (28, 5), (34, -1)], [(2, 1), (8, -5), (14, 10), (20, -10), (26, 5), (32, -1)]]
- apply_TT(j)[source]¶
Apply the matrix \(TT=[-1,-1,0,1]\) to the \(j\)-th Manin symbol.
INPUT:
j– integer; a symbol index
OUTPUT: see documentation for apply()
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: m.apply_TT(4) [(38, 1)] sage: [m.apply_TT(i) for i in range(10)] [[(37, 1)], [(41, 1)], [(39, 1)], [(40, 1)], [(38, 1)], [(36, 1)], [(31, -1), (37, 1)], [(35, -1), (41, 1)], [(33, -1), (39, 1)], [(34, -1), (40, 1)]]
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(5),Integer(8)) >>> m.apply_TT(Integer(4)) [(38, 1)] >>> [m.apply_TT(i) for i in range(Integer(10))] [[(37, 1)], [(41, 1)], [(39, 1)], [(40, 1)], [(38, 1)], [(36, 1)], [(31, -1), (37, 1)], [(35, -1), (41, 1)], [(33, -1), (39, 1)], [(34, -1), (40, 1)]]
- level()[source]¶
Return the level of this
ManinSymbolList.EXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: ManinSymbolList_gamma0(5,2).level() 5
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> ManinSymbolList_gamma0(Integer(5),Integer(2)).level() 5
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma1 sage: ManinSymbolList_gamma1(51,2).level() 51
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma1 >>> ManinSymbolList_gamma1(Integer(51),Integer(2)).level() 51
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma_h sage: ManinSymbolList_gamma_h(GammaH(117, [4]),2).level() 117
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma_h >>> ManinSymbolList_gamma_h(GammaH(Integer(117), [Integer(4)]),Integer(2)).level() 117
- normalize(x)[source]¶
Return the normalization of the Manin symbol
xwith respect to this list.INPUT:
x– (3-tuple of ints) a tuple defining a ManinSymbol
OUTPUT:
(i,u,v)– (3-tuple of ints) another tuple defining the associated normalized ManinSymbolEXAMPLES:
sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: [m.normalize(s.tuple()) for s in m.manin_symbol_list()][:10] [(0, 0, 1), (0, 1, 0), (0, 1, 1), (0, 1, 2), (0, 1, 3), (0, 1, 4), (1, 0, 1), (1, 1, 0), (1, 1, 1), (1, 1, 2)]
>>> from sage.all import * >>> from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 >>> m = ManinSymbolList_gamma0(Integer(5),Integer(8)) >>> [m.normalize(s.tuple()) for s in m.manin_symbol_list()][:Integer(10)] [(0, 0, 1), (0, 1, 0), (0, 1, 1), (0, 1, 2), (0, 1, 3), (0, 1, 4), (1, 0, 1), (1, 1, 0), (1, 1, 1), (1, 1, 2)]