9enum class MatrixSide { Left, Right };
10enum class MatrixUplo { Upper, Lower };
11enum class MatrixTranspose { NoTrans, Trans, ConjTrans };
12enum class MatrixDiag { NonUnit, Unit };
16void gemm(MatrixTranspose transa, MatrixTranspose transb,
17 std::size_t m, std::size_t n, std::size_t k,
18 double alpha,
const double *A, std::size_t lda,
19 const double *B, std::size_t ldb,
20 double beta,
double *C, std::size_t ldc);
23void gemm(MatrixTranspose transa, MatrixTranspose transb,
24 std::size_t m, std::size_t n, std::size_t k,
25 std::complex<double> alpha,
const std::complex<double> *A, std::size_t lda,
26 const std::complex<double> *B, std::size_t ldb,
27 std::complex<double> beta, std::complex<double> *C, std::size_t ldc);
30void trsm(MatrixSide side, MatrixUplo uplo, MatrixTranspose trans, MatrixDiag diag,
31 std::size_t m, std::size_t n,
32 double alpha,
const double *A, std::size_t lda,
33 double *B, std::size_t ldb);
36void trsm(MatrixSide side, MatrixUplo uplo, MatrixTranspose trans, MatrixDiag diag,
37 std::size_t m, std::size_t n,
38 std::complex<double> alpha,
const std::complex<double> *A, std::size_t lda,
39 std::complex<double> *B, std::size_t ldb);
42void syrk(MatrixUplo uplo, MatrixTranspose trans,
43 std::size_t n, std::size_t k,
44 double alpha,
const double *A, std::size_t lda,
45 double beta,
double *C, std::size_t ldc);
48void syrk(MatrixUplo uplo, MatrixTranspose trans,
49 std::size_t n, std::size_t k,
50 std::complex<double> alpha,
const std::complex<double> *A, std::size_t lda,
51 std::complex<double> beta, std::complex<double> *C, std::size_t ldc);