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: - Parent- Base 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 in- self, -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 this- ManinSymbolList.- 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: - ManinSymbolList- List of Manin symbols with character. - INPUT: - character– (DirichletCharacter) the Dirichlet character
- weight– 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 on
- m– 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)where- iis the index of the Manin symbol equivalent to- xand- sis the scalar (an element of the base field). If there is no Manin symbol equivalent to- xin 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 to- x, and- sis 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_group- Class for Manin symbols for \(\Gamma_0(N)\). - INPUT: - level– integer; the level
- weight– 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_group- Class for Manin symbols for \(\Gamma_1(N)\). - INPUT: - level– integer; the level
- weight– 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_group- Class for Manin symbols for \(\Gamma_H(N)\). - INPUT: - group– integer; the congruence subgroup
- weight– 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: - ManinSymbolList- Base class for Manin symbol lists for a given group. - INPUT: - level– integer level
- weight– integer weight
- syms– something with- normalizeand- listmethods, 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 index
- m = [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 Python- int, 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 Python- int, 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 ManinSymbol- EXAMPLES: - 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)]