monolish  0.14.0
MONOlithic LIner equation Solvers for Highly-parallel architecture
Public Member Functions | Private Member Functions | Private Attributes | List of all members
monolish::equation::Cholesky< MATRIX, Float > Class Template Reference

Cholesky solver class. It can use set_tol(), get_tol(), set_reorder(), get_singularity(). More...

#include <monolish_equation.hpp>

Inheritance diagram for monolish::equation::Cholesky< MATRIX, Float >:
Inheritance graph
Collaboration diagram for monolish::equation::Cholesky< MATRIX, Float >:
Collaboration graph

Public Member Functions

void apply_precond (const vector< Float > &r, vector< Float > &z)
 
void create_precond (matrix::CRS< Float > &A)
 
int get_sigularity ()
 -1 if A is symmetric postive definite. More...
 
std::string name () const
 get solver name "monolish::equation::Cholesky" More...
 
void set_reorder (int r)
 0: no ordering 1: symrcm, 2: symamd, 3: csrmetisnd is used to reduce zero fill-in. default reorder algorithm is csrmetisnd. More...
 
int solve (MATRIX &A, vector< Float > &x, vector< Float > &b)
 solve Ax=b More...
 
int solve (MATRIX &A, vector< Float > &xb)
 
int solve (matrix::Dense< double > &A, vector< double > &x, vector< double > &b)
 
int solve (matrix::Dense< double > &A, vector< double > &XB)
 
int solve (matrix::Dense< float > &A, vector< float > &x, vector< float > &b)
 
int solve (matrix::Dense< float > &A, vector< float > &XB)
 
- Public Member Functions inherited from monolish::solver::solver< MATRIX, Float >
initvec_scheme get_initvec_scheme () const
 get handling scheme of initial vector handling More...
 
int get_lib () const
 get library option More...
 
size_t get_maxiter () const
 get maxiter More...
 
size_t get_miniter () const
 get miniter More...
 
bool get_print_rhistory () const
 get print rhistory status More...
 
size_t get_residual_method () const
 get residual method(default=0) More...
 
double get_tol () const
 get tolerance More...
 
template<class PRECOND >
void set_apply_precond (PRECOND &p)
 set precondition apply fucntion More...
 
template<class PRECOND >
void set_create_precond (PRECOND &p)
 set precondition create fucntion More...
 
void set_initvec_scheme (initvec_scheme scheme)
 set how to handle initial vector More...
 
void set_lib (int l)
 set library option (to change library, monolish, cusolver, etc.) More...
 
void set_maxiter (size_t max)
 set max iter. (default = SIZE_MAX) More...
 
void set_miniter (size_t min)
 set min iter. (default = 0) More...
 
void set_print_rhistory (bool flag)
 print rhistory to standart out true/false. (default = false) More...
 
void set_residual_method (size_t r)
 set residual method (default=0) More...
 
void set_rhistory_filename (std::string file)
 rhistory filename More...
 
void set_tol (double t)
 set tolerance (default:1.0e-8) More...
 
 solver ()
 create solver class More...
 
 ~solver ()
 delete solver class More...
 

Private Member Functions

int cusolver_Cholesky (MATRIX &A, vector< double > &x, vector< double > &b)
 
int cusolver_Cholesky (MATRIX &A, vector< float > &x, vector< float > &b)
 
int cusolver_Cholesky (matrix::CRS< double > &A, vector< double > &x, vector< double > &b)
 
int cusolver_Cholesky (matrix::CRS< float > &A, vector< float > &x, vector< float > &b)
 

Private Attributes

int lib = 1
 
int reorder = 3
 
int singularity
 

Additional Inherited Members

- Protected Member Functions inherited from monolish::solver::solver< MATRIX, Float >
Float get_residual (vector< Float > &x)
 
- Protected Attributes inherited from monolish::solver::solver< MATRIX, Float >
initvec_scheme initvecscheme = initvec_scheme::RANDOM
 
int lib = 0
 
size_t maxiter = SIZE_MAX
 
size_t miniter = 0
 
precondition< MATRIX, Float > precond
 
bool print_rhistory = false
 
size_t resid_method = 0
 
std::string rhistory_file
 
std::ostream * rhistory_stream
 
double tol = 1.0e-8
 

Detailed Description

template<typename MATRIX, typename Float>
class monolish::equation::Cholesky< MATRIX, Float >

Cholesky solver class. It can use set_tol(), get_tol(), set_reorder(), get_singularity().

Note
attribute:
  • solver : true
  • preconditioner : false
input / archtecture
  • Dense / Intel : true
  • Dense / NVIDIA : false
  • Dense / OSS : true
  • Sparse / Intel : false
  • Sparse / NVIDIA : true
  • Sparse / OSS : false

Definition at line 307 of file monolish_equation.hpp.

Member Function Documentation

◆ apply_precond()

template<typename MATRIX , typename Float >
void monolish::equation::Cholesky< MATRIX, Float >::apply_precond ( const vector< Float > &  r,
vector< Float > &  z 
)
inline

Definition at line 337 of file monolish_equation.hpp.

◆ create_precond()

template<typename MATRIX , typename Float >
void monolish::equation::Cholesky< MATRIX, Float >::create_precond ( matrix::CRS< Float > &  A)
inline

Definition at line 334 of file monolish_equation.hpp.

◆ cusolver_Cholesky() [1/4]

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::cusolver_Cholesky ( MATRIX &  A,
vector< double > &  x,
vector< double > &  b 
)
private

◆ cusolver_Cholesky() [2/4]

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::cusolver_Cholesky ( MATRIX &  A,
vector< float > &  x,
vector< float > &  b 
)
private

◆ cusolver_Cholesky() [3/4]

int monolish::equation::Cholesky< matrix::CRS< double >, double >::cusolver_Cholesky ( matrix::CRS< double > &  A,
vector< double > &  x,
vector< double > &  b 
)
private

Definition at line 12 of file cholesky_cusolver_gpu.cpp.

Here is the call graph for this function:

◆ cusolver_Cholesky() [4/4]

int monolish::equation::Cholesky< matrix::CRS< float >, float >::cusolver_Cholesky ( matrix::CRS< float > &  A,
vector< float > &  x,
vector< float > &  b 
)
private

Definition at line 57 of file cholesky_cusolver_gpu.cpp.

Here is the call graph for this function:

◆ get_sigularity()

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::get_sigularity ( )
inline

-1 if A is symmetric postive definite.

Definition at line 326 of file monolish_equation.hpp.

◆ name()

template<typename MATRIX , typename Float >
std::string monolish::equation::Cholesky< MATRIX, Float >::name ( ) const
inline

get solver name "monolish::equation::Cholesky"

Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 348 of file monolish_equation.hpp.

◆ set_reorder()

template<typename MATRIX , typename Float >
void monolish::equation::Cholesky< MATRIX, Float >::set_reorder ( int  r)
inline

0: no ordering 1: symrcm, 2: symamd, 3: csrmetisnd is used to reduce zero fill-in. default reorder algorithm is csrmetisnd.

Definition at line 321 of file monolish_equation.hpp.

◆ solve() [1/6]

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::solve ( MATRIX &  A,
vector< Float > &  x,
vector< Float > &  b 
)

solve Ax=b

◆ solve() [2/6]

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::solve ( MATRIX &  A,
vector< Float > &  xb 
)

◆ solve() [3/6]

int monolish::equation::Cholesky< matrix::Dense< double >, double >::solve ( matrix::Dense< double > &  A,
vector< double > &  x,
vector< double > &  b 
)

Definition at line 109 of file cholesky.cpp.

Here is the call graph for this function:

◆ solve() [4/6]

int monolish::equation::Cholesky< matrix::Dense< double >, double >::solve ( matrix::Dense< double > &  A,
vector< double > &  XB 
)

Definition at line 40 of file cholesky.cpp.

Here is the call graph for this function:

◆ solve() [5/6]

int monolish::equation::Cholesky< matrix::Dense< float >, float >::solve ( matrix::Dense< float > &  A,
vector< float > &  x,
vector< float > &  b 
)

Definition at line 143 of file cholesky.cpp.

Here is the call graph for this function:

◆ solve() [6/6]

int monolish::equation::Cholesky< matrix::Dense< float >, float >::solve ( matrix::Dense< float > &  A,
vector< float > &  XB 
)

Definition at line 76 of file cholesky.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ lib

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::lib = 1
private

Definition at line 309 of file monolish_equation.hpp.

◆ reorder

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::reorder = 3
private

Definition at line 313 of file monolish_equation.hpp.

◆ singularity

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::singularity
private

Definition at line 312 of file monolish_equation.hpp.


The documentation for this class was generated from the following file: