SIRIUS 7.5.0
Electronic structure library and applications
Classes | Namespaces | Enumerations | Functions
linalg_base.hpp File Reference

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)
 

Detailed Description

Basic interface to linear algebra functions.

Definition in file linalg_base.hpp.