Exemplo n.º 1
0
 def _is_cp_helper(self, choi, atol, rtol):
     """Test if a channel is completely-positive (CP)"""
     if atol is None:
         atol = self.atol
     if rtol is None:
         rtol = self.rtol
     return is_positive_semidefinite_matrix(choi, rtol=rtol, atol=atol)
Exemplo n.º 2
0
 def _is_cp(self, choi=None):
     """Test if a channel is completely-positive (CP)"""
     if choi is None:
         choi = _to_choi(self.rep, self._data, *self.dim)
     return is_positive_semidefinite_matrix(choi,
                                            rtol=self._rtol,
                                            atol=self._atol)
Exemplo n.º 3
0
 def is_valid(self, atol=None, rtol=None):
     """Return True if trace 1 and positive semidefinite."""
     if atol is None:
         atol = self.atol
     if rtol is None:
         rtol = self.rtol
     # Check trace == 1
     if not np.allclose(self.trace(), 1, rtol=rtol, atol=atol):
         return False
     # Check Hermitian
     if not is_hermitian_matrix(self.data, rtol=rtol, atol=atol):
         return False
     # Check positive semidefinite
     return is_positive_semidefinite_matrix(self.data, rtol=rtol, atol=atol)
Exemplo n.º 4
0
 def _is_cp(self):
     """Test if Choi-matrix is completely-positive (CP)"""
     return is_positive_semidefinite_matrix(
         self._data, rtol=self.rtol, atol=self.atol)