12 namespace standard_eigen {
39 template <
typename MATRIX,
typename Float>
59 throw std::runtime_error(
"this precond. is not impl.");
63 throw std::runtime_error(
"this precond. is not impl.");
73 [[nodiscard]] std::string
name()
const {
74 return "monolish::standard_eigen::LOBPCG";
84 [[nodiscard]] std::string
solver_name()
const {
return "LOBPCG"; }
108 template <
typename MATRIX,
typename Float>
117 throw std::runtime_error(
"this precond. is not impl.");
121 throw std::runtime_error(
"this precond. is not impl.");
131 [[nodiscard]] std::string
name()
const {
132 return "monolish::standard_eigen::DC";
Devide and Conquer solver.
int LAPACK_DC(MATRIX &A, vector< Float > &lambda)
std::string name() const
get solver name "monolish::standard_eigen::DC"
void apply_precond(const vector< Float > &r, vector< Float > &z)
int solve(MATRIX &A, vector< Float > &lambda)
void create_precond(MATRIX &A)
void create_precond(MATRIX &A)
std::string solver_name() const
get solver name "LOBPCG"
int solve(MATRIX &A, vector< Float > &lambda, matrix::Dense< Float > &x)
calculate eigenvalues and eigenvectors or A by LOBPCG method(lib=0: monolish)
int monolish_LOBPCG(MATRIX &A, vector< Float > &lambda, matrix::Dense< Float > &x)
std::string name() const
get solver name "monolish::standard_eigen::LOBPCG"
void apply_precond(const vector< Float > &r, vector< Float > &z)
std::string solver_name() const
get solver name "DC"