Esempio n. 1
0
 def _stinespring_to_other_single(self, rep, qubits_test_cases,
                                  repetitions):
     """Test single Stinespring to Other evolution."""
     for nq in qubits_test_cases:
         dim = 2**nq
         for _ in range(repetitions):
             rho = self.rand_rho(dim)
             mat = self.rand_matrix(dim**2, dim)
             chan1 = Stinespring(mat)
             rho1 = chan1._evolve(rho)
             chan2 = rep(chan1)
             rho2 = chan2._evolve(rho)
             self.assertAllClose(rho1, rho2)
Esempio n. 2
0
 def test_kraus_to_stinespring(self):
     """Test Kraus to Stinespring transformation."""
     # Test unitary channels
     for mat in self.unitary_mat:
         chan1 = Stinespring(mat)
         chan2 = Stinespring(Kraus(mat))
         self.assertTrue(
             matrix_equal(chan2.data[0], chan1.data[0], ignore_phase=True))
     # Test depolarizing channels
     rho = np.diag([1, 0])
     for p in [0.25, 0.5, 0.75, 1]:
         targ = Stinespring(self.depol_stine(p))._evolve(rho)
         chan = Stinespring(Kraus(self.depol_kraus(p)))
         self.assertAllClose(chan._evolve(rho), targ)
Esempio n. 3
0
 def test_ptm_to_stinespring(self):
     """Test PTM to Stinespring transformation."""
     # Test unitary channels
     for mat, ptm in zip(self.unitary_mat, self.unitary_ptm):
         chan1 = Kraus(mat)
         chan2 = Kraus(PTM(ptm))
         self.assertTrue(
             matrix_equal(chan2.data[0], chan1.data[0], ignore_phase=True))
     # Test depolarizing channels
     rho = np.diag([1, 0])
     for p in [0.25, 0.5, 0.75, 1]:
         targ = Stinespring(self.depol_stine(p))._evolve(rho)
         chan = Stinespring(PTM(self.depol_ptm(p)))
         self.assertAllClose(chan._evolve(rho), targ)
Esempio n. 4
0
 def test_superop_to_stinespring(self):
     """Test SuperOp to Stinespring transformation."""
     # Test unitary channels
     for mat, sop in zip(self.unitary_mat, self.unitary_sop):
         chan1 = Stinespring(mat)
         chan2 = Stinespring(SuperOp(sop))
         self.assertTrue(
             matrix_equal(chan2.data[0], chan1.data[0], ignore_phase=True))
     # Test depolarizing channels
     rho = np.diag([1, 0])
     for p in [0.25, 0.5, 0.75, 1]:
         targ = Stinespring(self.depol_stine(p))._evolve(rho)
         chan = Stinespring(SuperOp(self.depol_sop(p)))
         self.assertAllClose(chan._evolve(rho), targ)