_COMQR2(3F) _COMQR2(3F)
COMQR2, SCOMQR2 - EISPACK routine. This subroutine finds the
eigenvalues and eigenvectors of a COMPLEX UPPER Hessenberg matrix by the
QR method. The eigenvectors of a COMPLEX GENERAL matrix can also be
found if CORTH has been used to reduce this general matrix to
Hessenberg form.
subroutine comqr2(nm,n,low,igh,ortr,orti,hr,hi,wr,wi,zr,zi,ierr)
integer nm, n, low, igh, ierr
double precision hr(nm,n), hi(nm,n), wr(n), wi(n)
double precision zr(nm,n), zi(nm,n), ortr(igh), orti(igh)
subroutine scomqr2(nm,n,low,igh,ortr,orti,hr,hi,wr,wi,zr,zi,ierr)
integer nm, n, low, igh, ierr
real hr(nm,n), hi(nm,n), wr(n), wi(n)
real zr(nm,n), zi(nm,n), ortr(igh), orti(igh)
On INPUT
NM must be set to the row dimension of two-dimensional array parameters
as declared in the calling program dimension statement.
N is the order of the matrix.
LOW and IGH are integers determined by the balancing subroutine CBAL.
If CBAL has not been used, set LOW=1, IGH=N.
ORTR and ORTI contain information about the unitary trans- formations
used in the reduction by CORTH, if performed. Only elements LOW through
IGH are used. If the eigenvectors of the Hessenberg matrix are desired,
set ORTR(J) and ORTI(J) to 0.0E0 for these elements.
HR and HI contain the real and imaginary parts, respectively, of the
complex upper Hessenberg matrix. Their lower triangles below the
subdiagonal contain further information about the transformations which
were used in the reduction by CORTH, if performed. If the eigenvectors
of the Hessenberg matrix are desired, these elements may be arbitrary.
On OUTPUT
ORTR , ORTI, and the upper Hessenberg portions of HR and HI have been
destroyed.
WR and WI contain the real and imaginary parts, respectively, of the
eigenvalues. If an error exit is made, the eigenvalues should be correct
for indices IERR+1,...,N.
ZR and ZI contain the real and imaginary parts, respectively, of the
Page 1
_COMQR2(3F) _COMQR2(3F)
eigenvectors. The eigenvectors are unnormalized. If an error exit is
made, none of the eigenvectors has been found.
IERR is set to Zero for normal return, J if the J-th
eigenvalue has not been
determined after a total of 30*N iterations. Calls CSROOT for complex
square root. Calls PYTHAG(A,B) for sqrt(A**2 + B**2). Calls CDIV for
complex division. Questions and comments should be directed to B. S.
Garbow, APPLIED MATHEMATICS DIVISION, ARGONNE NATIONAL LABORATORY
PPPPaaaaggggeeee 2222 [ Back ]
|