Developer Reference

Contents

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.
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(
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'
.
rows
The number of rows in matrix
A
(the input matrix).
cols
The number of columns in matrix
A
(the input matrix).
alpha
This parameter scales the input matrix by
alpha
.
a
Input array.
If
ordering
=
'R'
or
'r'
, the size of
a
is
lda
*
rows
.
If
ordering
=
'C'
or
'c'
, the size of
a
is
lda
*
cols
.
lda
If
ordering
=
'R'
or
'r'
,
lda
represents the number of elements in array
a
between adjacent rows of matrix
A
;
lda
must be at least equal to the number of columns of matrix
A
.
If
ordering
=
'C'
or
'c'
,
lda
represents the number of elements in array
a
between adjacent columns of matrix
A
;
lda
must be at least equal to the number of row in matrix
A
.
b
Output array.
If
ordering
=
'R'
or
'r'
;
  • If
    trans
    =
    'T'
    or
    't'
    or
    'C'
    or
    'c'
    , the size of
    b
    is
    ldb
    *
    cols
    .
  • If
    trans
    =
    'N'
    or
    'n'
    or
    'R'
    or
    'r'
    , the size of
    b
    is
    ldb
    *
    rows
    .
If
ordering
=
'C'
or
'c'
;
  • If
    trans
    =
    'T'
    or
    't'
    or
    'C'
    or
    'c'
    , the size of
    b
    is
    ldb
    *
    rows
    .
  • If
    trans
    =
    'N'
    or
    'n'
    or
    'R'
    or
    'r'
    , the size of
    b
    is
    ldb
    *
    cols
    .
ldb
If
ordering
=
'R'
or
'r'
,
ldb
represents the number of elements in array
b
between adjacent rows of matrix
B
.
  • If
    trans
    =
    'T'
    or
    't'
    or
    'C'
    or
    'c'
    ,
    ldb
    must be at least equal to
    rows
    .
  • If
    trans
    =
    'N'
    or
    'n'
    or
    'R'
    or
    'r'
    ,
    ldb
    must be at least equal to
    cols
    .
If
ordering
=
'C'
or
'c'
,
ldb
represents the number of elements in array
b
between adjacent columns of matrix
B
.
  • If
    trans
    =
    'T'
    or
    't'
    or
    'C'
    or
    'c'
    ,
    ldb
    must be at least equal to
    cols
    .
  • If
    trans
    =
    'N'
    or
    'n'
    or
    'R'
    or
    'r'
    ,
    ldb
    must be at least equal to
    rows
    .
Output Parameters
b
Output array.
Contains the destination matrix.
Interfaces

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.