def suborth_imp_to_env(self, impbas_coeff): c_a = numpy.hstack((numpy.dot(self.orth_coeff, self.env_orb[0]), \ impbas_coeff[0])) c_b = numpy.hstack((numpy.dot(self.orth_coeff, self.env_orb[1]), \ impbas_coeff[1])) s = self.entire_scf.get_ovlp(self.mol) t_a = lo.schmidt_orth_coeff(reduce(numpy.dot, (c_a.T.conj(), s, c_a))) t_b = lo.schmidt_orth_coeff(reduce(numpy.dot, (c_b.T.conj(), s, c_b))) impbas_coeff = (numpy.dot(c_a, t_a)[:,self.env_orb[0].shape[1]:], \ numpy.dot(c_b, t_b)[:,self.env_orb[1].shape[1]:]) return impbas_coeff
def suborth_imp_to_env(self, impbas_coeff): c = numpy.hstack((numpy.dot(self.orth_coeff, self.env_orb), \ impbas_coeff)) s = self.entire_scf.get_ovlp(self.mol) t = lo.schmidt_orth_coeff(reduce(numpy.dot, (c.T.conj(), s, c))) off = self.env_orb.shape[1] impbas_coeff = numpy.dot(c, t)[:,off:] return impbas_coeff