Performs two-strided scaling and out-of-place transposition/copying of matrices.
Fortran:
call mkl_somatcopy2(ordering, trans, rows, cols, alpha, src, src_row, src_col, dst, dst_row, dst_col)
call mkl_domatcopy2(ordering, trans, rows, cols, alpha, src, src_row, src_col, dst, dst_row, dst_col)
call mkl_comatcopy2(ordering, trans, rows, cols, alpha, src, src_row, src_col, dst, dst_row, dst_col)
call mkl_zomatcopy2(ordering, trans, rows, cols, alpha, src, src_row, src_col, dst, dst_row, dst_col)
C:
mkl_somatcopy2(ordering, trans, rows, cols, alpha, SRC, src_row, src_col, DST, dst_row, dst_col);
mkl_domatcopy2(ordering, trans, rows, cols, alpha, SRC, src_row, src_col, DST, dst_row, dst_col);
mkl_comatcopy2(ordering, trans, rows, cols, alpha, SRC, src_row, src_col, DST, dst_row, dst_col);
mkl_zomatcopy2(ordering, trans, rows, cols, alpha, SRC, src_row, src_col, DST, dst_row, dst_col);
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_?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 the single stride. If a matrix has two strides, then both A(2,1) and A(1,2) may be an arbitrary distance from A(1,1).
The routine parameter descriptions are common for all implemented interfaces with the exception of data types that 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_somatcopy2.
DOUBLE PRECISION for mkl_domatcopy2.
COMPLEX for mkl_comatcopy2.
DOUBLE COMPLEX for mkl_zomatcopy2.
This parameter scales the input matrix by alpha.
REAL for mkl_somatcopy2.
DOUBLE PRECISION for mkl_domatcopy2.
COMPLEX for mkl_comatcopy2.
DOUBLE COMPLEX for mkl_zomatcopy2.
Array, DIMENSION src(*).
INTEGER. Distance between the first elements in adjacent rows in the source matrix; measured in the number of elements.
This parameter must be at least max(1,rows).
INTEGER. Distance between the first elements in adjacent columns in the source matrix; measured in the number of elements.
This parameter must be at least max(1,cols).
REAL for mkl_somatcopy2.
DOUBLE PRECISION for mkl_domatcopy2.
COMPLEX for mkl_comatcopy2.
DOUBLE COMPLEX for mkl_zomatcopy2.
Array, DIMENSION dst(*).
INTEGER. Distance between the first elements in adjacent rows in the destination matrix; measured in the number of elements.
To determine the minimum value of dst_row on output, consider the following guideline:
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. Distance between the first elements in adjacent columns 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 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)
REAL for mkl_somatcopy2.
DOUBLE PRECISION for mkl_domatcopy2.
COMPLEX for mkl_comatcopy2.
DOUBLE COMPLEX for mkl_zomatcopy2.
Array, DIMENSION at least m.
Contains the destination matrix.
SUBROUTINE mkl_somatcopy2 ( ordering, trans, rows, cols, alpha, src, src_row, src_col, dst, dst_row, dst_col ) CHARACTER*1 ordering, trans INTEGER rows, cols, src_row, src_col, dst_row, dst_col REAL alpha, dst(*), src(*)
SUBROUTINE mkl_domatcopy2 ( ordering, trans, rows, cols, alpha, src, src_row, src_col, dst, dst_row, dst_col ) CHARACTER*1 ordering, trans INTEGER rows, cols, src_row, src_col, dst_row, dst_col DOUBLE PRECISION alpha, dst(*), src(*)
SUBROUTINE mkl_comatcopy2 ( ordering, trans, rows, cols, alpha, src, src_row, src_col, dst, dst_row, dst_col ) CHARACTER*1 ordering, trans INTEGER rows, cols, src_row, src_col, dst_row, dst_col COMPLEX alpha, dst(*), src(*)
SUBROUTINE mkl_zomatcopy2 ( ordering, trans, rows, cols, alpha, src, src_row, src_col, dst, dst_row, dst_col ) CHARACTER*1 ordering, trans INTEGER rows, cols, src_row, src_col, dst_row, dst_col DOUBLE COMPLEX alpha, dst(*), src(*)
void mkl_somatcopy2(char ordering, char trans, size_t rows, size_t cols, float *alpha, float *SRC, size_t src_row, size_t src_col, float *DST, size_t dst_row, size_t dst_col);
void mkl_domatcopy2(char ordering, char trans, size_t rows, size_t cols, float *alpha, double *SRC, size_t src_row, size_t src_col, double *DST, size_t dst_row, size_t dst_col);
void mkl_comatcopy2(char ordering, char trans, size_t rows, size_t cols, MKL_Complex8 *alpha, MKL_Complex8 *SRC, size_t src_row, size_t src_col, MKL_Complex8 *DST, size_t dst_row, size_t dst_col);
void mkl_zomatcopy2(char ordering, char trans, size_t rows, size_t cols, MKL_Complex16 *alpha, MKL_Complex16 *SRC, size_t src_row, size_t src_col, MKL_Complex16 *DST, size_t dst_row, size_t dst_col);
Copyright © 1994 - 2011, Intel Corporation. All rights reserved.