Visible to Intel only — GUID: GUID-B4584828-531D-4385-8F63-22C760C9B4B4
Visible to Intel only — GUID: GUID-B4584828-531D-4385-8F63-22C760C9B4B4
mkl_?imatcopy
Performs scaling and in-place transposition/copying of matrices.
Syntax
void mkl_simatcopy (const char ordering, const char trans, size_t rows, size_t cols, const float alpha, float * AB, size_t lda, size_t ldb);
void mkl_dimatcopy (const char ordering, const char trans, size_t rows, size_t cols, const double alpha, double * AB, size_t lda, size_t ldb);
void mkl_cimatcopy (const char ordering, const char trans, size_t rows, size_t cols, const MKL_Complex8 alpha, MKL_Complex8 * AB, size_t lda, size_t ldb);
void mkl_zimatcopy (const char ordering, const char trans, size_t rows, size_t cols, const MKL_Complex16 alpha, MKL_Complex16 * AB, size_t lda, size_t ldb);
Include Files
- mkl.h
Description
The mkl_?imatcopy routine performs scaling and in-place transposition/copying of matrices. A transposition operation can be a normal matrix copy, a transposition, a conjugate transposition, or just a conjugation. The operation is defined as follows:
AB := alpha*op(AB).
Different arrays must not overlap.
Input Parameters
- ordering
-
Ordering of the matrix storage.
If ordering = 'R' or 'r', the ordering is row-major.
If ordering = 'C' or 'c', the ordering is column-major.
- trans
-
Parameter that specifies the operation type.
If trans = 'N' or 'n', op(AB)=AB and the matrix AB is assumed unchanged on input.
If trans = 'T' or 't', it is assumed that AB should be transposed.
If trans = 'C' or 'c', it is assumed that AB should be conjugate transposed.
If trans = 'R' or 'r', it is assumed that AB should be only conjugated.
If the data is real, then trans = 'R' is the same as trans = 'N', and trans = 'C' is the same as trans = 'T'.
- rows
-
The number of rows in matrix AB before the transpose operation.
- cols
-
The number of columns in matrix AB before the transpose operation.
- ab
-
Array.
- alpha
-
This parameter scales the input matrix by alpha.
- lda
-
Distance between the first elements in adjacent columns (in the case of the column-major order) or rows (in the case of the row-major order) in the source matrix; measured in the number of elements.
This parameter must be at least rows if ordering = 'C' or 'c', and max(1,cols) otherwise.
- ldb
-
Distance between the first elements in adjacent columns (in the case of the column-major order) or rows (in the case of the row-major order) in the destination matrix; measured in the number of elements.
To determine the minimum value of ldb on output, consider the following guideline:
If ordering = 'C' or 'c', then
If trans = 'T' or 't' or 'C' or 'c', this parameter must be at least max(1,cols)
If trans = 'N' or 'n' or 'R' or 'r', this parameter must be at least max(1,rows)
If ordering = 'R' or 'r', then
If trans = 'T' or 't' or 'C' or 'c', this parameter must be at least max(1,rows)
If trans = 'N' or 'n' or 'R' or 'r', this parameter must be at least max(1,cols)
Output Parameters
- ab
-
Array.
Contains the matrix AB.
Application Notes
For threading to be active in mkl_?imatcopy, the pointer AB must be aligned on the 64-byte boundary. This requirement can be met by allocating AB with mkl_malloc.