14template <
class T,
class I>
15void xgemv(CBLAS_LAYOUT Layout, CBLAS_TRANSPOSE TransA, I M, I N,
16 std::type_identity_t<T> alpha, std::type_identity_t<const T *> A,
17 I lda, std::type_identity_t<const T *> X, I incX,
18 std::type_identity_t<T> beta, T *Y, I incY);
20template <
class T,
class I>
21void xgemm(CBLAS_LAYOUT Layout, CBLAS_TRANSPOSE TransA, CBLAS_TRANSPOSE TransB,
22 I M, I N, I K, std::type_identity_t<T> alpha,
23 std::type_identity_t<const T *> A, I lda,
24 std::type_identity_t<const T *> B, I ldb,
25 std::type_identity_t<T> beta, T *C, I ldc);
27template <
class T,
class I>
28void xgemmt(CBLAS_LAYOUT Layout, CBLAS_UPLO uplo, CBLAS_TRANSPOSE TransA,
29 CBLAS_TRANSPOSE TransB, I N, I K, std::type_identity_t<T> alpha,
30 std::type_identity_t<const T *> A, I lda,
31 std::type_identity_t<const T *> B, I ldb,
32 std::type_identity_t<T> beta, T *C, I ldc);
34template <
class T,
class I>
35void xsymv(CBLAS_LAYOUT Layout, CBLAS_UPLO uplo, I N,
36 std::type_identity_t<T> alpha, std::type_identity_t<const T *> A,
37 I lda, std::type_identity_t<const T *> X, I incX,
38 std::type_identity_t<T> beta, T *Y, I incY);
40template <
class T,
class I>
41void xtrmv(CBLAS_LAYOUT Layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
42 CBLAS_DIAG Diag, I N, std::type_identity_t<const T *> A, I lda, T *X,
45template <
class T,
class I>
46void xtrsv(CBLAS_LAYOUT Layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
47 CBLAS_DIAG Diag, I N, std::type_identity_t<const T *> A, I lda, T *X,
50template <
class T,
class I>
51void xtrmm(CBLAS_LAYOUT Layout, CBLAS_SIDE Side, CBLAS_UPLO Uplo,
52 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, I M, I N,
53 std::type_identity_t<T> alpha, std::type_identity_t<const T *> A,
56template <
class T,
class I>
57void xsyrk(CBLAS_LAYOUT Layout, CBLAS_UPLO Uplo, CBLAS_TRANSPOSE Trans, I N,
58 I K, std::type_identity_t<T> alpha,
59 std::type_identity_t<const T *> A, I lda,
60 std::type_identity_t<T> beta, T *C, I ldc);
62template <
class T,
class I>
63void xtrsm(CBLAS_LAYOUT Layout, CBLAS_SIDE Side, CBLAS_UPLO Uplo,
64 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, I M, I N,
65 std::type_identity_t<T> alpha, std::type_identity_t<const T *> A,
68template <
class T,
class I>
69void xsytrf_rk(
const char *uplo,
const I *n, T *a,
const I *lda, T *e, I *ipiv,
70 T *work,
const I *lwork, I *info);
72template <
class T,
class I>
73void xtrtrs(
const char *uplo,
const char *trans,
const char *diag,
const I *n,
74 const I *nrhs, std::type_identity_t<const T *> A,
const I *ldA,
75 T *B,
const I *ldB, I *info);
77template <
class T,
class I>
78void xscal(I N, std::type_identity_t<T> alpha, T *X, I incX);
80template <
class T,
class I>
81void xpotrf(
const char *uplo, I n, T *a, I lda, I *info);
83template <
class T,
class I>
84void xlauum(
const char *uplo, I n, T *a, I lda, I *info);
86template <
class T,
class I>
87void xtrtri(
const char *uplo,
const char *diag, I n, T *a, I lda, I *info);
89template <
class T,
class I>
91 std::type_identity_t<T> alpha,
92 std::type_identity_t<const T *> a, I lda, I stridea,
93 std::type_identity_t<const T *> x, I incx, I stridex,
94 std::type_identity_t<T> beta, T *y, I incy, I stridey,
97template <
class T,
class I>
99 CBLAS_TRANSPOSE TransB, I M, I N, I K,
100 std::type_identity_t<T> alpha,
101 std::type_identity_t<const T *> A, I lda, I stridea,
102 std::type_identity_t<const T *> B, I ldb, I strideb,
103 std::type_identity_t<T> beta, T *C, I ldc, I stridec,
106template <
class T,
class I>
108 CBLAS_TRANSPOSE Trans, I N, I K,
109 std::type_identity_t<T> alpha,
110 std::type_identity_t<const T *> A, I lda, I stridea,
111 std::type_identity_t<T> beta, T *C, I ldc, I stridec,
114template <
class T,
class I>
116 CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag, I M, I N,
117 std::type_identity_t<T> alpha,
118 std::type_identity_t<const T *> A, I lda, I stridea,
119 T *B, I ldb, I strideb, I batch_size);
121template <
class T,
class I>