SIRIUS 7.5.0
Electronic structure library and applications
Public Member Functions | Private Attributes | List of all members
sirius::la::wrap Class Reference

Public Member Functions

 wrap (lib_t la__)
 
template<typename T >
void axpy (int n, T const *alpha, T const *x, int incx, T *y, int incy)
 vector addition
 
template<typename T >
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, T const *alpha, T const *A, ftn_int lda, T const *B, ftn_int ldb, T const *beta, T *C, ftn_int ldc, acc::stream_id sid=acc::stream_id(-1)) const
 General matrix-matrix multiplication. More...
 
template<typename T >
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, T const *alpha, dmatrix< T > const &A, ftn_int ia, ftn_int ja, dmatrix< T > const &B, ftn_int ib, ftn_int jb, T const *beta, dmatrix< T > &C, ftn_int ic, ftn_int jc)
 Distributed general matrix-matrix multiplication. More...
 
template<typename T >
void hemm (char side, char uplo, ftn_int m, ftn_int n, T const *alpha, T const *A, ftn_len lda, T const *B, ftn_len ldb, T const *beta, T *C, ftn_len ldc)
 Hermitian matrix times a general matrix or vice versa. More...
 
template<typename T >
void trmm (char side, char uplo, char transa, ftn_int m, ftn_int n, T const *aplha, T const *A, ftn_int lda, T *B, ftn_int ldb, acc::stream_id sid=acc::stream_id(-1)) const
 
template<typename T >
void ger (ftn_int m, ftn_int n, T const *alpha, T const *x, ftn_int incx, T const *y, ftn_int incy, T *A, ftn_int lda, acc::stream_id sid=acc::stream_id(-1)) const
 
template<typename T >
int potrf (ftn_int n, T *A, ftn_int lda, ftn_int const *desca=nullptr) const
 Cholesky factorization.
 
template<typename T >
int getrf (ftn_int m, ftn_int n, T *A, ftn_int lda, ftn_int *ipiv) const
 LU factorization of general matrix.
 
template<typename T >
int getrf (ftn_int m, ftn_int n, dmatrix< T > &A, ftn_int ia, ftn_int ja, ftn_int *ipiv) const
 LU factorization of general matrix.
 
template<typename T >
int getrs (char trans, ftn_int n, ftn_int nrhs, T const *A, ftn_int lda, ftn_int *ipiv, T *B, ftn_int ldb) const
 
template<typename T >
int sytrf (ftn_int n, T *A, ftn_int lda, ftn_int *ipiv) const
 U*D*U^H factorization of hermitian or symmetric matrix.
 
template<typename T >
int sytrs (ftn_int n, ftn_int nrhs, T *A, ftn_int lda, ftn_int *ipiv, T *b, ftn_int ldb) const
 solve Ax=b in place of b where A is factorized with sytrf.
 
template<typename T >
int trtri (ftn_int n, T *A, ftn_int lda, ftn_int const *desca=nullptr) const
 Inversion of a triangular matrix.
 
template<typename T >
int getri (ftn_int n, T *A, ftn_int lda, ftn_int *ipiv) const
 
template<typename T >
int sytri (ftn_int n, T *A, ftn_int lda, ftn_int *ipiv) const
 Inversion of factorized symmetric triangular matrix.
 
template<typename T >
void geinv (ftn_int n, sddk::matrix< T > &A) const
 Invert a general matrix. More...
 
template<typename T >
void syinv (ftn_int n, sddk::matrix< T > &A) const
 
template<typename T >
bool sysolve (ftn_int n, sddk::matrix< T > &A, sddk::mdarray< T, 1 > &b) const
 
template<typename T >
int gtsv (ftn_int n, ftn_int nrhs, T *dl, T *d, T *du, T *b, ftn_int ldb) const
 Compute the solution to system of linear equations A * X = B for general tri-diagonal matrix.
 
template<typename T >
int gesv (ftn_int n, ftn_int nrhs, T *A, ftn_int lda, T *B, ftn_int ldb) const
 Compute the solution to system of linear equations A * X = B for general matrix.
 
template<typename T >
void tranc (ftn_int m, ftn_int n, dmatrix< T > &A, ftn_int ia, ftn_int ja, dmatrix< T > &C, ftn_int ic, ftn_int jc) const
 Conjugate transpose matrix. More...
 
template<typename T >
void tranu (ftn_int m, ftn_int n, dmatrix< T > &A, ftn_int ia, ftn_int ja, dmatrix< T > &C, ftn_int ic, ftn_int jc) const
 Transpose matrix without conjugation.
 
template<typename T >
std::tuple< ftn_double, ftn_double, ftn_double > lartg (T f, T g) const
 
template<typename T >
void geqrf (ftn_int m, ftn_int n, dmatrix< T > &A, ftn_int ia, ftn_int ja)
 
template<>
void geqrf (ftn_int m, ftn_int n, dmatrix< ftn_double_complex > &A, ftn_int ia, ftn_int ja)
 
template<>
void geqrf (ftn_int m, ftn_int n, dmatrix< ftn_double > &A, ftn_int ia, ftn_int ja)
 
template<>
void geqrf (ftn_int m, ftn_int n, dmatrix< ftn_complex > &A, ftn_int ia, ftn_int ja)
 
template<>
void geqrf (ftn_int m, ftn_int n, dmatrix< ftn_single > &A, ftn_int ia, ftn_int ja)
 
template<>
void axpy (int n, ftn_double_complex const *alpha, ftn_double_complex const *x, int incx, ftn_double_complex *y, int incy)
 
template<>
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, ftn_single const *alpha, ftn_single const *A, ftn_int lda, ftn_single const *B, ftn_int ldb, ftn_single const *beta, ftn_single *C, ftn_int ldc, acc::stream_id sid) const
 
template<>
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, ftn_double const *alpha, ftn_double const *A, ftn_int lda, ftn_double const *B, ftn_int ldb, ftn_double const *beta, ftn_double *C, ftn_int ldc, acc::stream_id sid) const
 
template<>
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, ftn_complex const *alpha, ftn_complex const *A, ftn_int lda, ftn_complex const *B, ftn_int ldb, ftn_complex const *beta, ftn_complex *C, ftn_int ldc, acc::stream_id sid) const
 
template<>
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, ftn_double_complex const *alpha, ftn_double_complex const *A, ftn_int lda, ftn_double_complex const *B, ftn_int ldb, ftn_double_complex const *beta, ftn_double_complex *C, ftn_int ldc, acc::stream_id sid) const
 
template<>
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, ftn_single const *alpha, dmatrix< ftn_single > const &A, ftn_int ia, ftn_int ja, dmatrix< ftn_single > const &B, ftn_int ib, ftn_int jb, ftn_single const *beta, dmatrix< ftn_single > &C, ftn_int ic, ftn_int jc)
 
template<>
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, ftn_double const *alpha, dmatrix< ftn_double > const &A, ftn_int ia, ftn_int ja, dmatrix< ftn_double > const &B, ftn_int ib, ftn_int jb, ftn_double const *beta, dmatrix< ftn_double > &C, ftn_int ic, ftn_int jc)
 
template<>
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, ftn_complex const *alpha, dmatrix< ftn_complex > const &A, ftn_int ia, ftn_int ja, dmatrix< ftn_complex > const &B, ftn_int ib, ftn_int jb, ftn_complex const *beta, dmatrix< ftn_complex > &C, ftn_int ic, ftn_int jc)
 
template<>
void gemm (char transa, char transb, ftn_int m, ftn_int n, ftn_int k, ftn_double_complex const *alpha, dmatrix< ftn_double_complex > const &A, ftn_int ia, ftn_int ja, dmatrix< ftn_double_complex > const &B, ftn_int ib, ftn_int jb, ftn_double_complex const *beta, dmatrix< ftn_double_complex > &C, ftn_int ic, ftn_int jc)
 
template<>
void hemm (char side, char uplo, ftn_int m, ftn_int n, ftn_complex const *alpha, ftn_complex const *A, ftn_len lda, ftn_complex const *B, ftn_len ldb, ftn_complex const *beta, ftn_complex *C, ftn_len ldc)
 
template<>
void hemm (char side, char uplo, ftn_int m, ftn_int n, ftn_double_complex const *alpha, ftn_double_complex const *A, ftn_len lda, ftn_double_complex const *B, ftn_len ldb, ftn_double_complex const *beta, ftn_double_complex *C, ftn_len ldc)
 
template<>
void ger (ftn_int m, ftn_int n, ftn_single const *alpha, ftn_single const *x, ftn_int incx, ftn_single const *y, ftn_int incy, ftn_single *A, ftn_int lda, acc::stream_id sid) const
 
template<>
void ger (ftn_int m, ftn_int n, ftn_double const *alpha, ftn_double const *x, ftn_int incx, ftn_double const *y, ftn_int incy, ftn_double *A, ftn_int lda, acc::stream_id sid) const
 
template<>
void trmm (char side, char uplo, char transa, ftn_int m, ftn_int n, ftn_double const *alpha, ftn_double const *A, ftn_int lda, ftn_double *B, ftn_int ldb, acc::stream_id sid) const
 
template<>
void trmm (char side, char uplo, char transa, ftn_int m, ftn_int n, ftn_single const *alpha, ftn_single const *A, ftn_int lda, ftn_single *B, ftn_int ldb, acc::stream_id sid) const
 
template<>
void trmm (char side, char uplo, char transa, ftn_int m, ftn_int n, ftn_double_complex const *alpha, ftn_double_complex const *A, ftn_int lda, ftn_double_complex *B, ftn_int ldb, acc::stream_id sid) const
 
template<>
void trmm (char side, char uplo, char transa, ftn_int m, ftn_int n, ftn_complex const *alpha, ftn_complex const *A, ftn_int lda, ftn_complex *B, ftn_int ldb, acc::stream_id sid) const
 
template<>
int potrf (ftn_int n, ftn_double *A, ftn_int lda, ftn_int const *desca) const
 
template<>
int potrf (ftn_int n, ftn_single *A, ftn_int lda, ftn_int const *desca) const
 
template<>
int potrf (ftn_int n, ftn_double_complex *A, ftn_int lda, ftn_int const *desca) const
 
template<>
int potrf (ftn_int n, ftn_complex *A, ftn_int lda, ftn_int const *desca) const
 
template<>
int trtri (ftn_int n, ftn_double *A, ftn_int lda, ftn_int const *desca) const
 
template<>
int trtri (ftn_int n, ftn_single *A, ftn_int lda, ftn_int const *desca) const
 
template<>
int trtri (ftn_int n, ftn_double_complex *A, ftn_int lda, ftn_int const *desca) const
 
template<>
int trtri (ftn_int n, ftn_complex *A, ftn_int lda, ftn_int const *desca) const
 
template<>
int gtsv (ftn_int n, ftn_int nrhs, ftn_double *dl, ftn_double *d, ftn_double *du, ftn_double *b, ftn_int ldb) const
 
template<>
int gtsv (ftn_int n, ftn_int nrhs, ftn_double_complex *dl, ftn_double_complex *d, ftn_double_complex *du, ftn_double_complex *b, ftn_int ldb) const
 
template<>
int gesv (ftn_int n, ftn_int nrhs, ftn_double *A, ftn_int lda, ftn_double *B, ftn_int ldb) const
 
template<>
int gesv (ftn_int n, ftn_int nrhs, ftn_double_complex *A, ftn_int lda, ftn_double_complex *B, ftn_int ldb) const
 
template<>
int getrf (ftn_int m, ftn_int n, ftn_double *A, ftn_int lda, ftn_int *ipiv) const
 
template<>
int getrf (ftn_int m, ftn_int n, ftn_double_complex *A, ftn_int lda, ftn_int *ipiv) const
 
template<>
int getrf (ftn_int m, ftn_int n, dmatrix< ftn_double_complex > &A, ftn_int ia, ftn_int ja, ftn_int *ipiv) const
 
template<>
int getrs (char trans, ftn_int n, ftn_int nrhs, const ftn_double_complex *A, ftn_int lda, ftn_int *ipiv, ftn_double_complex *B, ftn_int ldb) const
 
template<>
void tranc (ftn_int m, ftn_int n, dmatrix< ftn_complex > &A, ftn_int ia, ftn_int ja, dmatrix< ftn_complex > &C, ftn_int ic, ftn_int jc) const
 
template<>
void tranu (ftn_int m, ftn_int n, dmatrix< ftn_double_complex > &A, ftn_int ia, ftn_int ja, dmatrix< ftn_double_complex > &C, ftn_int ic, ftn_int jc) const
 
template<>
void tranc (ftn_int m, ftn_int n, dmatrix< ftn_double_complex > &A, ftn_int ia, ftn_int ja, dmatrix< ftn_double_complex > &C, ftn_int ic, ftn_int jc) const
 
template<>
void tranc (ftn_int m, ftn_int n, dmatrix< ftn_single > &A, ftn_int ia, ftn_int ja, dmatrix< ftn_single > &C, ftn_int ic, ftn_int jc) const
 
template<>
void tranu (ftn_int m, ftn_int n, dmatrix< ftn_double > &A, ftn_int ia, ftn_int ja, dmatrix< ftn_double > &C, ftn_int ic, ftn_int jc) const
 
template<>
void tranc (ftn_int m, ftn_int n, dmatrix< ftn_double > &A, ftn_int ia, ftn_int ja, dmatrix< ftn_double > &C, ftn_int ic, ftn_int jc) const
 
template<>
int getri (ftn_int n, ftn_double *A, ftn_int lda, ftn_int *ipiv) const
 
template<>
int getri (ftn_int n, ftn_double_complex *A, ftn_int lda, ftn_int *ipiv) const
 
template<>
int sytrf (ftn_int n, ftn_double_complex *A, ftn_int lda, ftn_int *ipiv) const
 
template<>
int sytrf (ftn_int n, ftn_double *A, ftn_int lda, ftn_int *ipiv) const
 
template<>
int sytri (ftn_int n, ftn_double *A, ftn_int lda, ftn_int *ipiv) const
 
template<>
int sytrs (ftn_int n, ftn_int nrhs, ftn_double *A, ftn_int lda, ftn_int *ipiv, ftn_double *b, ftn_int ldb) const
 
template<>
int sytri (ftn_int n, ftn_double_complex *A, ftn_int lda, ftn_int *ipiv) const
 
template<>
std::tuple< ftn_double, ftn_double, ftn_double > lartg (ftn_double f, ftn_double g) const
 

Private Attributes

lib_t la_
 

Detailed Description

Definition at line 61 of file linalg.hpp.

Constructor & Destructor Documentation

◆ wrap()

sirius::la::wrap::wrap ( lib_t  la__)
inline

Definition at line 66 of file linalg.hpp.

Member Function Documentation

◆ gemm() [1/10]

template<typename T >
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
T const *  alpha,
T const *  A,
ftn_int  lda,
T const *  B,
ftn_int  ldb,
T const *  beta,
T *  C,
ftn_int  ldc,
acc::stream_id  sid = acc::stream_id(-1) 
) const
inline

General matrix-matrix multiplication.

Compute C = alpha * op(A) * op(B) + beta * op(C) with raw pointers.

◆ gemm() [2/10]

template<typename T >
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
T const *  alpha,
dmatrix< T > const &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< T > const &  B,
ftn_int  ib,
ftn_int  jb,
T const *  beta,
dmatrix< T > &  C,
ftn_int  ic,
ftn_int  jc 
)
inline

Distributed general matrix-matrix multiplication.

Compute C = alpha * op(A) * op(B) + beta * op(C) for distributed matrices.

◆ hemm() [1/3]

template<typename T >
void sirius::la::wrap::hemm ( char  side,
char  uplo,
ftn_int  m,
ftn_int  n,
T const *  alpha,
T const *  A,
ftn_len  lda,
T const *  B,
ftn_len  ldb,
T const *  beta,
T *  C,
ftn_len  ldc 
)
inline

Hermitian matrix times a general matrix or vice versa.

Perform one of the matrix-matrix operations
C = alpha * A * B + beta * C (side = 'L')
C = alpha * B * A + beta * C (side = 'R'),
where A is a hermitian matrix with upper (uplo = 'U') of lower (uplo = 'L') triangular part defined.

◆ geinv()

template<typename T >
void sirius::la::wrap::geinv ( ftn_int  n,
sddk::matrix< T > &  A 
) const
inline

Invert a general matrix.

Definition at line 163 of file linalg.hpp.

◆ syinv()

template<typename T >
void sirius::la::wrap::syinv ( ftn_int  n,
sddk::matrix< T > &  A 
) const
inline

Definition at line 180 of file linalg.hpp.

◆ sysolve()

template<typename T >
bool sirius::la::wrap::sysolve ( ftn_int  n,
sddk::matrix< T > &  A,
sddk::mdarray< T, 1 > &  b 
) const
inline

Definition at line 197 of file linalg.hpp.

◆ tranc() [1/5]

template<typename T >
void sirius::la::wrap::tranc ( ftn_int  m,
ftn_int  n,
dmatrix< T > &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< T > &  C,
ftn_int  ic,
ftn_int  jc 
) const
inline

Conjugate transpose matrix.

Parameters
[in]mNumber of rows of the target sub-matrix.
[in]nNumber of columns of the target sub-matrix.
[in]AInput matrix
[in]iaStarting row index of sub-matrix inside A
[in]jaStarting column index of sub-matrix inside A
[out]COutput matrix
[in]icStarting row index of sub-matrix inside C
[in]jcStarting column index of sub-matrix inside C

◆ geqrf() [1/4]

template<>
void sirius::la::wrap::geqrf ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_double_complex > &  A,
ftn_int  ia,
ftn_int  ja 
)
inline

Definition at line 252 of file linalg.hpp.

◆ geqrf() [2/4]

template<>
void sirius::la::wrap::geqrf ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_double > &  A,
ftn_int  ia,
ftn_int  ja 
)
inline

Definition at line 297 of file linalg.hpp.

◆ geqrf() [3/4]

template<>
void sirius::la::wrap::geqrf ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_complex > &  A,
ftn_int  ia,
ftn_int  ja 
)
inline

Definition at line 342 of file linalg.hpp.

◆ geqrf() [4/4]

template<>
void sirius::la::wrap::geqrf ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_single > &  A,
ftn_int  ia,
ftn_int  ja 
)
inline

Definition at line 387 of file linalg.hpp.

◆ axpy()

template<>
void sirius::la::wrap::axpy ( int  n,
ftn_double_complex const *  alpha,
ftn_double_complex const *  x,
int  incx,
ftn_double_complex *  y,
int  incy 
)
inline

Definition at line 433 of file linalg.hpp.

◆ gemm() [3/10]

template<>
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
ftn_single const *  alpha,
ftn_single const *  A,
ftn_int  lda,
ftn_single const *  B,
ftn_int  ldb,
ftn_single const *  beta,
ftn_single *  C,
ftn_int  ldc,
acc::stream_id  sid 
) const
inline

Definition at line 461 of file linalg.hpp.

◆ gemm() [4/10]

template<>
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
ftn_double const *  alpha,
ftn_double const *  A,
ftn_int  lda,
ftn_double const *  B,
ftn_int  ldb,
ftn_double const *  beta,
ftn_double *  C,
ftn_int  ldc,
acc::stream_id  sid 
) const
inline

Definition at line 507 of file linalg.hpp.

◆ gemm() [5/10]

template<>
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
ftn_complex const *  alpha,
ftn_complex const *  A,
ftn_int  lda,
ftn_complex const *  B,
ftn_int  ldb,
ftn_complex const *  beta,
ftn_complex *  C,
ftn_int  ldc,
acc::stream_id  sid 
) const
inline

Definition at line 552 of file linalg.hpp.

◆ gemm() [6/10]

template<>
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
ftn_double_complex const *  alpha,
ftn_double_complex const *  A,
ftn_int  lda,
ftn_double_complex const *  B,
ftn_int  ldb,
ftn_double_complex const *  beta,
ftn_double_complex *  C,
ftn_int  ldc,
acc::stream_id  sid 
) const
inline

Definition at line 605 of file linalg.hpp.

◆ gemm() [7/10]

template<>
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
ftn_single const *  alpha,
dmatrix< ftn_single > const &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_single > const &  B,
ftn_int  ib,
ftn_int  jb,
ftn_single const *  beta,
dmatrix< ftn_single > &  C,
ftn_int  ic,
ftn_int  jc 
)
inline

Definition at line 660 of file linalg.hpp.

◆ gemm() [8/10]

template<>
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
ftn_double const *  alpha,
dmatrix< ftn_double > const &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_double > const &  B,
ftn_int  ib,
ftn_int  jb,
ftn_double const *  beta,
dmatrix< ftn_double > &  C,
ftn_int  ic,
ftn_int  jc 
)
inline

Definition at line 691 of file linalg.hpp.

◆ gemm() [9/10]

template<>
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
ftn_complex const *  alpha,
dmatrix< ftn_complex > const &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_complex > const &  B,
ftn_int  ib,
ftn_int  jb,
ftn_complex const *  beta,
dmatrix< ftn_complex > &  C,
ftn_int  ic,
ftn_int  jc 
)
inline

Definition at line 722 of file linalg.hpp.

◆ gemm() [10/10]

template<>
void sirius::la::wrap::gemm ( char  transa,
char  transb,
ftn_int  m,
ftn_int  n,
ftn_int  k,
ftn_double_complex const *  alpha,
dmatrix< ftn_double_complex > const &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_double_complex > const &  B,
ftn_int  ib,
ftn_int  jb,
ftn_double_complex const *  beta,
dmatrix< ftn_double_complex > &  C,
ftn_int  ic,
ftn_int  jc 
)
inline

Definition at line 753 of file linalg.hpp.

◆ hemm() [2/3]

template<>
void sirius::la::wrap::hemm ( char  side,
char  uplo,
ftn_int  m,
ftn_int  n,
ftn_complex const *  alpha,
ftn_complex const *  A,
ftn_len  lda,
ftn_complex const *  B,
ftn_len  ldb,
ftn_complex const *  beta,
ftn_complex *  C,
ftn_len  ldc 
)
inline

Definition at line 786 of file linalg.hpp.

◆ hemm() [3/3]

template<>
void sirius::la::wrap::hemm ( char  side,
char  uplo,
ftn_int  m,
ftn_int  n,
ftn_double_complex const *  alpha,
ftn_double_complex const *  A,
ftn_len  lda,
ftn_double_complex const *  B,
ftn_len  ldb,
ftn_double_complex const *  beta,
ftn_double_complex *  C,
ftn_len  ldc 
)
inline

Definition at line 810 of file linalg.hpp.

◆ ger() [1/2]

template<>
void sirius::la::wrap::ger ( ftn_int  m,
ftn_int  n,
ftn_single const *  alpha,
ftn_single const *  x,
ftn_int  incx,
ftn_single const *  y,
ftn_int  incy,
ftn_single *  A,
ftn_int  lda,
acc::stream_id  sid 
) const
inline

Definition at line 835 of file linalg.hpp.

◆ ger() [2/2]

template<>
void sirius::la::wrap::ger ( ftn_int  m,
ftn_int  n,
ftn_double const *  alpha,
ftn_double const *  x,
ftn_int  incx,
ftn_double const *  y,
ftn_int  incy,
ftn_double *  A,
ftn_int  lda,
acc::stream_id  sid 
) const
inline

Definition at line 864 of file linalg.hpp.

◆ trmm() [1/4]

template<>
void sirius::la::wrap::trmm ( char  side,
char  uplo,
char  transa,
ftn_int  m,
ftn_int  n,
ftn_double const *  alpha,
ftn_double const *  A,
ftn_int  lda,
ftn_double *  B,
ftn_int  ldb,
acc::stream_id  sid 
) const
inline

Definition at line 893 of file linalg.hpp.

◆ trmm() [2/4]

template<>
void sirius::la::wrap::trmm ( char  side,
char  uplo,
char  transa,
ftn_int  m,
ftn_int  n,
ftn_single const *  alpha,
ftn_single const *  A,
ftn_int  lda,
ftn_single *  B,
ftn_int  ldb,
acc::stream_id  sid 
) const
inline

Definition at line 926 of file linalg.hpp.

◆ trmm() [3/4]

template<>
void sirius::la::wrap::trmm ( char  side,
char  uplo,
char  transa,
ftn_int  m,
ftn_int  n,
ftn_double_complex const *  alpha,
ftn_double_complex const *  A,
ftn_int  lda,
ftn_double_complex *  B,
ftn_int  ldb,
acc::stream_id  sid 
) const
inline

Definition at line 959 of file linalg.hpp.

◆ trmm() [4/4]

template<>
void sirius::la::wrap::trmm ( char  side,
char  uplo,
char  transa,
ftn_int  m,
ftn_int  n,
ftn_complex const *  alpha,
ftn_complex const *  A,
ftn_int  lda,
ftn_complex *  B,
ftn_int  ldb,
acc::stream_id  sid 
) const
inline

Definition at line 997 of file linalg.hpp.

◆ potrf() [1/4]

template<>
int sirius::la::wrap::potrf ( ftn_int  n,
ftn_double *  A,
ftn_int  lda,
ftn_int const *  desca 
) const
inline

Definition at line 1036 of file linalg.hpp.

◆ potrf() [2/4]

template<>
int sirius::la::wrap::potrf ( ftn_int  n,
ftn_single *  A,
ftn_int  lda,
ftn_int const *  desca 
) const
inline

Definition at line 1083 of file linalg.hpp.

◆ potrf() [3/4]

template<>
int sirius::la::wrap::potrf ( ftn_int  n,
ftn_double_complex *  A,
ftn_int  lda,
ftn_int const *  desca 
) const
inline

Definition at line 1130 of file linalg.hpp.

◆ potrf() [4/4]

template<>
int sirius::la::wrap::potrf ( ftn_int  n,
ftn_complex *  A,
ftn_int  lda,
ftn_int const *  desca 
) const
inline

Definition at line 1177 of file linalg.hpp.

◆ trtri() [1/4]

template<>
int sirius::la::wrap::trtri ( ftn_int  n,
ftn_double *  A,
ftn_int  lda,
ftn_int const *  desca 
) const
inline

Definition at line 1224 of file linalg.hpp.

◆ trtri() [2/4]

template<>
int sirius::la::wrap::trtri ( ftn_int  n,
ftn_single *  A,
ftn_int  lda,
ftn_int const *  desca 
) const
inline

Definition at line 1271 of file linalg.hpp.

◆ trtri() [3/4]

template<>
int sirius::la::wrap::trtri ( ftn_int  n,
ftn_double_complex *  A,
ftn_int  lda,
ftn_int const *  desca 
) const
inline

Definition at line 1318 of file linalg.hpp.

◆ trtri() [4/4]

template<>
int sirius::la::wrap::trtri ( ftn_int  n,
ftn_complex *  A,
ftn_int  lda,
ftn_int const *  desca 
) const
inline

Definition at line 1365 of file linalg.hpp.

◆ gtsv() [1/2]

template<>
int sirius::la::wrap::gtsv ( ftn_int  n,
ftn_int  nrhs,
ftn_double *  dl,
ftn_double *  d,
ftn_double *  du,
ftn_double *  b,
ftn_int  ldb 
) const
inline

Definition at line 1412 of file linalg.hpp.

◆ gtsv() [2/2]

template<>
int sirius::la::wrap::gtsv ( ftn_int  n,
ftn_int  nrhs,
ftn_double_complex *  dl,
ftn_double_complex *  d,
ftn_double_complex *  du,
ftn_double_complex *  b,
ftn_int  ldb 
) const
inline

Definition at line 1431 of file linalg.hpp.

◆ gesv() [1/2]

template<>
int sirius::la::wrap::gesv ( ftn_int  n,
ftn_int  nrhs,
ftn_double *  A,
ftn_int  lda,
ftn_double *  B,
ftn_int  ldb 
) const
inline

Definition at line 1450 of file linalg.hpp.

◆ gesv() [2/2]

template<>
int sirius::la::wrap::gesv ( ftn_int  n,
ftn_int  nrhs,
ftn_double_complex *  A,
ftn_int  lda,
ftn_double_complex *  B,
ftn_int  ldb 
) const
inline

Definition at line 1469 of file linalg.hpp.

◆ getrf() [1/3]

template<>
int sirius::la::wrap::getrf ( ftn_int  m,
ftn_int  n,
ftn_double *  A,
ftn_int  lda,
ftn_int *  ipiv 
) const
inline

Definition at line 1490 of file linalg.hpp.

◆ getrf() [2/3]

template<>
int sirius::la::wrap::getrf ( ftn_int  m,
ftn_int  n,
ftn_double_complex *  A,
ftn_int  lda,
ftn_int *  ipiv 
) const
inline

Definition at line 1509 of file linalg.hpp.

◆ getrf() [3/3]

template<>
int sirius::la::wrap::getrf ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_double_complex > &  A,
ftn_int  ia,
ftn_int  ja,
ftn_int *  ipiv 
) const
inline

Definition at line 1527 of file linalg.hpp.

◆ getrs()

template<>
int sirius::la::wrap::getrs ( char  trans,
ftn_int  n,
ftn_int  nrhs,
const ftn_double_complex *  A,
ftn_int  lda,
ftn_int *  ipiv,
ftn_double_complex *  B,
ftn_int  ldb 
) const
inline

Definition at line 1552 of file linalg.hpp.

◆ tranc() [2/5]

template<>
void sirius::la::wrap::tranc ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_complex > &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_complex > &  C,
ftn_int  ic,
ftn_int  jc 
) const
inline

Definition at line 1579 of file linalg.hpp.

◆ tranu() [1/2]

template<>
void sirius::la::wrap::tranu ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_double_complex > &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_double_complex > &  C,
ftn_int  ic,
ftn_int  jc 
) const
inline

Definition at line 1609 of file linalg.hpp.

◆ tranc() [3/5]

template<>
void sirius::la::wrap::tranc ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_double_complex > &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_double_complex > &  C,
ftn_int  ic,
ftn_int  jc 
) const
inline

Definition at line 1638 of file linalg.hpp.

◆ tranc() [4/5]

template<>
void sirius::la::wrap::tranc ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_single > &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_single > &  C,
ftn_int  ic,
ftn_int  jc 
) const
inline

Definition at line 1667 of file linalg.hpp.

◆ tranu() [2/2]

template<>
void sirius::la::wrap::tranu ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_double > &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_double > &  C,
ftn_int  ic,
ftn_int  jc 
) const
inline

Definition at line 1695 of file linalg.hpp.

◆ tranc() [5/5]

template<>
void sirius::la::wrap::tranc ( ftn_int  m,
ftn_int  n,
dmatrix< ftn_double > &  A,
ftn_int  ia,
ftn_int  ja,
dmatrix< ftn_double > &  C,
ftn_int  ic,
ftn_int  jc 
) const
inline

Definition at line 1723 of file linalg.hpp.

◆ getri() [1/2]

template<>
int sirius::la::wrap::getri ( ftn_int  n,
ftn_double *  A,
ftn_int  lda,
ftn_int *  ipiv 
) const
inline

Definition at line 1752 of file linalg.hpp.

◆ getri() [2/2]

template<>
int sirius::la::wrap::getri ( ftn_int  n,
ftn_double_complex *  A,
ftn_int  lda,
ftn_int *  ipiv 
) const
inline

Definition at line 1775 of file linalg.hpp.

◆ sytrf() [1/2]

template<>
int sirius::la::wrap::sytrf ( ftn_int  n,
ftn_double_complex *  A,
ftn_int  lda,
ftn_int *  ipiv 
) const
inline

Definition at line 1797 of file linalg.hpp.

◆ sytrf() [2/2]

template<>
int sirius::la::wrap::sytrf ( ftn_int  n,
ftn_double *  A,
ftn_int  lda,
ftn_int *  ipiv 
) const
inline

Definition at line 1819 of file linalg.hpp.

◆ sytri() [1/2]

template<>
int sirius::la::wrap::sytri ( ftn_int  n,
ftn_double *  A,
ftn_int  lda,
ftn_int *  ipiv 
) const
inline

Definition at line 1841 of file linalg.hpp.

◆ sytrs()

template<>
int sirius::la::wrap::sytrs ( ftn_int  n,
ftn_int  nrhs,
ftn_double *  A,
ftn_int  lda,
ftn_int *  ipiv,
ftn_double *  b,
ftn_int  ldb 
) const
inline

Definition at line 1860 of file linalg.hpp.

◆ sytri() [2/2]

template<>
int sirius::la::wrap::sytri ( ftn_int  n,
ftn_double_complex *  A,
ftn_int  lda,
ftn_int *  ipiv 
) const
inline

Definition at line 1878 of file linalg.hpp.

◆ lartg()

template<>
std::tuple< ftn_double, ftn_double, ftn_double > sirius::la::wrap::lartg ( ftn_double  f,
ftn_double  g 
) const
inline

Definition at line 1896 of file linalg.hpp.

Member Data Documentation

◆ la_

lib_t sirius::la::wrap::la_
private

Definition at line 64 of file linalg.hpp.


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