1010#include < string>
1111#include < stdexcept>
1212
13+
14+ #ifdef __MKL_RI
15+ #include < mkl_trans.h>
16+ #endif
17+
1318namespace RI
1419{
1520
@@ -211,4 +216,47 @@ namespace Blas_Interface
211216 }
212217}
213218
219+
220+
221+ #ifdef __MKL_RI
222+
223+ namespace Blas_Interface
224+ {
225+ inline void imatcopy (const char ordering, const char trans, size_t rows, size_t cols, const float alpha, float * AB, size_t lda, size_t ldb)
226+ {
227+ mkl_simatcopy (ordering, trans, rows, cols, alpha, AB, lda, ldb);
228+ }
229+ inline void imatcopy (const char ordering, const char trans, size_t rows, size_t cols, const double alpha, double * AB, size_t lda, size_t ldb)
230+ {
231+ mkl_dimatcopy (ordering, trans, rows, cols, alpha, AB, lda, ldb);
232+ }
233+ inline void imatcopy (const char ordering, const char trans, size_t rows, size_t cols, const std::complex <float > alpha, std::complex <float > * AB, size_t lda, size_t ldb)
234+ {
235+ mkl_cimatcopy (ordering, trans, rows, cols, alpha, AB, lda, ldb);
236+ }
237+ inline void imatcopy (const char ordering, const char trans, size_t rows, size_t cols, const std::complex <double > alpha, std::complex <double > * AB, size_t lda, size_t ldb)
238+ {
239+ mkl_zimatcopy (ordering, trans, rows, cols, alpha, AB, lda, ldb);
240+ }
241+
242+ inline void omatcopy (char ordering, char trans, size_t rows, size_t cols, const float alpha, const float * A, size_t lda, float * B, size_t ldb)
243+ {
244+ mkl_somatcopy (ordering, trans, rows, cols, alpha, A, lda, B, ldb);
245+ }
246+ inline void omatcopy (char ordering, char trans, size_t rows, size_t cols, const double alpha, const double * A, size_t lda, double * B, size_t ldb)
247+ {
248+ mkl_domatcopy (ordering, trans, rows, cols, alpha, A, lda, B, ldb);
249+ }
250+ inline void omatcopy (char ordering, char trans, size_t rows, size_t cols, const std::complex <float > alpha, const std::complex <float > * A, size_t lda, std::complex <float > * B, size_t ldb)
251+ {
252+ mkl_comatcopy (ordering, trans, rows, cols, alpha, A, lda, B, ldb);
253+ }
254+ inline void omatcopy (char ordering, char trans, size_t rows, size_t cols, const std::complex <double > alpha, const std::complex <double > * A, size_t lda, std::complex <double > * B, size_t ldb)
255+ {
256+ mkl_zomatcopy (ordering, trans, rows, cols, alpha, A, lda, B, ldb);
257+ }
258+ }
259+
260+ #endif
261+
214262}
0 commit comments