SearchSpace.h
Go to the documentation of this file.
1 // Copyright (C) 2020 Netherlands eScience Center <n.renauld@esciencecenter.nl>
2 //
3 // This Source Code Form is subject to the terms of the Mozilla
4 // Public License v. 2.0. If a copy of the MPL was not distributed
5 // with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
6 
7 #ifndef SPECTRA_SEARCH_SPACE_H
8 #define SPECTRA_SEARCH_SPACE_H
9 
10 #include <Eigen/Core>
11 
12 #include "RitzPairs.h"
13 #include "Orthogonalization.h"
14 
15 namespace Spectra {
16 
19 template <typename Scalar>
20 class SearchSpace
21 {
22 private:
25 
28 
32  void append_new_vectors_to_basis(const Matrix& new_vect)
33  {
34  Index num_update = new_vect.cols();
36  m_basis_vectors.rightCols(num_update).noalias() = new_vect;
37  }
38 
39 public:
40  SearchSpace() = default;
41 
43  Index size() const { return m_basis_vectors.cols(); }
44 
46  {
47  m_basis_vectors = initial_vectors;
48  m_op_basis_product = Matrix(initial_vectors.rows(), 0);
49  }
50 
57  template <typename OpType>
59  {
62  m_op_basis_product.rightCols(nvec).noalias() = op * m_basis_vectors.rightCols(nvec);
63  }
64 
70  void restart(const RitzPairs<Scalar>& ritz_pairs, Index size)
71  {
72  m_basis_vectors = ritz_pairs.ritz_vectors().leftCols(size);
74  }
75 
80  void extend_basis(const Matrix& new_vect)
81  {
82  Index left_cols_to_skip = size();
85  }
86 
88  const Matrix& basis_vectors() const { return m_basis_vectors; }
89 
92 };
93 
94 } // namespace Spectra
95 
96 #endif // SPECTRA_SEARCH_SPACE_H
Spectra::SearchSpace::SearchSpace
SearchSpace()=default
Spectra::SearchSpace::operator_basis_product
const Matrix & operator_basis_product() const
Returns the operator applied to basis vector.
Definition: SearchSpace.h:91
Spectra::twice_is_enough_orthogonalisation
void twice_is_enough_orthogonalisation(Matrix &in_output, Eigen::Index left_cols_to_skip=0)
Definition: Orthogonalization.h:133
Spectra::SearchSpace::m_op_basis_product
Matrix m_op_basis_product
Definition: SearchSpace.h:27
Spectra::SearchSpace::basis_vectors
const Matrix & basis_vectors() const
Returns the basis vectors.
Definition: SearchSpace.h:88
Spectra::SearchSpace::restart
void restart(const RitzPairs< Scalar > &ritz_pairs, Index size)
Definition: SearchSpace.h:70
Spectra::SearchSpace::size
Index size() const
Returns the current size of the search space.
Definition: SearchSpace.h:43
Spectra::SearchSpace::update_operator_basis_product
void update_operator_basis_product(OpType &op)
Definition: SearchSpace.h:58
Spectra::RitzPairs::ritz_vectors
const Matrix & ritz_vectors() const
Definition: RitzPairs.h:89
Spectra::SearchSpace::m_basis_vectors
Matrix m_basis_vectors
Definition: SearchSpace.h:26
Spectra::RitzPairs::small_ritz_vectors
const Matrix & small_ritz_vectors() const
Definition: RitzPairs.h:91
Spectra::RitzPairs
Definition: RitzPairs.h:23
Spectra::SearchSpace::extend_basis
void extend_basis(const Matrix &new_vect)
Definition: SearchSpace.h:80
Spectra::SearchSpace::append_new_vectors_to_basis
void append_new_vectors_to_basis(const Matrix &new_vect)
Definition: SearchSpace.h:32
Eigen::PlainObjectBase::conservativeResize
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void conservativeResize(Index rows, Index cols)
Definition: PlainObjectBase.h:382
Spectra::SearchSpace::initialize_search_space
void initialize_search_space(const Eigen::Ref< const Matrix > &initial_vectors)
Definition: SearchSpace.h:45
Spectra::SearchSpace::Matrix
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
Definition: SearchSpace.h:24
RitzPairs.h
Eigen::Ref< const Matrix >
Eigen::PlainObjectBase::cols
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: PlainObjectBase.h:145
Spectra::SearchSpace::Index
Eigen::Index Index
Definition: SearchSpace.h:23
Spectra
Definition: LOBPCGSolver.h:19
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic >
Eigen::NoChange
@ NoChange
Definition: Constants.h:360
Orthogonalization.h
Eigen::Index
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74


gtsam
Author(s):
autogenerated on Thu Apr 10 2025 03:03:08