Visible to Intel only — GUID: GUID-2C5C30E9-2B33-4F4E-AD5D-94398CA57FAD
Visible to Intel only — GUID: GUID-2C5C30E9-2B33-4F4E-AD5D-94398CA57FAD
mkl_?omatcopy
Performs scaling and out-place transposition/copying of matrices.
Syntax
void mkl_somatcopy (char ordering, char trans, size_t rows, size_t cols, const float alpha, const float * A, size_t lda, float * B, size_t ldb);
void mkl_domatcopy (char ordering, char trans, size_t rows, size_t cols, const double alpha, const double * A, size_t lda, double * B, size_t ldb);
void mkl_comatcopy (char ordering, char trans, size_t rows, size_t cols, const MKL_Complex8 alpha, const MKL_Complex8 * A, size_t lda, MKL_Complex8 * B, size_t ldb);
void mkl_zomatcopy (char ordering, char trans, size_t rows, size_t cols, const MKL_Complex16 alpha, const MKL_Complex16 * A, size_t lda, MKL_Complex16 * B, size_t ldb);
Include Files
- mkl.h
Description
The mkl_?omatcopy routine performs scaling and out-of-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:
B := alpha*op(A)
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(A)=A and the matrix A is assumed unchanged on input.
If trans = 'T' or 't', it is assumed that A should be transposed.
If trans = 'C' or 'c', it is assumed that A should be conjugate transposed.
If trans = 'R' or 'r', it is assumed that A 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 A (the input matrix).
- cols
-
The number of columns in matrix A (the input matrix).
- alpha
-
This parameter scales the input matrix by alpha.
- a
-
Input array.
If ordering = 'R' or 'r', the size of a is lda*rows.
If ordering = 'C' or 'c', the size of a is lda*cols.
- lda
-
If ordering = 'R' or 'r', lda represents the number of elements in array a between adjacent rows of matrix A; lda must be at least equal to the number of columns of matrix A.
If ordering = 'C' or 'c', lda represents the number of elements in array a between adjacent columns of matrix A; lda must be at least equal to the number of row in matrix A.
- b
-
Output array.
If ordering = 'R' or 'r';
If trans = 'T' or 't' or 'C' or 'c', the size of b is ldb * cols.
If trans = 'N' or 'n' or 'R' or 'r', the size of b is ldb * rows.
If ordering = 'C' or 'c';
If trans = 'T' or 't' or 'C' or 'c', the size of b is ldb * rows.
If trans = 'N' or 'n' or 'R' or 'r', the size of b is ldb * cols.
- ldb
-
If ordering = 'R' or 'r', ldb represents the number of elements in array b between adjacent rows of matrix B.
If trans = 'T' or 't' or 'C' or 'c', ldb must be at least equal to rows.
If trans = 'N' or 'n' or 'R' or 'r', ldb must be at least equal to cols.
If ordering = 'C' or 'c', ldb represents the number of elements in array b between adjacent columns of matrix B.
If trans = 'T' or 't' or 'C' or 'c', ldb must be at least equal to cols.
If trans = 'N' or 'n' or 'R' or 'r', ldb must be at least equal to rows.
Output Parameters
- b
-
Output array.
Contains the destination matrix.