def test_mix_so2(self): g = SO2(6) rr = directsum(list(g.representations.values())) N = 3 size = rr.size * N bcob = ortho_group.rvs(dim=size//5) bsize = bcob.shape[0] p = np.eye(size, size) for i in range(size//bsize): p[i*bsize:(i+1)*bsize, i*bsize:(i+1)*bsize] = bcob p = p[:, np.random.permutation(size)] repr = directsum([rr]*N, change_of_basis=p) self.check_disentangle(repr)
def test_restrict_so2_cyclic_odd(self): dg = SO2(10) repr = directsum(list(dg.irreps.values())) sg_id = 7 self.check_restriction(dg, sg_id, repr)
def test_restrict_irreps_so2_cyclic_even(self): dg = SO2(10) sg_id = 4 for name, irrep in dg.irreps.items(): self.check_restriction(dg, sg_id, irrep)
def test_restrict_so2_cyclic_odd(self): dg = SO2(10) repr = directsum(list(dg.irreps.values())) sg_id = 7 self.check_disentangle(dg.restrict_representation(sg_id, repr))
def test_restrict_irreps_so2_cyclic_even(self): dg = SO2(10) sg_id = 4 for name, irrep in dg.irreps.items(): self.check_disentangle(dg.restrict_representation(sg_id, irrep))
def test_so2(self): g = SO2(4) self.check_group(g)
def test_mix_so2(self): g = SO2(6) rr = directsum(list(g.representations.values())) self.check_representation(rr) self.check_character(rr)