5 #ifndef FML_MPI_LINALG_INTERNALS_PBLAS_H
6 #define FML_MPI_LINALG_INTERNALS_PBLAS_H
10 #include "pblas_prototypes.h"
17 inline void gemm(
const char transa,
const char transb,
const int m,
const int n,
18 const int k,
const float alpha,
const float *a,
const int *desca,
19 const float *b,
const int *descb,
const float beta,
float *c,
23 psgemm_(&transa, &transb, &m, &n, &k, &alpha, a, &ij, &ij, desca, b,
24 &ij, &ij, descb, &beta, c, &ij, &ij, descc);
27 inline void gemm(
const char transa,
const char transb,
const int m,
const int n,
28 const int k,
const double alpha,
const double *a,
const int *desca,
29 const double *b,
const int *descb,
const double beta,
double *c,
33 pdgemm_(&transa, &transb, &m, &n, &k, &alpha, a, &ij, &ij, desca, b,
34 &ij, &ij, descb, &beta, c, &ij, &ij, descc);
39 inline void syrk(
const char uplo,
const char trans,
const int n,
const int k,
40 const float alpha,
const float *a,
const int *desca,
41 const float beta,
float *c,
const int *descc)
44 pssyrk_(&uplo, &trans, &n, &k, &alpha, a, &ij, &ij, desca, &beta, c, &ij,
48 inline void syrk(
const char uplo,
const char trans,
const int n,
const int k,
49 const double alpha,
const double *a,
const int *desca,
50 const double beta,
double *c,
const int *descc)
53 pdsyrk_(&uplo, &trans, &n, &k, &alpha, a, &ij, &ij, desca, &beta, c, &ij,
59 inline void tran(
const int m,
const int n,
const float alpha,
const float *a,
60 const int *desca,
const float beta,
float *c,
const int *descc)
63 pstran_(&m, &n, &alpha, a, &ij, &ij, desca, &beta, c, &ij, &ij, descc);
66 inline void tran(
const int m,
const int n,
const double alpha,
const double *a,
67 const int *desca,
const double beta,
double *c,
const int *descc)
70 pdtran_(&m, &n, &alpha, a, &ij, &ij, desca, &beta, c, &ij, &ij, descc);
75 inline void geadd(
const char trans,
const int m,
const int n,
76 const float alpha,
const float *a,
const int *desca,
const float beta,
77 float *c,
const int *descc)
80 psgeadd_(&trans, &m, &n, &alpha, a, &ij, &ij, desca, &beta, c, &ij, &ij,
84 inline void geadd(
const char trans,
const int m,
const int n,
85 const double alpha,
const double *a,
const int *desca,
const double beta,
86 double *c,
const int *descc)
89 pdgeadd_(&trans, &m, &n, &alpha, a, &ij, &ij, desca, &beta, c, &ij, &ij,