def test_rk(self): rk0 = ops.Rk(0) self.assertTrue(rk0.is_close(ops.Identity())) rk1 = ops.Rk(1) self.assertTrue(rk1.is_close(ops.PauliZ())) rk2 = ops.Rk(2) self.assertTrue(rk2.is_close(ops.Sgate())) rk3 = ops.Rk(3) self.assertTrue(rk3.is_close(ops.Tgate())) for idx in range(8): psi = state.zeros(2) psi = (ops.Rk(idx)**2 @ ops.Rk(-idx)**2)(psi) self.assertTrue(psi.is_close(state.zeros(2)))
def simple_kick(): psi = state.bitstring(0, 0, 1) psi = ops.Hadamard(2)(psi) psi = ops.ControlledU(0, 2, ops.Sgate())(psi) psi = ops.ControlledU(1, 2, ops.Tgate())(psi, 1) psi.dump()
def sdag(self, idx: int): self.apply1(ops.Sgate().adjoint(), idx, 'sdag')
def s(self, idx: int): self.apply1(ops.Sgate(), idx, 's')
def test_s_gate(self): """S^2 == Z.""" x = ops.Sgate() @ ops.Sgate() self.assertTrue(x.is_close(ops.PauliZ()))