def eisenstein_params(self): """ Return parameters that define all Eisenstein series in self. OUTPUT: an immutable Sequence EXAMPLES:: sage: m = ModularForms(Gamma0(22), 2) sage: v = m.eisenstein_params(); v [(Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, 2), (Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, 11), (Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, 22)] sage: type(v) <class 'sage.structure.sequence.Sequence_generic'> """ try: return self.__eisenstein_params except AttributeError: eps = self.character() if eps is None: if arithgroup.is_Gamma1(self.group()): eps = self.level() else: raise NotImplementedError params = eis_series.compute_eisenstein_params(eps, self.weight()) self.__eisenstein_params = Sequence(params, immutable=True) return self.__eisenstein_params
def eisenstein_params(self): """ Return parameters that define all Eisenstein series in self. OUTPUT: an immutable Sequence EXAMPLES:: sage: m = ModularForms(Gamma0(22), 2) sage: v = m.eisenstein_params(); v [(Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, 2), (Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, 11), (Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, Dirichlet character modulo 22 of conductor 1 mapping 13 |--> 1, 22)] sage: type(v) <class 'sage.structure.sequence.Sequence_generic'> """ try: return self.__eisenstein_params except AttributeError: eps = self.character() if eps == None: if arithgroup.is_Gamma1(self.group()): eps = self.level() else: raise NotImplementedError params = eis_series.compute_eisenstein_params(eps, self.weight()) self.__eisenstein_params = Sequence(params, immutable=True) return self.__eisenstein_params
def parameters(self): r""" Return a list of parameters for each Eisenstein series spanning self. That is, for each such series, return a triple of the form (`\psi`, `\chi`, level), where `\psi` and `\chi` are the characters defining the Eisenstein series, and level is the smallest level at which this series occurs. EXAMPLES:: sage: ModularForms(24,2).eisenstein_submodule().parameters() [(Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, 2), ... Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, 24)] sage: EisensteinForms(12,6).parameters()[-1] (Dirichlet character modulo 12 of conductor 1 mapping 7 |--> 1, 5 |--> 1, Dirichlet character modulo 12 of conductor 1 mapping 7 |--> 1, 5 |--> 1, 12) sage: pars = ModularForms(DirichletGroup(24).0,3).eisenstein_submodule().parameters() sage: [(x[0].values_on_gens(),x[1].values_on_gens(),x[2]) for x in pars] [((1, 1, 1), (-1, 1, 1), 1), ((1, 1, 1), (-1, 1, 1), 2), ((1, 1, 1), (-1, 1, 1), 3), ((1, 1, 1), (-1, 1, 1), 6), ((-1, 1, 1), (1, 1, 1), 1), ((-1, 1, 1), (1, 1, 1), 2), ((-1, 1, 1), (1, 1, 1), 3), ((-1, 1, 1), (1, 1, 1), 6)] sage: EisensteinForms(DirichletGroup(24).0,1).parameters() [(Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 4 mapping 7 |--> -1, 13 |--> 1, 17 |--> 1, 1), (Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 4 mapping 7 |--> -1, 13 |--> 1, 17 |--> 1, 2), (Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 4 mapping 7 |--> -1, 13 |--> 1, 17 |--> 1, 3), (Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 4 mapping 7 |--> -1, 13 |--> 1, 17 |--> 1, 6)] """ try: return self.__parameters except AttributeError: char = self._parameters_character() if char is None: P = eis_series.compute_eisenstein_params( self.level(), self.weight()) else: P = eis_series.compute_eisenstein_params(char, self.weight()) self.__parameters = P return P
def parameters(self): r""" Return a list of parameters for each Eisenstein series spanning self. That is, for each such series, return a triple of the form (`\psi`, `\chi`, level), where `\psi` and `\chi` are the characters defining the Eisenstein series, and level is the smallest level at which this series occurs. EXAMPLES:: sage: ModularForms(24,2).eisenstein_submodule().parameters() [(Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, 2), ... Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, 24)] sage: EisensteinForms(12,6).parameters()[-1] (Dirichlet character modulo 12 of conductor 1 mapping 7 |--> 1, 5 |--> 1, Dirichlet character modulo 12 of conductor 1 mapping 7 |--> 1, 5 |--> 1, 12) sage: pars = ModularForms(DirichletGroup(24).0,3).eisenstein_submodule().parameters() sage: [(x[0].values_on_gens(),x[1].values_on_gens(),x[2]) for x in pars] [((1, 1, 1), (-1, 1, 1), 1), ((1, 1, 1), (-1, 1, 1), 2), ((1, 1, 1), (-1, 1, 1), 3), ((1, 1, 1), (-1, 1, 1), 6), ((-1, 1, 1), (1, 1, 1), 1), ((-1, 1, 1), (1, 1, 1), 2), ((-1, 1, 1), (1, 1, 1), 3), ((-1, 1, 1), (1, 1, 1), 6)] sage: EisensteinForms(DirichletGroup(24).0,1).parameters() [(Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 4 mapping 7 |--> -1, 13 |--> 1, 17 |--> 1, 1), (Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 4 mapping 7 |--> -1, 13 |--> 1, 17 |--> 1, 2), (Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 4 mapping 7 |--> -1, 13 |--> 1, 17 |--> 1, 3), (Dirichlet character modulo 24 of conductor 1 mapping 7 |--> 1, 13 |--> 1, 17 |--> 1, Dirichlet character modulo 24 of conductor 4 mapping 7 |--> -1, 13 |--> 1, 17 |--> 1, 6)] """ try: return self.__parameters except AttributeError: char = self._parameters_character() if char is None: P = eis_series.compute_eisenstein_params(self.level(), self.weight()) else: P = eis_series.compute_eisenstein_params(char, self.weight()) self.__parameters = P return P