mkl_?omatcopy
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
)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 matrixA(the input matrix).
- cols
- The number of columns in matrixA(the input matrix).
- alpha
- This parameter scales the input matrix byalpha.
- a
- Input array.Ifordering='R'or'r', the size ofaislda*rows.Ifordering='C'or'c', the size ofaislda*cols.
- 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 equal to the number of row in matrixA.
- b
- Output array.Ifordering='R'or'r';
- Iftrans='T'or't'or'C'or'c', the size ofbisldb*cols.
- Iftrans='N'or'n'or'R'or'r', the size ofbisldb*rows.
Ifordering='C'or'c';- Iftrans='T'or't'or'C'or'c', the size ofbisldb*rows.
- Iftrans='N'or'n'or'R'or'r', the size ofbisldb*cols.
- 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.
- Iftrans='N'or'n'or'R'or'r',ldbmust be at least equal tocols.
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 equal tocols.
- Iftrans='N'or'n'or'R'or'r',ldbmust be at least equal torows.
Output Parameters
- b
- Output array.Contains the destination matrix.
Interfaces