|
SIRIUS 7.5.0
Electronic structure library and applications
|
Interface to linear algebra BLAS/LAPACK functions. More...
Classes | |
| class | BLACS_grid |
| BLACS grid wrapper. More... | |
| struct | constant |
| class | dmatrix |
| Distributed matrix. More... | |
| class | Eigensolver |
| Interface to different eigen-solvers. More... | |
| class | Eigensolver_cuda |
| class | Eigensolver_dlaf |
| class | Eigensolver_elpa |
| class | Eigensolver_lapack |
| class | Eigensolver_magma |
| class | Eigensolver_magma_gpu |
| class | Eigensolver_scalapack |
| class | linalg_base |
| Base class for linear algebra interface. More... | |
| class | wrap |
Enumerations | |
| enum class | ev_solver_t { lapack , scalapack , elpa , dlaf , magma , magma_gpu , cusolver } |
| Type of eigen-value solver. More... | |
| enum class | lib_t { none , blas , lapack , scalapack , gpublas , cublasxt , magma , spla } |
| Type of linear algebra backend library. More... | |
Functions | |
| template<typename M > | |
| void | setup_handler (elpa_t &handle__, int stage__, M const &m__, int na__, int nev__) |
| std::unique_ptr< Eigensolver > | Eigensolver_factory (std::string name__) |
| ev_solver_t | get_ev_solver_t (std::string name__) |
| Get type of an eigen solver by name (provided as a string). More... | |
| template<typename T > | |
| auto | inverse_sqrt (la::dmatrix< T > &A__, int N__) |
| Compute inverse square root of the matrix. More... | |
| template<typename T > | |
| void | check_hermitian (std::string const &name, sddk::matrix< T > const &mtrx, int n=-1) |
| template<typename T > | |
| real_type< T > | check_hermitian (dmatrix< T > &mtrx__, int n__) |
| template<typename T > | |
| double | check_identity (dmatrix< T > &mtrx__, int n__) |
| template<typename T > | |
| double | check_diagonal (dmatrix< T > &mtrx__, int n__, sddk::mdarray< double, 1 > const &diag__) |
| template<typename T > | |
| void | unitary_similarity_transform (int kind__, dmatrix< T > &A__, dmatrix< T > const &U__, int n__) |
| auto | get_lib_t (std::string name__) |
| std::string | to_string (lib_t la__) |
| ftn_int FORTRAN() | ilaenv (ftn_int *ispec, ftn_char name, ftn_char opts, ftn_int *n1, ftn_int *n2, ftn_int *n3, ftn_int *n4, ftn_len name_len, ftn_len opts_len) |
| ftn_double FORTRAN() | dlamch (ftn_char cmach, ftn_len cmach_len) |
| int | Csys2blacs_handle (MPI_Comm SysCtxt) |
| MPI_Comm | Cblacs2sys_handle (int BlacsCtxt) |
| void | Cblacs_gridinit (int *ConTxt, const char *order, int nprow, int npcol) |
| void | Cblacs_gridmap (int *ConTxt, int *usermap, int ldup, int nprow0, int npcol0) |
| void | Cblacs_gridinfo (int ConTxt, int *nprow, int *npcol, int *myrow, int *mycol) |
| void | Cfree_blacs_system_handle (int ISysCtxt) |
| void | Cblacs_barrier (int ConTxt, const char *scope) |
| void | Cblacs_gridexit (int ConTxt) |
| void FORTRAN() | psgemm (ftn_char transa, ftn_char transb, ftn_int *m, ftn_int *n, ftn_int *k, ftn_single const *aplha, ftn_single const *A, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_single const *B, ftn_int *ib, ftn_int *jb, ftn_int const *descb, ftn_single const *beta, ftn_single *C, ftn_int *ic, ftn_int *jc, ftn_int const *descc, ftn_len transa_len, ftn_len transb_len) |
| void FORTRAN() | pdgemm (ftn_char transa, ftn_char transb, ftn_int *m, ftn_int *n, ftn_int *k, ftn_double const *aplha, ftn_double const *A, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_double const *B, ftn_int *ib, ftn_int *jb, ftn_int const *descb, ftn_double const *beta, ftn_double *C, ftn_int *ic, ftn_int *jc, ftn_int const *descc, ftn_len transa_len, ftn_len transb_len) |
| void FORTRAN() | pcgemm (ftn_char transa, ftn_char transb, ftn_int *m, ftn_int *n, ftn_int *k, ftn_complex const *aplha, ftn_complex const *A, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_complex const *B, ftn_int *ib, ftn_int *jb, ftn_int const *descb, ftn_complex const *beta, ftn_complex *C, ftn_int *ic, ftn_int *jc, ftn_int const *descc, ftn_len transa_len, ftn_len transb_len) |
| void FORTRAN() | pzgemm (ftn_char transa, ftn_char transb, ftn_int *m, ftn_int *n, ftn_int *k, ftn_double_complex const *aplha, ftn_double_complex const *A, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_double_complex const *B, ftn_int *ib, ftn_int *jb, ftn_int const *descb, ftn_double_complex const *beta, ftn_double_complex *C, ftn_int *ic, ftn_int *jc, ftn_int const *descc, ftn_len transa_len, ftn_len transb_len) |
| void FORTRAN() | descinit (ftn_int const *desc, ftn_int *m, ftn_int *n, ftn_int *mb, ftn_int *nb, ftn_int *irsrc, ftn_int *icsrc, ftn_int *ictxt, ftn_int *lld, ftn_int *info) |
| void FORTRAN() | pctranc (ftn_int *m, ftn_int *n, ftn_complex *alpha, ftn_complex *a, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_complex *beta, ftn_complex *c, ftn_int *ic, ftn_int *jc, ftn_int const *descc) |
| void FORTRAN() | pztranc (ftn_int *m, ftn_int *n, ftn_double_complex *alpha, ftn_double_complex *a, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_double_complex *beta, ftn_double_complex *c, ftn_int *ic, ftn_int *jc, ftn_int const *descc) |
| void FORTRAN() | pztranu (ftn_int *m, ftn_int *n, ftn_double_complex *alpha, ftn_double_complex *a, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_double_complex *beta, ftn_double_complex *c, ftn_int *ic, ftn_int *jc, ftn_int const *descc) |
| void FORTRAN() | pstran (ftn_int *m, ftn_int *n, ftn_single *alpha, ftn_single *a, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_single *beta, ftn_single *c, ftn_int *ic, ftn_int *jc, ftn_int const *descc) |
| void FORTRAN() | pdtran (ftn_int *m, ftn_int *n, ftn_double *alpha, ftn_double *a, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_double *beta, ftn_double *c, ftn_int *ic, ftn_int *jc, ftn_int const *descc) |
| ftn_int FORTRAN() | numroc (ftn_int *n, ftn_int *nb, ftn_int *iproc, ftn_int *isrcproc, ftn_int *nprocs) |
| ftn_int FORTRAN() | indxl2g (ftn_int *indxloc, ftn_int *nb, ftn_int *iproc, ftn_int *isrcproc, ftn_int *nprocs) |
| ftn_len FORTRAN() | iceil (ftn_int *inum, ftn_int *idenom) |
| void FORTRAN() | pzgemr2d (ftn_int *m, ftn_int *n, ftn_double_complex *a, ftn_int *ia, ftn_int *ja, ftn_int const *desca, ftn_double_complex *b, ftn_int *ib, ftn_int *jb, ftn_int const *descb, ftn_int *gcontext) |
Variables | |
| const std::string | linalg_msg_no_scalapack = "not compiled with ScaLAPACK" |
Interface to linear algebra BLAS/LAPACK functions.
|
strong |
Type of eigen-value solver.
| Enumerator | |
|---|---|
| lapack | LAPACK. |
| scalapack | ScaLAPACK. |
| elpa | ELPA solver. |
| dlaf | DLA-Future solver. |
| magma | MAGMA with CPU pointers. |
| magma_gpu | MAGMA with GPU pointers. |
| cusolver | CUDA eigen-solver. |
Definition at line 36 of file eigensolver.hpp.
|
strong |
Type of linear algebra backend library.
Definition at line 69 of file linalg_base.hpp.
| void sirius::la::setup_handler | ( | elpa_t & | handle__, |
| int | stage__, | ||
| M const & | m__, | ||
| int | na__, | ||
| int | nev__ | ||
| ) |
Definition at line 18 of file eigenproblem.cpp.
| std::unique_ptr< Eigensolver > sirius::la::Eigensolver_factory | ( | std::string | name__ | ) |
Definition at line 33 of file eigensolver.cpp.
|
inline |
Get type of an eigen solver by name (provided as a string).
Definition at line 61 of file eigensolver.hpp.
|
inline |
Compute inverse square root of the matrix.
As by-product, return the eigen-vectors and the eigen-values of the matrix.
Definition at line 41 of file inverse_sqrt.hpp.
|
inline |
Definition at line 1912 of file linalg.hpp.
|
inline |
Definition at line 1945 of file linalg.hpp.
|
inline |
Definition at line 1968 of file linalg.hpp.
|
inline |
Definition at line 1991 of file linalg.hpp.
|
inline |
Perform one of the following operations: A <= U A U^{H} (kind = 0) A <= U^{H} A U (kind = 1)
Definition at line 2018 of file linalg.hpp.
|
inline |
Definition at line 89 of file linalg_base.hpp.
|
inline |
Definition at line 112 of file linalg_base.hpp.
| const std::string sirius::la::linalg_msg_no_scalapack = "not compiled with ScaLAPACK" |
Definition at line 59 of file linalg.hpp.