5 #ifndef FML_CPU_LINALG_BLAS_H
6 #define FML_CPU_LINALG_BLAS_H
10 #include "_blas_prototypes.h"
17 inline void gemm(
const char transa,
const char transb,
const int m,
18 const int n,
const int k,
const float alpha,
19 const float *restrict a,
const int lda,
const float *restrict b,
20 const int ldb,
const float beta,
float *restrict c,
const int ldc)
22 sgemm_(&transa, &transb, &m, &n, &k, &alpha, a, &lda, b, &ldb, &beta, c,
26 inline void gemm(
const char transa,
const char transb,
const int m,
27 const int n,
const int k,
const double alpha,
28 const double *restrict a,
const int lda,
const double *restrict b,
29 const int ldb,
const double beta,
double *restrict c,
const int ldc)
31 dgemm_(&transa, &transb, &m, &n, &k, &alpha, a, &lda, b, &ldb, &beta, c,
37 inline void syrk(
const char uplo,
const char trans,
const int n,
const int k,
38 const float alpha,
const float *restrict a,
const int lda,
39 const float beta,
float *restrict c,
const int ldc)
41 ssyrk_(&uplo, &trans, &n, &k, &alpha, a, &lda, &beta, c, &ldc);
44 inline void syrk(
const char uplo,
const char trans,
const int n,
const int k,
45 const double alpha,
const double *restrict a,
const int lda,
46 const double beta,
double *restrict c,
const int ldc)
48 dsyrk_(&uplo, &trans, &n, &k, &alpha, a, &lda, &beta, c, &ldc);