?unghr
?unghr
Generates the complex unitary matrix Q determined by
?gehrd
.Syntax
lapack_int
LAPACKE_cunghr
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
lapack_complex_float
*
a
,
lapack_int
lda
,
const
lapack_complex_float
*
tau
);
lapack_int
LAPACKE_zunghr
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
lapack_complex_double
*
a
,
lapack_int
lda
,
const
lapack_complex_double
*
tau
);
Include Files
- mkl.h
Description
The routine is intended to be used following a call to . and .
cgehrd
/zgehrd
, which reduces a complex matrix A
to upper Hessenberg form H
by a unitary similarity transformation: A
= Q*H*Q
H
?gehrd
represents the matrix Q
as a product of ihi
-ilo
elementary reflectors. Here ilo
and ihi
are values determined by cgebal
/zgebal
when balancing the matrix; if the matrix has not been balanced, ilo
= 1ihi
= n

where
Q
22
occupies rows and columns ilo
to ihi
.Input Parameters
- matrix_layout
- Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- n
- The order of the matrixQ().n≥0
- ilo,ihi
- These must be the same parametersiloandihi, respectively, as supplied to?gehrd. (If, thenn> 01. If≤ilo≤ihi≤nn= 0, thenandilo= 1.)ihi= 0
- a,tau
- Arrays:a(size max(1,contains details of the vectors which define the elementary reflectors, as returned bylda*n))?gehrd.The dimension oftaumust be at least max (1,n-1).
- lda
- The leading dimension ofa; at least max(1,n).
Output Parameters
- a
- Overwritten by then-by-nunitary matrixQ.
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 computed matrix
Q
differs from the exact result by a matrix E
such that ||
, where E
||2
= O
(ε
)ε
is the machine precision.The approximate number of real floating-point operations is
(16/3)(
.ihi
-ilo
)3
The real counterpart of this routine is orghr.