Performs scaling and out-place transposition/copying of matrices.
Fortran:
call mkl_somatcopy(ordering, trans, rows, cols, alpha, src, src_ld, dst, dst_ld)
call mkl_domatcopy(ordering, trans, rows, cols, alpha, src, src_ld, dst, dst_ld)
call mkl_comatcopy(ordering, trans, rows, cols, alpha, src, src_ld, dst, dst_ld)
call mkl_zomatcopy(ordering, trans, rows, cols, alpha, src, src_ld, dst, dst_ld)
C:
mkl_somatcopy(ordering, trans, rows, cols, alpha, SRC, src_stride, DST, dst_stride);
mkl_domatcopy(ordering, trans, rows, cols, alpha, SRC, src_stride, DST, dst_stride);
mkl_comatcopy(ordering, trans, rows, cols, alpha, SRC, src_stride, DST, dst_stride);
mkl_zomatcopy(ordering, trans, rows, cols, alpha, SRC, src_stride, DST, dst_stride);
The FORTRAN 77 interfaces are specified in the mkl_trans.fi include file and the C interfaces are specified in the mkl_trans.h include file. Always reference mkl_trans.h for the C interface correct resolution.
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.
Note that different arrays should not overlap.
CHARACTER*1. 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.
CHARACTER*1. 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'.
INTEGER. The number of matrix rows.
INTEGER. The number of matrix columns.
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.
REAL for mkl_somatcopy.
DOUBLE PRECISION for mkl_domatcopy.
COMPLEX for mkl_comatcopy.
DOUBLE COMPLEX for mkl_zomatcopy.
Array, DIMENSION src(scr_ld,*).
INTEGER. (Fortran interface). 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 max(1,rows) if ordering = 'C' or 'c', and max(1,cols) otherwise.
INTEGER. (C interface). 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 max(1,rows) if ordering = 'C' or 'c', and max(1,cols) otherwise.
REAL for mkl_somatcopy.
DOUBLE PRECISION for mkl_domatcopy.
COMPLEX for mkl_comatcopy.
DOUBLE COMPLEX for mkl_zomatcopy.
Array, DIMENSION dst(dst_ld,*).
INTEGER. (Fortran interface). 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 dst_lda 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,rows)
If trans = 'N' or 'n' or 'R' or 'r', this parameter must be at least max(1,cols)
If ordering = 'R' or 'r', 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)
INTEGER. (C interface). 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 dst_lda 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,rows)
If trans = 'N' or 'n' or 'R' or 'r', this parameter must be at least max(1,cols)
If ordering = 'R' or 'r', 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)
REAL for mkl_somatcopy.
DOUBLE PRECISION for mkl_domatcopy.
COMPLEX for mkl_comatcopy.
DOUBLE COMPLEX for mkl_zomatcopy.
Array, DIMENSION at least m.
Contains the destination matrix.
SUBROUTINE mkl_somatcopy ( ordering, trans, rows, cols, alpha, src, src_ld, dst, dst_ld ) CHARACTER*1 ordering, trans INTEGER rows, cols, src_ld, dst_ld REAL alpha, dst(dst_ld,*), src(src_ld,*)
SUBROUTINE mkl_domatcopy ( ordering, trans, rows, cols, alpha, src, src_ld, dst, dst_ld ) CHARACTER*1 ordering, trans INTEGER rows, cols, src_lda, dst_lda DOUBLE PRECISION alpha, dst(dst_ld,*), src(src_ld,*)
SUBROUTINE mkl_comatcopy ( ordering, trans, rows, cols, alpha, src, src_ld, dst, dst_ld ) CHARACTER*1 ordering, trans INTEGER rows, cols, src_lda, dst_lda COMPLEX alpha, dst(dst_ld,*), src(src_ld,*)
SUBROUTINE mkl_zomatcopy ( ordering, trans, rows, cols, alpha, src, src_ld, dst, dst_ld ) CHARACTER*1 ordering, trans INTEGER rows, cols, src_lda, dst_lda DOUBLE COMPLEX alpha, dst(dst_ld,*), src(src_ld,*)
void mkl_somatcopy(char ordering, char trans, size_t rows, size_t cols, float alpha, float *SRC, size_t src_stride, float *DST, size_t dst_stride);
void mkl_domatcopy(char ordering, char trans, size_t rows, size_t cols, double alpha, double *SRC, size_t src_stride, double *DST, size_t dst_stride);
void mkl_comatcopy(char ordering, char trans, size_t rows, size_t cols, MKL_Complex8 alpha, MKL_Complex8 *SRC, size_t src_stride, MKL_Complex8 *DST, size_t dst_stride);
void mkl_zomatcopy(char ordering, char trans, size_t rows, size_t cols, MKL_Complex16 alpha, MKL_Complex16 *SRC, size_t src_stride, MKL_Complex16 *DST, size_t dst_stride);
Copyright © 1994 - 2011, Intel Corporation. All rights reserved.