def qisunitary(self,op):
mat = op[1]
(r,c) = mat.shape
if r != c:
return False
invmat = np.conjugate(np.transpose(mat))
pmat = np.asarray(mat * invmat)
for i in range(r):
for j in range(c):
if i != j:
if np.absolute(pmat[i][j]) > self.maxerr:
return False
else:
if np.absolute(pmat[i][j]-1.0) > self.maxerr:
return False
return True
评论列表
文章目录