mkl_?omatadd
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.Ifordering='R'or'r', the ordering is row-major.Ifordering='C'or'c', the ordering is column-major.
- transa
- Parameter that specifies the operation type on matrixA.Iftransa='N'or'n',op(and the matrixA)=AAis assumed unchanged on input.Iftransa='T'or't', it is assumed thatAshould be transposed.Iftransa='C'or'c', it is assumed thatAshould be conjugate transposed.Iftransa='R'or'r', it is assumed thatAshould be conjugated (and not transposed).If the data is real, thentransa='R'is the same astransa='N', andtransa='C'is the same astransa='T'.
- transb
- Parameter that specifies the operation type on matrixB.Iftransb='N'or'n',op(and the matrixB)=BBis assumed unchanged on input.Iftransb='T'or't', it is assumed thatBshould be transposed.Iftransb='C'or'c', it is assumed thatBshould be conjugate transposed.Iftransb='R'or'r', it is assumed thatBshould be conjugated (and not transposed).If the data is real, thentransb='R'is the same astransb='N', andtransb='C'is the same astransb='T'.
- m
- The number of matrix rows in op(A), op(B), andC.
- n
- The number of matrix columns in op(A), op(B), andC.
- alpha
- This parameter scales the input matrix byalpha.
- 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 matrixA; measured in the number of elements.Forordering='C'or'c': whentransa='N','n','R', or'r',ldamust be at leastmax(1,; otherwisem)ldamust bemax(1,.n)Forordering='R'or'r': whentransa='N','n','R', or'r',ldamust be at leastmax(1,; otherwisen)ldamust bemax(1,.m)
- beta
- This parameter scales the input matrix bybeta.
- 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 matrixB; measured in the number of elements.Forordering='C'or'c': whentransa='N','n','R', or'r',ldbmust be at leastmax(1,; otherwisem)ldbmust bemax(1,.n)Forordering='R'or'r': whentransa='N','n','R', or'r',ldbmust be at leastmax(1,; otherwisen)ldbmust bemax(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 matrixC; measured in the number of elements.Ifordering='C'or'c', thenldcmust be at leastmax(1,, otherwisem)ldcmust be at leastmax(1,.n)
Output Parameters
- c
- Array.
Interfaces