Developer Reference

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

?ungtr

Generates the complex unitary matrix Q determined by
?hetrd
.

Syntax

call cungtr
(
uplo
,
n
,
a
,
lda
,
tau
,
work
,
lwork
,
info
)
call zungtr
(
uplo
,
n
,
a
,
lda
,
tau
,
work
,
lwork
,
info
)
call ungtr
(
a
,
tau
[
,
uplo
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine explicitly generates the
n
-by-
n
unitary matrix
Q
formed by
?hetrd
when reducing a complex Hermitian matrix
A
to tridiagonal form:
A
=
Q*T*Q
H
. Use this routine after a call to
?hetrd
.
Input Parameters
uplo
CHARACTER*1
.
Must be
'U'
or
'L'
.
Use the same
uplo
as supplied to
?hetrd
.
n
INTEGER
.
The order of the matrix
Q
(
n
0
).
a
,
tau
,
work
COMPLEX
for
cungtr
DOUBLE COMPLEX
for
zungtr
.
Arrays:
a
(
lda
,*)
is the array
a
as returned by
?hetrd
.
The second dimension of
a
must be at least max(1,
n
).
tau
(*)
is the array
tau
as returned by
?hetrd
.
The dimension of
tau
must be at least max(1,
n
-1).
work
is a workspace array, its dimension
max(1,
lwork
)
.
lda
INTEGER
.
The leading dimension of
a
; at least max(1,
n
).
lwork
INTEGER
.
The size of the
work
array (
lwork
n
).
If
lwork
= -1
, then a workspace query is assumed; the routine only calculates the optimal size of the
work
array, returns this value as the first entry of the
work
array, and no error message related to
lwork
is issued by xerbla .
See
Application Notes
for the suggested value of
lwork
.
Output Parameters
a
Overwritten by the unitary matrix
Q
.
work
(1)
If
info
= 0
, on exit
work
(1)
contains the minimum value of
lwork
required for optimum performance. Use this
lwork