Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

mkl_?omatadd

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

Syntax

call mkl_somatadd
(
ordering
,
transa
,
transb
,
m
,
n
,
alpha
,
a
,
lda
,
beta
,
b
,
ldb
,
c
,
ldc
)
call mkl_domatadd
(
ordering
,
transa
,
transb
,
m
,
n
,
alpha
,
a
,
lda
,
beta
,
b
,
ldb
,
c
,
ldc
)
call mkl_comatadd
(
ordering
,
transa
,
transb
,
m
,
n
,
alpha
,
a
,
lda
,
beta
,
b
,
ldb
,
c
,
ldc
)
call mkl_zomatadd
(
ordering
,
transa
,
transb
,
m
,
n
,
alpha
,
a
,
lda
,
beta
,
b
,
ldb
,
c
,
ldc
)
Include Files
  • mkl.fi
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
.
Parameter descriptions are common for all implemented interfaces with the exception of data types that refer here to the FORTRAN 77 standard types. Data types specific to the different interfaces are described in the section
"Interfaces"
below.
Note that different arrays must not overlap.
Input Parameters
ordering
CHARACTER*1
.
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
CHARACTER*1
.
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'