?unmql
?unmql
Multiplies a complex matrix by the unitary matrix Q of the QL factorization formed by
?geqlf
.Syntax
lapack_int
LAPACKE_cunmql
(
int
matrix_layout
,
char
side
,
char
trans
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
const
lapack_complex_float
*
a
,
lapack_int
lda
,
const
lapack_complex_float
*
tau
,
lapack_complex_float
*
c
,
lapack_int
ldc
);
lapack_int
LAPACKE_zunmql
(
int
matrix_layout
,
char
side
,
char
trans
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
const
lapack_complex_double
*
a
,
lapack_int
lda
,
const
lapack_complex_double
*
tau
,
lapack_complex_double
*
c
,
lapack_int
ldc
);
Include Files
- mkl.h
Description
The routine multiplies a complex , where
m
-by-n
matrix C
by Q
or Q
H
Q
is the unitary matrix Q
of the QL
factorization formed by the routine geqlf. Depending on the parameters (overwriting the result over
side
and trans
, the routine unmql can form one of the matrix products Q*C
, Q
H
*C
, C*Q
, or C*Q
H
C
).Input Parameters
- matrix_layout
- Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- side
- Must be either'L'or'R'.If,side='L'QorQis applied toHCfrom the left.If,side='R'QorQis applied toHCfrom the right.
- trans
- Must be either'N'or'C'.If, the routine multipliestrans='N'CbyQ.If, the routine multipliestrans='C'CbyQ.H
- m
- The number of rows in the matrixC().m≥0
- n
- The number of columns inC().n≥0
- k
- The number of elementary reflectors whose product defines the matrixQ. Constraints:0if≤k≤m;side='L'0if≤k≤n.side='R'
- a,tau,c
- Arrays:a,tau,c.The size ofamust be:For column major layout regardless ofside, max(1,lda*k).Forside= 'L' and row major layout, max(1,lda*m).Forside= 'R' and row major layout, max(1,lda*n).On entry, thei-th column ofamust contain the vector which defines the elementary reflector, for i = 1,2,...,H(i)k, as returned bycgeqlf/zgeqlfin the lastkcolumns of its array argumenta.must contain the scalar factor of the elementary reflectortau[i- 1], as returned byH(i)cgeqlf/zgeqlf.The size oftaumust be at least max(1,k).c(size max(1,contains theldc*n) for column major layout and max(1,ldc*mfor row major layout)m-by-nmatrixC.
- lda
- The leading dimension ofa.If,side='L'lda≥max(1,m)for column major layout and max(1,.k) for row major layoutIf,side='R'lda≥max(1,n)for column major layout and max(1,.k) for row major layout
- ldc
- The leading dimension ofc;ldc≥max(1,m)for column major layout and max(1,.n) for row major layout
Output Parameters
- c
- Overwritten by the productQ*C,QH*C,C*Q, orC*Q(as specified byHsideandtrans).
Return Values
This function returns a value
info
.If , the execution is successful.
info
=0If , the
info
= -i
i
-th parameter had an illegal value.Application Notes
The real counterpart of this routine is ormql.