def _update_Prxy_diag(self):
for r in range(self.nsites):<EOL><INDENT>pr_half = self.prx[r]**<NUM_LIT:0.5><EOL>pr_neghalf = self.prx[r]**-<NUM_LIT:0.5><EOL>symm_pr = (pr_half * (self.Prxy[r] * pr_neghalf).transpose()).transpose()<EOL>(evals, evecs) = scipy.linalg.eigh(symm_pr)<EOL>self.D[r] = evals<EOL>self.Ainv[r] = evecs.transpose() * pr_half<EOL>self.A[r] = (pr_neghalf * evecs.transpose()).transpose()<EOL><DEDENT>
Update `D`, `A`, `Ainv` from `Prxy`, `prx`.