def _second_gen_unramified(self): r""" Calculate the action of the matrix [0, -1; 1, 0] on the type space, in the unramified (even level) case. EXAMPLE:: sage: from sage.modular.local_comp.type_space import example_type_space sage: T = example_type_space(2) sage: T._second_gen_unramified() [ 0 1 -2 1] [ 0 0 -1 0] [ 0 -1 0 0] [ 1 -2 1 0] sage: T._second_gen_unramified()**4 == 1 True """ f = self.prime()**self.u() g2 = lift_gen_to_gamma1(f, self.tame_level()) g3 = [f * g2[0], g2[1], f**2 * g2[2], f * g2[3]] A = self.t_space.ambient() mm = A._action_on_modular_symbols(g3).restrict( self.t_space.free_module()).transpose() m = mm / ZZ(f**(self.form().weight() - 2)) return m
def _second_gen_unramified(self): r""" Calculate the action of the matrix [0, -1; 1, 0] on the type space, in the unramified (even level) case. EXAMPLE:: sage: from sage.modular.local_comp.type_space import example_type_space sage: T = example_type_space(2) sage: T._second_gen_unramified() [ 0 1 -2 1] [ 0 0 -1 0] [ 0 -1 0 0] [ 1 -2 1 0] sage: T._second_gen_unramified()**4 == 1 True """ f = self.prime() ** self.u() g2 = lift_gen_to_gamma1(f, self.tame_level()) g3 = [f * g2[0], g2[1], f**2 * g2[2], f*g2[3]] A = self.t_space.ambient() mm = A._action_on_modular_symbols(g3).restrict(self.t_space.free_module()).transpose() m = mm / ZZ(f**(self.form().weight()-2)) return m