Developer Reference

Contents

mkl_?imatcopy

Performs scaling and in-place transposition/copying of matrices.

Syntax

void
mkl_simatcopy
(
const
char
ordering
,
const
char
trans
,
size_t
rows
,
size_t
cols
,
const
float
alpha
,
float
*
AB
,
size_t
lda
,
size_t
ldb
);
void
mkl_dimatcopy
(
const
char
ordering
,
const
char
trans
,
size_t
rows
,
size_t
cols
,
const
double
alpha
,
double
*
AB
,
size_t
lda
,
size_t
ldb
);
void
mkl_cimatcopy
(
const
char
ordering
,
const
char
trans
,
size_t
rows
,
size_t
cols
,
const
MKL_Complex8
alpha
,
MKL_Complex8
*
AB
,
size_t
lda
,
size_t
ldb
);
void
mkl_zimatcopy
(
const
char
ordering
,
const
char
trans
,
size_t
rows
,
size_t
cols
,
const
MKL_Complex16
alpha
,
MKL_Complex16
*
AB
,
size_t
lda
,
size_t
ldb
);
Include Files
  • mkl.h
Description
The
mkl_?imatcopy
routine performs scaling and in-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:
AB
:=
alpha
*op(
AB
).
Different arrays must not overlap.
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(
AB
)=
AB
and the matrix
AB
is assumed unchanged on input.
If
trans
=
'T'
or
't'
, it is assumed that
AB
should be transposed.
If
trans
=
'C'
or
'c'
, it is assumed that
AB
should be conjugate transposed.
If
trans
=
'R'
or
'r'
, it is assumed that
AB
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
AB
before the transpose operation.
cols
The number of columns in matrix
AB
before the transpose operation.
ab
Array.
alpha
This parameter scales the input matrix by
alpha
.
lda
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
rows
if
ordering
=
'C'
or
'c'
, and
max(1,
cols
)
otherwise.
ldb
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
ldb
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,
    cols
    )
  • If
    trans
    =
    'N'
    or
    'n'
    or
    'R'
    or
    'r'
    , this parameter must be at least
    max(1,
    rows
    )
If
ordering
=
'R'
or
'r'
, 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
    )
Output Parameters
ab
Array.
Contains the matrix
AB
.
Interfaces

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804