def __newgammaD(self, theta, l):
""" Apply Eqns. 22-24 in Vidal 2003 to update gamma^D
(gamma of the next qbit).
"""
rhoDK = self.__rhoDK(theta, self.coefs[l-1].lam)
#diagonalize
idx = self.chi * self.hdim
rhoDKflat = rhoDK.reshape([idx, idx])
evals, evecs = la.eigh(rhoDKflat) #note rho is a density matrix and thus
#hermitian
evals = evals[:self.chi]
evecs = evecs[:,:self.chi]
return evecs
评论列表
文章目录