def _init(self, T): self.T = T from reduceGL import reduce_GL assert T[0,1] == T[1,0].conjugate() a, b, c = T[0,0], T[0,1], T[1,1] b1, b2 = self.space.as_tuple_b(b) (a_,b1_,b2_,c_), (trans, det, nu) = reduce_GL((a,b1,b2,c), D=self.space.D) b_ = self.space.from_tuple_b(b1_, b2_) self.matrix = matrix(self.space.field, 2, [a_, b_, b_.conjugate(), c_]) self.matrix.set_immutable() self.charTrans = trans self.charDet = det self.charNu = nu
def reduce_matrix_jacobi1(key, value): # In standard base of \cO^#. a, (b1, b2) = key m, char = reduce_GL((a, b1, b2, 1), D) # Like reduce_character_evalutation::value() in reduceGL.hpp. h = 6 # because D == -3 k = -HermWeight detchar = char[1] * k if detchar % h == 0: detvalue = 1 elif detchar % h == h/2: detvalue = -1 else: assert False, "detchar %i" % detchar m = M2T_Odual(m, D) return m, value * detvalue