Developer Reference for Intel® oneAPI Math Kernel Library for C
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)
The routine parameter descriptions are common for all implemented interfaces with the exception of data types that mostly refer here to the FORTRAN 77 standard types. Data types specific to the different interfaces are described in the section “Interfaces” below.
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
-
REAL for mkl_somatcopy . DOUBLE PRECISION for mkl_domatcopy . COMPLEX for mkl_comatcopy . DOUBLE COMPLEX for mkl_zomatcopy . This parameter scales the input matrix by alpha .
- a
-
REAL for mkl_somatcopy . DOUBLE PRECISION for mkl_domatcopy . COMPLEX for mkl_comatcopy . DOUBLE COMPLEX for mkl_zomatcopy . 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
-
REAL for mkl_somatcopy . DOUBLE PRECISION for mkl_domatcopy . COMPLEX for mkl_comatcopy . DOUBLE COMPLEX for mkl_zomatcopy . 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
-
REAL for mkl_somatcopy . DOUBLE PRECISION for mkl_domatcopy . COMPLEX for mkl_comatcopy . DOUBLE COMPLEX for mkl_zomatcopy . Output array. Contains the destination matrix.
Interfaces
FORTRAN 77:
SUBROUTINE mkl_somatcopy ( ordering, trans, rows, cols, alpha, a, lda, b, ldb )
CHARACTER*1 ordering, trans
INTEGER rows, cols, lda, ldb
REAL alpha, b(ldb,*), a(lda,*)
SUBROUTINE mkl_domatcopy ( ordering, trans, rows, cols, alpha, a, lda, b, ldb )
CHARACTER*1 ordering, trans
INTEGER rows, cols, lda, ldb
DOUBLE PRECISION alpha, b(ldb,*), a(lda,*)
SUBROUTINE mkl_comatcopy ( ordering, trans, rows, cols, alpha, a, lda, b, ldb )
CHARACTER*1 ordering, trans
INTEGER rows, cols, lda, ldb
COMPLEX alpha, b(ldb,*), a(lda,*)
SUBROUTINE mkl_zomatcopy ( ordering, trans, rows, cols, alpha, a, lda, b, ldb )
CHARACTER*1 ordering, trans
INTEGER rows, cols, lda, ldb
DOUBLE COMPLEX alpha, b(ldb,*), a(lda,*)