1 #ifndef GENERALIZEDEIGENSOLVER_H
2 #define GENERALIZEDEIGENSOLVER_H
7 #include <boost/property_tree/ptree_fwd.hpp>
52 static void SortCols(std::vector<std::pair<int,int>>
const& swapInds,
53 Eigen::Ref<Eigen::MatrixXd> matrix);
55 static void SortVec(std::vector<std::pair<int,int>>
const& swapInds,
56 Eigen::Ref<Eigen::VectorXd> matrix);
58 static void SortVec(std::vector<std::pair<int,int>>
const& swapInds,
59 std::vector<bool> & vec);
63 static std::vector<std::pair<int,int>>
GetSortSwaps(Eigen::Ref<const Eigen::VectorXd>
const& residNorms,
64 std::vector<bool>
const& isActive);
66 static std::vector<std::pair<int,int>>
GetSortSwaps(Eigen::Ref<const Eigen::VectorXd>
const& residNorms);
71 std::shared_ptr<LinearOperator>
A,
B,
M;
Abstract base class for operator based generalized eigenvalue solvers.
static std::vector< std::pair< int, int > > GetSortSwaps(Eigen::Ref< const Eigen::VectorXd > const &residNorms, std::vector< bool > const &isActive)
std::shared_ptr< LinearOperator > A
static void SortVec(std::vector< std::pair< int, int >> const &swapInds, Eigen::Ref< Eigen::VectorXd > matrix)
virtual ~GeneralizedEigenSolver()=default
std::shared_ptr< LinearOperator > M
static void SortCols(std::vector< std::pair< int, int >> const &swapInds, Eigen::Ref< Eigen::MatrixXd > matrix)
Eigen::VectorXd const & eigenvalues() const
Eigen::MatrixXd const & eigenvectors() const
std::shared_ptr< LinearOperator > B