Visible to Intel only — GUID: GUID-D6A3F880-70E5-4459-B4CD-DD664A821E7C
Visible to Intel only — GUID: GUID-D6A3F880-70E5-4459-B4CD-DD664A821E7C
mkl_?omatcopy2
Performs two-strided scaling and out-of-place transposition/copying of matrices.
Syntax
void mkl_somatcopy2 (char ordering, char trans, size_t rows, size_t cols, const float alpha, const float * A, size_t lda, size_t stridea, float * B, size_t ldb, size_t strideb);
void mkl_domatcopy2 (char ordering, char trans, size_t rows, size_t cols, const double alpha, const double * A, size_t lda, size_t stridea, double * B, size_t ldb, size_t strideb);
void mkl_comatcopy2 (char ordering, char trans, size_t rows, size_t cols, const MKL_Complex8 alpha, const MKL_Complex8 * A, size_t lda, size_t stridea, MKL_Complex8 * B, size_t ldb, size_t strideb);
void mkl_zomatcopy2 (char ordering, char trans, size_t rows, size_t cols, const MKL_Complex16 alpha, const MKL_Complex16 * A, size_t lda, size_t stridea, MKL_Complex16 * B, size_t ldb, size_t strideb);
Include Files
- mkl.h
Description
The mkl_?omatcopy2 routine performs two-strided 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)
Normally, matrices in the BLAS or LAPACK are specified by a single stride index. For instance, in the column-major order, A(2,1) is stored in memory one element away from A(1,1), but A(1,2) is a leading dimension away. The leading dimension in this case is at least the number of rows of the source matrix. If a matrix has two strides, then both A(2,1) and A(1,2) may be an arbitrary distance from A(1,1).
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
-
number of rows for the input matrix A. Must be at least zero.
- cols
-
Number of columns for the input matrix A. Must be at least zero.
- alpha
-
Scaling factor for the matrix transposition or copy.
- a
-
Array holding the input matrix A. Must have size at least lda * n for column major ordering and at least lda * m for row major ordering.
- lda
-
Leading dimension of the matrix A. If matrices are stored using column major layout, lda is the number of elements in the array between adjacent columns of the matrix and must be at least stridea * (m-1) + 1. If using row major layout, lda is the number of elements between adjacent rows of the matrix and must be at least stridea * (n-1) + 1.
- stridea
-
The second stride of the matrix A. For column major layout, stridea is the number of elements in the array between adjacent rows of the matrix. For row major layout stridea is the number of elements between adjacent columns of the matrix. In both cases stridea must be at least 1.
- b
-
Array holding the output matrix B.
trans = transpose::nontrans trans = transpose::trans, or trans = transpose::conjtrans Column major B is m x n matrix. Size of array b must be at least ldb * n. B is n x m matrix. Size of array b must be at least ldb * m. Row major B is m x n matrix. Size of array b must be at least ldb * m. B is n x m matrix. Size of array b must be at least ldb * n. - ldb
-
The leading dimension of the matrix B. Must be positive.
trans = transpose::nontrans trans = transpose::trans, or trans = transpose::conjtrans Column major ldb must be at least strideb * (m-1) + 1. ldb must be at least strideb * (n-1) + 1. Row major ldb must be at least strideb * (n-1) + 1. ldb must be at least strideb * (m-1) + 1. - strideb
-
The second stride of the matrix B. For column major layout, strideb is the number of elements in the array between adjacent rows of the matrix. For row major layout, strideb is the number of elements between adjacent columns of the matrix. In both cases strideb must be at least 1.
Output Parameters
- b
-
Array, size at least m.
Contains the destination matrix.