Developer Reference

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

?laqr4

Computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition.

Syntax

call slaqr4
(
wantt
,
wantz
,
n
,
ilo
,
ihi
,
h
,
ldh
,
wr
,
wi
,
iloz
,
ihiz
,
z
,
ldz
,
work
,
lwork
,
info
)
call dlaqr4
(
wantt
,
wantz
,
n
,
ilo
,
ihi
,
h
,
ldh
,
wr
,
wi
,
iloz
,
ihiz
,
z
,
ldz
,
work
,
lwork
,
info
)
call claqr4
(
wantt
,
wantz
,
n
,
ilo
,
ihi
,
h
,
ldh
,
w
,
iloz
,
ihiz
,
z
,
ldz
,
work
,
lwork
,
info
)
call zlaqr4
(
wantt
,
wantz
,
n
,
ilo
,
ihi
,
h
,
ldh
,
w
,
iloz
,
ihiz
,
z
,
ldz
,
work
,
lwork
,
info
)
Include Files
  • mkl.fi
Description
The routine computes the eigenvalues of a Hessenberg matrix
H
, and, optionally, the matrices
T
and
Z
from the Schur decomposition
H
=
Z
*
T
*
Z
H
, where
T
is an upper quasi-triangular/triangular matrix (the Schur form), and
Z
is the orthogonal/unitary matrix of Schur vectors.
Optionally
Z
may be postmultiplied into an input orthogonal/unitary matrix
Q
so that this routine can give the Schur factorization of a matrix
A
which has been reduced to the Hessenberg form
H
by the orthogonal/unitary matrix
Q
:
A
=
Q
*
H
*
Q
H
= (
QZ
)*
H
*(
QZ
)
H
.
This routine implements one level of recursion for
?laqr0
. It is a complete implementation of the small bulge multi-shift QR algorithm. It may be called by
?laqr0
and, for large enough deflation window size, it may be called by
?laqr3
. This routine is identical to
?laqr0
except that it calls
?laqr2
instead of
?laqr3
.
Input Parameters
wantt
LOGICAL
.
If
wantt
=
.TRUE.
, the full Schur form
T
is required;
If
wantt
=
.FALSE.
, only eigenvalues are required.
wantz
LOGICAL
.
If
wantz
=
.TRUE.
, the matrix of Schur vectors
Z
is required;
If
wantz
=
.FALSE.
, Schur vectors are not required.
n
INTEGER
. The order of the Hessenberg matrix
H
.
(
n
≥ 0)
.
ilo
,
ihi
INTEGER
.
It is assumed that
H
is already upper triangular in rows and columns
1:
ilo
-1
and
ihi
+1:
n
, and if
ilo
> 1
then
h
(
ilo
,
ilo
-1) = 0
.
ilo
and
ihi
are normally set by a previous call to
cgebal
, and then passed to
cgehrd
when the matrix output by
cgebal
is reduced to Hessenberg form. Otherwise,
ilo
and
ihi
should be set to
1
and