Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
Contents

?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
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
= 1
and
ihi
=
n
.
Use the routine unghr to generate
Q
explicitly as a square matrix. The matrix
Q
has the structure:
Equation
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 matrix
Q
(
n
0
).
ilo
,
ihi
These must be the same parameters
ilo
and
ihi
, respectively, as supplied to
?gehrd
. (If
n
> 0
, then
1
ilo
ihi
n
. If
n
= 0, then
ilo
= 1
and
ihi
= 0
.)
a
,
tau
Arrays:
a
(size max(1,
lda
*
n
))
contains details of the vectors which define the elementary reflectors, as returned by
?gehrd
.
tau
contains further details of the elementary reflectors, as returned by
?gehrd
.
The dimension of
tau
must be at least max (1,
n
-1).
lda
The leading dimension of
a
; at least max(1,
n
).
Output Parameters
a
Overwritten by the
n
-by-
n
unitary matrix
Q
.
Return Values
This function returns a value
info
.
If
info
=0
, the execution is successful.
If
info
=
-i
, the
i
-th parameter had an illegal value.
Application Notes
The computed matrix
Q
differs from the exact result by a matrix
E
such that
||
E
||
2
=
O
(
ε
)
, where
ε
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.

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