23#include <Eigen/Sparse>
34template <
typename _Matrix>
80 this->
matrix(this->index, this->index) += value;
90 this->
matrix(this->index, column) += value;
101 this->
matrix(row, this->index) += value;
127 if (this->index == this->end) {
143template <
typename _Scalar>
183 void addColumnwise(
const size_t column,
const Scalar value) { this->triplet_vector.emplace_back(this->index, column, value); }
193 void addRowwise(
const size_t row,
const Scalar value) { this->triplet_vector.emplace_back(row, this->index, value); }
202 this->matrix.setFromTriplets(this->triplet_vector.begin(), this->triplet_vector.end());
203 this->triplet_vector = {};
224 if (this->index == this->end) {
238 this->triplet_vector.reserve(n);
239 this->matrix.reserve(n);
245 const std::vector<Eigen::Triplet<Scalar>>&
triplets()
const {
return triplet_vector; }
254template <
typename _Scalar>
266 double sequential_double = 0;
267 double nonsequential_double = 0;
279 end {static_cast<size_t>(coefficient_vector.rows())},
280 coefficient_vector {coefficient_vector},
281 matvec {diagonal.cwiseProduct(coefficient_vector)} {}
284 end {static_cast<size_t>(coefficient_vector.rows())},
285 coefficient_vector {coefficient_vector},
299 void addColumnwise(
const size_t column,
const Scalar value) { sequential_double += value * coefficient_vector(column); }
307 void addRowwise(
const size_t row,
const Scalar value) { this->matvec(row) += value * this->nonsequential_double; }
318 this->matvec(this->index) += this->sequential_double;
319 this->sequential_double = 0;
330 if (this->index == this->end) {
334 this->nonsequential_double = this->coefficient_vector(this->index);
Definition: Matrix.hpp:47
_Scalar Scalar
Definition: Matrix.hpp:50
size_t end
Definition: MatrixRepresentationEvaluationContainer.hpp:152
const std::vector< Eigen::Triplet< Scalar > > & triplets() const
Definition: MatrixRepresentationEvaluationContainer.hpp:245
const Eigen::SparseMatrix< Scalar > & evaluation() const
Definition: MatrixRepresentationEvaluationContainer.hpp:211
bool isFinished()
Definition: MatrixRepresentationEvaluationContainer.hpp:223
void increment()
Definition: MatrixRepresentationEvaluationContainer.hpp:216
void addColumnwise(const size_t column, const Scalar value)
Definition: MatrixRepresentationEvaluationContainer.hpp:183
MatrixRepresentationEvaluationContainer(const size_t dimension)
Definition: MatrixRepresentationEvaluationContainer.hpp:166
void reserve(const size_t n)
Definition: MatrixRepresentationEvaluationContainer.hpp:237
void addToMatrix()
Definition: MatrixRepresentationEvaluationContainer.hpp:201
std::vector< Eigen::Triplet< Scalar > > triplet_vector
Definition: MatrixRepresentationEvaluationContainer.hpp:155
void addRowwise(const size_t row, const Scalar value)
Definition: MatrixRepresentationEvaluationContainer.hpp:193
_Scalar Scalar
Definition: MatrixRepresentationEvaluationContainer.hpp:147
Eigen::SparseMatrix< Scalar > matrix
Definition: MatrixRepresentationEvaluationContainer.hpp:154
MatrixRepresentationEvaluationContainer(const VectorX< Scalar > &coefficient_vector, const VectorX< Scalar > &diagonal)
Definition: MatrixRepresentationEvaluationContainer.hpp:278
VectorX< Scalar > matvec
Definition: MatrixRepresentationEvaluationContainer.hpp:264
void addColumnwise(const size_t column, const Scalar value)
Definition: MatrixRepresentationEvaluationContainer.hpp:299
const VectorX< Scalar > & coefficient_vector
Definition: MatrixRepresentationEvaluationContainer.hpp:265
size_t end
Definition: MatrixRepresentationEvaluationContainer.hpp:262
_Scalar Scalar
Definition: MatrixRepresentationEvaluationContainer.hpp:258
bool isFinished()
Definition: MatrixRepresentationEvaluationContainer.hpp:329
MatrixRepresentationEvaluationContainer(const VectorX< Scalar > &coefficient_vector)
Definition: MatrixRepresentationEvaluationContainer.hpp:283
const VectorX< Scalar > & evaluation() const
Definition: MatrixRepresentationEvaluationContainer.hpp:312
void increment()
Definition: MatrixRepresentationEvaluationContainer.hpp:317
void addRowwise(const size_t row, const Scalar value)
Definition: MatrixRepresentationEvaluationContainer.hpp:307
Definition: MatrixRepresentationEvaluationContainer.hpp:35
void addColumnwise(const size_t column, const Scalar value)
Definition: MatrixRepresentationEvaluationContainer.hpp:89
size_t end
Definition: MatrixRepresentationEvaluationContainer.hpp:49
_Matrix Matrix
Definition: MatrixRepresentationEvaluationContainer.hpp:38
void addDiagonally(const Scalar value)
Definition: MatrixRepresentationEvaluationContainer.hpp:79
typename Matrix::Scalar Scalar
Definition: MatrixRepresentationEvaluationContainer.hpp:41
bool isFinished()
Definition: MatrixRepresentationEvaluationContainer.hpp:125
MatrixRepresentationEvaluationContainer(const size_t dimension)
Definition: MatrixRepresentationEvaluationContainer.hpp:65
Matrix matrix
Definition: MatrixRepresentationEvaluationContainer.hpp:52
size_t index
Definition: MatrixRepresentationEvaluationContainer.hpp:46
const Matrix & evaluation() const
Definition: MatrixRepresentationEvaluationContainer.hpp:108
void addRowwise(const size_t row, const Scalar value)
Definition: MatrixRepresentationEvaluationContainer.hpp:100
void increment()
Definition: MatrixRepresentationEvaluationContainer.hpp:118
Definition: EvaluableLinearCombination.hpp:330
Definition: BaseOneElectronIntegralBuffer.hpp:25