def apply_TT(self, j): """ Apply the matrix `TT=[-1,-1,0,1]` to the `j`-th Manin symbol. INPUT: - ``j`` - (int) 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)]] """ k = self._weight i, u, v = self._symbol_list[j] u, v = self.__syms.normalize(-u - v, u) if (k - 2 - i) % 2 == 0: s = 1 else: s = -1 z = [] a = Integer(i) for j in range(i + 1): m = self.index((k - 2 - i + j, u, v)) z.append((m, s * a.binomial(j))) s *= -1 return z
def apply_T(self, j): """ Apply the matrix `T=[0,1,-1,-1]` to the `j`-th Manin symbol. INPUT: - ``j`` - (int) 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)]] """ k = self._weight i, u, v = self._symbol_list[j] u, v = self.__syms.normalize(v, -u - v) if (k - 2) % 2 == 0: s = 1 else: s = -1 z = [] a = Integer(k - 2 - i) for j in range(k - 2 - i + 1): m = self.index((j, u, v)) z.append((m, s * a.binomial(j))) s *= -1 return z
def apply_TT(self, j): """ Apply the matrix `TT=[-1,-1,0,1]` to the `j`-th Manin symbol. INPUT: - ``j`` - (int) a symbol index OUTPUT: see documentation for apply() EXAMPLE:: 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 xrange(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)]] """ k = self._weight i, u, v = self._symbol_list[j] u, v = self.__syms.normalize(-u-v,u) if (k-2-i) % 2 == 0: s = 1 else: s = -1 z = [] a = Integer(i) for j in range(i+1): m = self.index((k-2-i+j, u, v)) z.append((m, s * a.binomial(j))) s *= -1 return z
def apply_T(self, j): """ Apply the matrix `T=[0,1,-1,-1]` to the `j`-th Manin symbol. INPUT: - ``j`` - (int) a symbol index OUTPUT: see documentation for apply() EXAMPLE:: 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 xrange(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)]] """ k = self._weight i, u, v = self._symbol_list[j] u, v = self.__syms.normalize(v,-u-v) if (k-2) % 2 == 0: s = 1 else: s = -1 z = [] a = Integer(k-2-i) for j in range(k-2-i+1): m = self.index((j, u, v)) z.append((m, s * a.binomial(j))) s *= -1 return z
def apply_TT(self, j): """ 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 self under the right action of the matrix `T^2`. EXAMPLES:: 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)]] """ k = self._weight i, u, v = self._symbol_list[j] u, v, r = self.__P1.normalize_with_scalar(-u - v, u) r = self.__character(r) if (k - 2 - i) % 2 == 0: s = r else: s = -r z = [] a = Integer(i) for j in range(i + 1): m, r = self.index((k - 2 - i + j, u, v)) z.append((m, s * r * a.binomial(j))) s *= -1 return z
def apply_TT(self, j): """ 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 self under the right action of the matrix `T^2`. EXAMPLE:: 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 xrange(len(m))] [[(1, -1)], [(4, -1)], [(5, 1)], [(2, 1)], [(0, 1)], [(3, 1)]] """ k = self._weight i, u, v = self._symbol_list[j] u, v, r = self.__P1.normalize_with_scalar(-u-v,u) r = self.__character(r) if (k-2-i) % 2 == 0: s = r else: s = -r z = [] a = Integer(i) for j in range(i+1): m, r = self.index((k-2-i+j, u, v)) z.append((m, s * r * a.binomial(j))) s *= -1 return z