34 public Step<EigenproblemEnvironment<double>> {
45 return "Calculate the matrix-vector products for all the (new) guess vectors and add them to the environment.";
56 const auto& V = environment.
V;
61 auto& VA = environment.
VA;
72 const auto vectors_in_V = V.cols();
73 const auto vectors_in_VA = VA.cols();
74 const auto difference = vectors_in_V - vectors_in_VA;
76 if (difference != 0) {
77 VA.conservativeResize(Eigen::NoChange, VA.cols() + difference);
80 size_t start_index = 0;
81 if ((difference > 0) && (vectors_in_VA > 0)) {
82 start_index = vectors_in_VA - 1;
85 for (
size_t column_index = start_index; column_index < vectors_in_V; column_index++) {
86 VA.col(column_index) = matvec(V.col(column_index));
Definition: EigenproblemEnvironment.hpp:35
MatrixX< Scalar > V
Definition: EigenproblemEnvironment.hpp:73
VectorFunction< Scalar > matrix_vector_product_function
Definition: EigenproblemEnvironment.hpp:43
MatrixX< Scalar > VA
Definition: EigenproblemEnvironment.hpp:76
Definition: Matrix.hpp:47
Definition: MatrixVectorProductCalculation.hpp:34
void execute(EigenproblemEnvironment< double > &environment) override
Definition: MatrixVectorProductCalculation.hpp:54
std::string description() const override
Definition: MatrixVectorProductCalculation.hpp:44
Definition: BaseOneElectronIntegralBuffer.hpp:25