コード例 #1
0
  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)))
コード例 #2
0
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()
コード例 #3
0
 def sdag(self, idx: int):
     self.apply1(ops.Sgate().adjoint(), idx, 'sdag')
コード例 #4
0
 def s(self, idx: int):
     self.apply1(ops.Sgate(), idx, 's')
コード例 #5
0
    def test_s_gate(self):
        """S^2 == Z."""

        x = ops.Sgate() @ ops.Sgate()
        self.assertTrue(x.is_close(ops.PauliZ()))