59 Eigen::VectorXd diagonal_overlap = Eigen::VectorXd::Zero(eo.
values.size());
60 for (
Index i = 0; i < diagonal_overlap.size(); ++i) {
64 diagonal_overlap(i) = 1.0 / std::sqrt(eo.
values(i));
67 Eigen::MatrixXd Ssqrt =
68 eo.
vectors * diagonal_overlap.asDiagonal() * eo.
vectors.transpose();
70 Eigen::MatrixXd ortho = Ssqrt *
aomatrix_ * Ssqrt;
72 Eigen::VectorXd diagonal = Eigen::VectorXd::Zero(es.
values.size());
74 for (
Index i = 0; i < diagonal.size(); ++i) {
78 diagonal(i) = 1.0 / std::sqrt(es.
values(i));
84 Eigen::MatrixXd result = (Vm1 * Ssqrt).transpose();