Developer Reference

Contents

mkl_?omatadd

Scales and sums two matrices including in addition to performing out-of-place transposition operations.

Syntax

void
mkl_somatadd
(
char
ordering
,
char
transa
,
char
transb
,
size_t
m
,
size_t
n
,
const
float
alpha
,
const
float
*
A
,
size_t
lda
,
const
float
beta
,
const
float
*
B
,
size_t
ldb
,
float
*
C
,
size_t
ldc
);
void
mkl_domatadd
(
char
ordering
,
char
transa
,
char
transb
,
size_t
m
,
size_t
n
,
const
double
alpha
,
const
double
*
A
,
size_t
lda
,
const
double
beta
,
const
double
*
B
,
size_t
ldb
,
double
*
C
,
size_t
ldc
);
void
mkl_comatadd
(
char
ordering
,
char
transa
,
char
transb
,
size_t
m
,
size_t
n
,
const
MKL_Complex8
alpha
,
const
MKL_Complex8
*
A
,
size_t
lda
,
const
MKL_Complex8
beta
,
const
MKL_Complex8
*
B
,
size_t
ldb
,
MKL_Complex8
*
C
,
size_t
ldc
);
void
mkl_zomatadd
(
char
ordering
,
char
transa
,
char
transb
,
size_t
m
,
size_t
n
,
const
MKL_Complex16
alpha
,
const
MKL_Complex16
*
A
,
size_t
lda
,
const
MKL_Complex16
beta
,
const
MKL_Complex16
*
B
,
size_t
ldb
,
MKL_Complex16
*
C
,
size_t
ldc
);
Include Files
  • mkl.h
Description
The
mkl_?omatadd
routine scales and adds two matrices, as well as performing out-of-place transposition operations. A transposition operation can be no operation, a transposition, a conjugate transposition, or a conjugation (without transposition). The following out-of-place memory movement is done:
C := alpha*op(A) + beta*op(B)
where the
op(A)
and
op(B)
operations are transpose, conjugate-transpose, conjugate (no transpose), or no transpose, depending on the values of
transa
and
transb
. If no transposition of the source matrices is required,
m
is the number of rows and
n
is the number of columns in the source matrices
A
and
B
. In this case, the output matrix
C
is
m
-by-
n
.
Note that 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.
transa
Parameter that specifies the operation type on matrix
A
.
If
transa
=
'N'
or
'n'
,
op(
A
)=
A
and the matrix
A
is assumed unchanged on input.
If
transa
=
'T'
or
't'
, it is assumed that
A
should be transposed.
If
transa
=
'C'
or
'c'
, it is assumed that
A
should be conjugate transposed.
If
transa
=
'R'
or
'r'
, it is assumed that
A
should be conjugated (and not transposed).
If the data is real, then
transa
=
'R'
is the same as
transa
=
'N'
, and
transa
=
'C'
is the same as
transa
=
'T'
.
transb
Parameter that specifies the operation type on matrix
B
.
If
transb
=
'N'
or
'n'
,
op(
B
)=
B
and the matrix
B
is assumed unchanged on input.
If
transb
=
'T'
or
't'
, it is assumed that
B
should be transposed.
If
transb
=
'C'
or
'c'
, it is assumed that
B
should be conjugate transposed.
If
transb
=
'R'
or
'r'
, it is assumed that
B
should be conjugated (and not transposed).
If the data is real, then
transb
=
'R'
is the same as
transb
=
'N'
, and
transb
=
'C'
is the same as
transb
=
'T'
.
m
The number of matrix rows in op(
A
), op(
B
), and
C
.
n
The number of matrix columns in op(
A
), op(
B
), and
C
.
alpha
This parameter scales the input matrix by
alpha
.
a
Array.
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
A
; measured in the number of elements.
For
ordering
=
'C'
or
'c'
: when
transa
=
'N'
,
'n'
,
'R'
, or
'r'
,
lda
must be at least
max(1,
m
)
; otherwise
lda
must be
max(1,
n
)
.
For
ordering
=
'R'
or
'r'
: when
transa
=
'N'
,
'n'
,
'R'
, or
'r'
,
lda
must be at least
max(1,
n
)
; otherwise
lda
must be
max(1,
m
)
.
beta
This parameter scales the input matrix by
beta
.
b
Array.
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 source matrix
B
; measured in the number of elements.
For
ordering
=
'C'
or
'c'
: when
transa
=
'N'
,
'n'
,
'R'
, or
'r'
,
ldb
must be at least
max(1,
m
)
; otherwise
ldb
must be
max(1,
n
)
.
For
ordering
=
'R'
or
'r'
: when
transa
=
'N'
,
'n'
,
'R'
, or
'r'
,
ldb
must be at least
max(1,
n
)
; otherwise
ldb
must be
max(1,
m
)
.
ldc
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
C
; measured in the number of elements.
If
ordering
=
'C'
or
'c'
, then
ldc
must be at least
max(1,
m
)
, otherwise
ldc
must be at least
max(1,
n
)
.
Output Parameters
c
Array.
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