Computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition.
The routine computes the eigenvalues of a Hessenberg matrix
H, and, optionally, the matrices
Zfrom the Schur decomposition
Tis an upper quasi-triangular/triangular matrix (the Schur form), and
Zis the orthogonal/unitary matrix of Schur vectors.
Zmay be postmultiplied into an input orthogonal/unitary matrix
Qso that this routine can give the Schur factorization of a matrix
Awhich has been reduced to the Hessenberg form
Hby the orthogonal/unitary matrix
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
?laqr0and, for large enough deflation window size, it may be called by
?laqr3. This routine is identical to
?laqr0except that it calls
- LOGICAL.If, the full Schur formwantt=.TRUE.Tis required;If, only eigenvalues are required.wantt=.FALSE.
- LOGICAL.If, the matrix of Schur vectorswantz=.TRUE.Zis required;If, Schur vectors are not required.wantz=.FALSE.
- INTEGER. The order of the Hessenberg matrixH.(.n≥ 0)
- INTEGER.It is assumed thatHis already upper triangular in rows and columns1:andilo-1, and ifihi+1:nthenilo> 1.h(ilo,ilo-1) = 0iloandihiare normally set by a previous call tocgebal, and then passed tocgehrdwhen the matrix output bycgebalis reduced to Hessenberg form. Otherwise,iloandihishould be set to1and