def _dim_new_eisenstein(self): """ Compute the dimension of the Eisenstein submodule. EXAMPLES:: sage: m = ModularForms(Gamma0(11), 4) sage: m._dim_new_eisenstein() 0 sage: m = ModularForms(Gamma0(11), 2) sage: m._dim_new_eisenstein() 1 """ try: return self.__the_dim_new_eisenstein except AttributeError: if arithgroup.is_Gamma0(self.group()) and self.weight() == 2: if rings.is_prime(self.level()): d = 1 else: d = 0 else: E = self.eisenstein_series() d = len([g for g in E if g.new_level() == self.level()]) self.__the_dim_new_eisenstein = d return self.__the_dim_new_eisenstein
def _dim_new_eisenstein(self): """ Return the dimension of the new Eisenstein subspace, computed by enumerating all Eisenstein series of the appropriate level. EXAMPLES:: sage: m = ModularForms(DirichletGroup(36).0,5); m Modular Forms space of dimension 28, character [-1, 1] and weight 5 over Rational Field sage: m._dim_new_eisenstein() 2 sage: m._dim_eisenstein() 8 """ try: return self.__the_dim_new_eisenstein except AttributeError: if self.character().is_trivial() and self.weight() == 2: if rings.is_prime(self.level()): d = 1 else: d = 0 else: E = self.eisenstein_series() d = len([g for g in E if g.new_level() == self.level()]) self.__the_dim_new_eisenstein = d return self.__the_dim_new_eisenstein