blas_lapack.hpp File Reference
#include <opm/common/ErrorMacros.hpp>
#include <opm/porsol/common/fortran.hpp>
Include dependency graph for blas_lapack.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  Opm
 
namespace  Opm::BLAS_LAPACK
 

Macros

#define DGEMV   F77_NAME(dgemv,DGEMV)
 
#define DGEMM   F77_NAME(dgemm,DGEMM)
 
#define DSYRK   F77_NAME(dsyrk,DSYRK)
 
#define DTRMM   F77_NAME(dtrmm,DTRMM)
 
#define DGEQRF   F77_NAME(dgeqrf,DGEQRF)
 
#define DORGQR   F77_NAME(dorgqr,DORGQR)
 
#define DGETRF   F77_NAME(dgetrf,DGETRF)
 
#define DGETRI   F77_NAME(dgetri,DGETRI)
 

Functions

void DGEMV (F77_CHARACTER_TYPE, const int *m, const int *n, const double *a1, const double *A, const int *ldA, const double *x, const int *incX, const double *a2, double *y, const int *incY)
 
void DGEMM (F77_CHARACTER_TYPE, F77_CHARACTER_TYPE, const int *m, const int *n, const int *k, const double *a1, const double *A, const int *ldA, const double *B, const int *ldB, const double *a2, double *C, const int *ldC)
 
void DSYRK (F77_CHARACTER_TYPE, F77_CHARACTER_TYPE, const int *n, const int *k, const double *a1, const double *A, const int *ldA, const double *a2, double *C, const int *ldC)
 
void DTRMM (F77_CHARACTER_TYPE, F77_CHARACTER_TYPE, F77_CHARACTER_TYPE, F77_CHARACTER_TYPE, const int *m, const int *n, const double *a, const double *A, const int *ldA, double *B, const int *ldB)
 
void DGEQRF (const int *m, const int *n, double *A, const int *ld, double *tau, double *work, const int *lwork, int *info)
 
void DORGQR (const int *m, const int *n, const int *k, double *A, const int *ld, const double *tau, double *work, const int *lwork, int *info)
 
void DGETRF (const int *m, const int *n, double *A, const int *ld, int *ipiv, int *info)
 
void DGETRI (const int *n, double *A, const int *ld, const int *ipiv, double *work, int *lwork, int *info)
 
template<typename T >
void Opm::BLAS_LAPACK::GEMV (const char *transA, const int m, const int n, const T &a1, const T *A, const int ldA, const T *x, const int incX, const T &a2, T *y, const int incY)
 GEneral Matrix Vector product (Level 2 BLAS). More...
 
template<>
void Opm::BLAS_LAPACK::GEMV< double > (const char *transA, const int m, const int n, const double &a1, const double *A, const int ldA, const double *x, const int incX, const double &a2, double *y, const int incY)
 GEneral Matrix Vector product specialization for double. More...
 
template<typename T >
void Opm::BLAS_LAPACK::GEMM (const char *transA, const char *transB, const int m, const int n, const int k, const T &a1, const T *A, const int ldA, const T *B, const int ldB, const T &a2, T *C, const int ldC)
 GEneral Matrix Matrix product (Level 3 BLAS). More...
 
template<>
void Opm::BLAS_LAPACK::GEMM< double > (const char *transA, const char *transB, const int m, const int n, const int k, const double &a1, const double *A, const int ldA, const double *B, const int ldB, const double &a2, double *C, const int ldC)
 GEneral Matrix Matrix product specialization for double. More...
 
template<typename T >
void Opm::BLAS_LAPACK::SYRK (const char *uplo, const char *trans, const int n, const int k, const T &a1, const T *A, const int ldA, const T &a2, T *C, const int ldC)
 SYmmetric Rank K update of symmetric matrix (Level 3 BLAS) More...
 
template<>
void Opm::BLAS_LAPACK::SYRK< double > (const char *uplo, const char *trans, const int n, const int k, const double &a1, const double *A, const int ldA, const double &a2, double *C, const int ldC)
 SYmmetric Rank K update of symmetric matrix specialization for double. More...
 
template<typename T >
void Opm::BLAS_LAPACK::TRMM (const char *side, const char *uplo, const char *transA, const char *diag, const int m, const int n, const T &a, const T *A, const int ldA, T *B, const int ldB)
 TRiangular Matrix Matrix product (Level 2 BLAS) More...
 
template<>
void Opm::BLAS_LAPACK::TRMM< double > (const char *side, const char *uplo, const char *transA, const char *diag, const int m, const int n, const double &a, const double *A, const int ldA, double *B, const int ldB)
 TRiangular Matrix Matrix product specialization for double. More...
 
template<typename T >
void Opm::BLAS_LAPACK::GEQRF (const int m, const int n, T *A, const int ld, T *tau, T *work, const int lwork, int &info)
 GEneral matrix QR Factorization (LAPACK) More...
 
template<>
void Opm::BLAS_LAPACK::GEQRF< double > (const int m, const int n, double *A, const int ld, double *tau, double *work, const int lwork, int &info)
 GEneral matrix QR Factorization specialization for double. More...
 
template<typename T >
void Opm::BLAS_LAPACK::ORGQR (const int m, const int n, const int k, T *A, const int ld, const T *tau, T *work, const int lwork, int &info)
 ORthogonal matrix Generator from QR factorization (LAPACK). More...
 
template<>
void Opm::BLAS_LAPACK::ORGQR< double > (const int m, const int n, const int k, double *A, const int ld, const double *tau, double *work, const int lwork, int &info)
 ORthogonal matrix Generator from QR factorization specialization for double. More...
 
template<typename T >
void Opm::BLAS_LAPACK::GETRF (const int m, const int n, T *A, const int ld, int *ipiv, int &info)
 GEneral matrix TRiangular Factorization (LAPACK). More...
 
template<>
void Opm::BLAS_LAPACK::GETRF< double > (const int m, const int n, double *A, const int ld, int *ipiv, int &info)
 GEneral matrix TRiangular Factorization specialization for double. More...
 
template<typename T >
void Opm::BLAS_LAPACK::GETRI (const int n, T *A, const int ld, const int *ipiv, T *work, int lwork, int &info)
 GEneral matrix TRiangular Inversion (LAPACK). More...
 
template<>
void Opm::BLAS_LAPACK::GETRI (const int n, double *A, const int ld, const int *ipiv, double *work, int lwork, int &info)
 GEneral matrix TRiangular Inversion specialization for double. More...
 

Macro Definition Documentation

◆ DGEMM

#define DGEMM   F77_NAME(dgemm,DGEMM)

◆ DGEMV

#define DGEMV   F77_NAME(dgemv,DGEMV)

◆ DGEQRF

#define DGEQRF   F77_NAME(dgeqrf,DGEQRF)

◆ DGETRF

#define DGETRF   F77_NAME(dgetrf,DGETRF)

◆ DGETRI

#define DGETRI   F77_NAME(dgetri,DGETRI)

◆ DORGQR

#define DORGQR   F77_NAME(dorgqr,DORGQR)

◆ DSYRK

#define DSYRK   F77_NAME(dsyrk,DSYRK)

◆ DTRMM

#define DTRMM   F77_NAME(dtrmm,DTRMM)

Function Documentation

◆ DGEMM()

void DGEMM ( F77_CHARACTER_TYPE  ,
F77_CHARACTER_TYPE  ,
const int *  m,
const int *  n,
const int *  k,
const double *  a1,
const double *  A,
const int *  ldA,
const double *  B,
const int *  ldB,
const double *  a2,
double *  C,
const int *  ldC 
)

◆ DGEMV()

void DGEMV ( F77_CHARACTER_TYPE  ,
const int *  m,
const int *  n,
const double *  a1,
const double *  A,
const int *  ldA,
const double *  x,
const int *  incX,
const double *  a2,
double *  y,
const int *  incY 
)

◆ DGEQRF()

void DGEQRF ( const int *  m,
const int *  n,
double *  A,
const int *  ld,
double *  tau,
double *  work,
const int *  lwork,
int *  info 
)

◆ DGETRF()

void DGETRF ( const int *  m,
const int *  n,
double *  A,
const int *  ld,
int *  ipiv,
int *  info 
)

◆ DGETRI()

void DGETRI ( const int *  n,
double *  A,
const int *  ld,
const int *  ipiv,
double *  work,
int *  lwork,
int *  info 
)

◆ DORGQR()

void DORGQR ( const int *  m,
const int *  n,
const int *  k,
double *  A,
const int *  ld,
const double *  tau,
double *  work,
const int *  lwork,
int *  info 
)

◆ DSYRK()

void DSYRK ( F77_CHARACTER_TYPE  ,
F77_CHARACTER_TYPE  ,
const int *  n,
const int *  k,
const double *  a1,
const double *  A,
const int *  ldA,
const double *  a2,
double *  C,
const int *  ldC 
)

◆ DTRMM()

void DTRMM ( F77_CHARACTER_TYPE  ,
F77_CHARACTER_TYPE  ,
F77_CHARACTER_TYPE  ,
F77_CHARACTER_TYPE  ,
const int *  m,
const int *  n,
const double *  a,
const double *  A,
const int *  ldA,
double *  B,
const int *  ldB 
)