mkl_?omatcopy2
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, is stored
in memory one element away from , but
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
and
may be an arbitrary distance from .
A
(2,1)A
(1,1)A
(1,2)A
(2,1)A
(1,2)A
(1,1)Different arrays must not overlap.
Input Parameters
- ordering
- Ordering of the matrix storage.Ifordering='R'or'r', the ordering is row-major.Ifordering='C'or'c', the ordering is column-major.
- trans
- Parameter that specifies the operation type.Iftrans='N'or'n',op(and the matrixA)=AAis assumed unchanged on input.Iftrans='T'or't', it is assumed thatAshould be transposed.Iftrans='C'or'c', it is assumed thatAshould be conjugate transposed.Iftrans='R'or'r', it is assumed thatAshould be only conjugated.If the data is real, thentrans='R'is the same astrans='N', andtrans='C'is the same astrans='T'.
- rows
- The number of rows in matrixB(the source matrix).
- cols
- The number of columns in matrixB(the source matrix).
- alpha
- This parameter scales the input matrix byalpha.
- a
- Array.
- lda
- Ifordering='R'or'r',ldarepresents the number of elements in arrayabetween adjacent rows of matrixA;ldamust be at least equal to the number of columns of matrixA.Ifordering='C'or'c',ldarepresents the number of elements in arrayabetween adjacent columns of matrixA;ldamust be at least 1 and not more than the number of columns in matrixA.
- stridea
- Ifordering='R'or'r',stridearepresents the number of elements in arrayabetween adjacent columns of matrixA.strideamust be at least 1 and not more than the number of columns in matrixA.Ifordering='C'or'c',stridearepresents the number of elements in arrayabetween adjacent rows of matrixA.strideamust be at least equal to the number of columns in matrixA.
- b
- Array.
- ldb
- Ifordering='R'or'r',ldbrepresents the number of elements in arraybbetween adjacent rows of matrixB.
- Iftrans='T'or't'or'C'or'c',ldbmust be at least equal torows/strideb.
- Iftrans='N'or'n'or'R'or'r',ldbmust be at least equal tocols/strideb.
Ifordering='C'or'c',ldbrepresents the number of elements in arraybbetween adjacent columns of matrixB.- Iftrans='T'or't'or'C'or'c',ldbmust be at least 1 and not more thanrows/strideb.
- Iftrans='N'or'n'or'R'or'r',ldbmust be at least 1 and not more thancols/strideb.
- strideb
- Ifordering='R'or'r',stridebrepresents the number of elements in arraybbetween adjacent columns of matrixB.
- Iftrans='T'or't'or'C'or'c',stridebmust be at least 1 and not more thanrows(the number of rows in matrixB).
- Iftrans='N'or'n'or'R'or'r',stridebmust be at least 1 and not more thancols(the number of columns in matrixB).
Ifordering='C'or'c',stridebrepresents the number of elements in arraybbetween adjacent rows of matrixB.- Iftrans='T'or't'or'C'or'c',stridebmust be at least equal torows(the number of rows in matrixB).
- Iftrans='N'or'n'or'R'or'r',stridebmust be at least equal tocols(the number of columns in matrixB).
Output Parameters
- b
- Array, size at leastm.Contains the destination matrix.
Interfaces