SIRIUS 7.5.0
Electronic structure library and applications
|
Basic interface to linear algebra functions. More...
Go to the source code of this file.
Classes | |
struct | sirius::la::constant< T > |
class | sirius::la::linalg_base |
Base class for linear algebra interface. More... | |
Namespaces | |
module | sirius |
Namespace of the SIRIUS library. | |
namespace | sirius::la |
Interface to linear algebra BLAS/LAPACK functions. | |
Enumerations | |
enum class | sirius::la::lib_t { sirius::la::none , sirius::la::blas , sirius::la::lapack , sirius::la::scalapack , sirius::la::gpublas , sirius::la::cublasxt , sirius::la::magma , sirius::la::spla } |
Type of linear algebra backend library. More... | |
Functions | |
auto | sirius::la::get_lib_t (std::string name__) |
std::string | sirius::la::to_string (lib_t la__) |
ftn_int FORTRAN() | sirius::la::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() | sirius::la::dlamch (ftn_char cmach, ftn_len cmach_len) |
int | sirius::la::Csys2blacs_handle (MPI_Comm SysCtxt) |
MPI_Comm | sirius::la::Cblacs2sys_handle (int BlacsCtxt) |
void | sirius::la::Cblacs_gridinit (int *ConTxt, const char *order, int nprow, int npcol) |
void | sirius::la::Cblacs_gridmap (int *ConTxt, int *usermap, int ldup, int nprow0, int npcol0) |
void | sirius::la::Cblacs_gridinfo (int ConTxt, int *nprow, int *npcol, int *myrow, int *mycol) |
void | sirius::la::Cfree_blacs_system_handle (int ISysCtxt) |
void | sirius::la::Cblacs_barrier (int ConTxt, const char *scope) |
void | sirius::la::Cblacs_gridexit (int ConTxt) |
void FORTRAN() | sirius::la::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() | sirius::la::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() | sirius::la::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() | sirius::la::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() | sirius::la::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() | sirius::la::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() | sirius::la::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() | sirius::la::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() | sirius::la::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() | sirius::la::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() | sirius::la::numroc (ftn_int *n, ftn_int *nb, ftn_int *iproc, ftn_int *isrcproc, ftn_int *nprocs) |
ftn_int FORTRAN() | sirius::la::indxl2g (ftn_int *indxloc, ftn_int *nb, ftn_int *iproc, ftn_int *isrcproc, ftn_int *nprocs) |
ftn_len FORTRAN() | sirius::la::iceil (ftn_int *inum, ftn_int *idenom) |
void FORTRAN() | sirius::la::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) |
Basic interface to linear algebra functions.
Definition in file linalg_base.hpp.