def __init__(self, level, weight): """ Constructor for a ModularSymbolList for Gamma_0(N) EXAMPLES:: sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: M11 = ManinSymbolList_gamma0(11,2) sage: M11 Manin Symbol List of weight 2 for Gamma0(11) sage: M11 == loads(dumps(M11)) True """ ManinSymbolList_group.__init__(self, level, weight, p1list.P1List(level))
def __init__(self, character, weight): """ Constructor for :class:`ManinSymbolList_character` objects. INPUT: - ``character`` - (DirichletCharacter) the Dirichlet character - ``weight`` - (integer) the weight 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.manin_symbol_list() [(0,1), (1,0), (1,1), (1,2), (1,3), (2,1)] sage: TestSuite(m).run() """ self.__level = character.modulus() self.__P1 = p1list.P1List(self.level()) # We make a copy of the character *only* to program around what seems # to be a bug in the cPickle module in some obscure case. # If we don't due this, then this doctest fails. # sage: M = ModularSymbols(DirichletGroup(5).0) # sage: loads(dumps(M)) == M self.__character = character.__copy__() # The list returned from P1List is guaranteed to be sorted. # Thus each list constructed below is also sorted. This is # important since the index function assumes the list is sorted. L = [(i, u, v) for i in range(weight-2+1) \ for u, v in self.__P1.list()] self.__list = L ManinSymbolList.__init__(self, weight, L)