40 template <
typename MATRIX,
typename Float>
54 [[nodiscard]] std::string
name()
const {
return "monolish::equation::none"; }
63 [[nodiscard]] std::string
solver_name()
const {
return "none"; }
87 template <
typename MATRIX,
typename Float>
104 throw std::runtime_error(
"this precond. is not impl.");
108 throw std::runtime_error(
"this precond. is not impl.");
118 [[nodiscard]] std::string
name()
const {
return "monolish::equation::CG"; }
152 template <
typename MATRIX,
typename Float>
170 throw std::runtime_error(
"this precond. is not impl.");
174 throw std::runtime_error(
"this precond. is not impl.");
184 [[nodiscard]] std::string
name()
const {
185 return "monolish::equation::BiCGSTAB";
195 [[nodiscard]] std::string
solver_name()
const {
return "BiCGSTAB"; }
219 template <
typename MATRIX,
typename Float>
245 [[nodiscard]] std::string
name()
const {
246 return "monolish::equation::Jacobi";
256 [[nodiscard]] std::string
solver_name()
const {
return "Jacobi"; }
285 template <
typename MATRIX,
typename Float>
315 [[nodiscard]] std::string
name()
const {
return "monolish::equation::SOR"; }
348 template <
typename MATRIX,
typename Float>
377 std::string
name()
const {
return "monolish::equation::IC"; }
410 template <
typename MATRIX,
typename Float>
439 std::string
name()
const {
return "monolish::equation::ILU"; }
472 template <
typename MATRIX,
typename Float>
485 throw std::runtime_error(
"this precond. is not impl.");
488 throw std::runtime_error(
"this precond. is not impl.");
498 [[nodiscard]] std::string
name()
const {
return "monolish::equation::LU"; }
531 template <
typename MATRIX,
typename Float>
545 throw std::runtime_error(
"this precond. is not impl.");
548 throw std::runtime_error(
"this precond. is not impl.");
558 [[nodiscard]] std::string
name()
const {
return "monolish::equation::QR"; }
591 template <
typename MATRIX,
typename Float>
608 throw std::runtime_error(
"this precond. is not impl.");
611 throw std::runtime_error(
"this precond. is not impl.");
621 [[nodiscard]] std::string
name()
const {
622 return "monolish::equation::Cholesky";
632 [[nodiscard]] std::string
solver_name()
const {
return "Cholesky"; }
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by BiCGSTAB method (lib=0: monolish)
void create_precond(MATRIX &A)
std::string name() const
get solver name "monolish::equation::BiCGSTAB"
int monolish_BiCGSTAB(MATRIX &A, vector< Float > &x, vector< Float > &b)
std::string solver_name() const
get solver name "BiCGSTAB"
void apply_precond(const vector< Float > &r, vector< Float > &z)
int monolish_CG(MATRIX &A, vector< Float > &x, vector< Float > &b)
void create_precond(MATRIX &A)
void apply_precond(const vector< Float > &r, vector< Float > &z)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by BiCGSTAB method(lib=0: monolish)
std::string solver_name() const
get solver name "CG"
std::string name() const
get solver name "monolish::equation::CG"
int cusolver_Cholesky(MATRIX &A, vector< float > &x, vector< float > &b)
void create_precond(matrix::CRS< Float > &A)
int cusolver_Cholesky(MATRIX &A, vector< double > &x, vector< double > &b)
void apply_precond(const vector< Float > &r, vector< Float > &z)
std::string name() const
get solver name "monolish::equation::Cholesky"
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax=b
std::string solver_name() const
get solver name "Cholesky"
int solve(MATRIX &A, vector< Float > &xb)
Incomplete Cholesky solver class.
std::string solver_name() const
get solver name "IC"
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve with incomplete Cholesky factorization
void create_precond(MATRIX &A)
monolish::vector< Float > zbuf
int cusparse_IC(MATRIX &A, vector< Float > &x, vector< Float > &b)
monolish::vector< double > buf
std::string name() const
get solver name "monolish::equation::IC"
void apply_precond(const vector< Float > &r, vector< Float > &z)
Incomplete LU solver class.
void apply_precond(const vector< Float > &r, vector< Float > &z)
std::string solver_name() const
get solver name "ILU"
monolish::vector< double > buf
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve with incomplete LU factorization
std::string name() const
get solver name "monolish::equation::ILU"
int cusparse_ILU(MATRIX &A, vector< Float > &x, vector< Float > &b)
monolish::vector< Float > zbuf
void create_precond(MATRIX &A)
std::string name() const
get solver name "monolish::equation::Jacobi"
void apply_precond(const vector< Float > &r, vector< Float > &z)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by jacobi method(lib=0: monolish)
void create_precond(MATRIX &A)
std::string solver_name() const
get solver name "Jacobi"
int monolish_Jacobi(MATRIX &A, vector< Float > &x, vector< Float > &b)
std::string solver_name() const
get solver name "LU"
std::string name() const
get solver name "monolish::equation::LU"
int cusolver_LU(MATRIX &A, vector< double > &x, vector< double > &b)
void create_precond(MATRIX &A)
void apply_precond(const vector< Float > &r, vector< Float > &z)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
int solve(MATRIX &A, vector< Float > &xb)
int mumps_LU(MATRIX &A, vector< double > &x, vector< double > &b)
int cusolver_QR(MATRIX &A, vector< double > &x, vector< double > &b)
void create_precond(MATRIX &A)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax=b
void apply_precond(const vector< Float > &r, vector< Float > &z)
std::string name() const
get solver name "monolish::equation::QR"
std::string solver_name() const
get solver name "QR"
int cusolver_QR(MATRIX &A, vector< float > &x, vector< float > &b)
std::string solver_name() const
get solver name "SOR"
void apply_precond(const vector< Float > &r, vector< Float > &z)
void create_precond(MATRIX &A)
int monolish_SOR(MATRIX &A, vector< Float > &x, vector< Float > &b)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by SOR method(lib=0: monolish)
std::string name() const
get solver name "monolish::equation::SOR"
none solver class(nothing to do)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
std::string name() const
get solver name "monolish::equation::none"
std::string solver_name() const
get solver name "none"
void apply_precond(const vector< Float > &r, vector< Float > &z)
void create_precond(MATRIX &A)
Compressed Row Storage (CRS) format Matrix.