INVIT(3F)
INVIT, SINVIT - EISPACK routine. This subroutine finds those eigenvectors of a REAL UPPER Hessenberg matrix corresponding to specified eigenvalues, using inverse iteration.
As shipped in IRIX 6.5.5. Unchanged since IRIX 6.5.
NAME INVIT, SINVIT - EISPACK routine. This subroutine finds those eigenvectors of a REAL UPPER Hessenberg matrix corresponding to specified eigenvalues, using inverse iteration. SYNOPSYS subroutine invit(nm,n,a,wr,wi,select,mm,m,z,ierr,rm1,rv1,rv2) integer nm, n, mm, m, ierr double precision a(nm,n), wr(n), wi(n), z(nm,mm) double precision rm1(n,n), rv1(n), rv2(n) logical select(n) subroutine sinvit(nm,n,a,wr,wi,select,mm,m,z,ierr,rm1,rv1,rv2) integer nm, n, mm, m, ierr real a(nm,n), wr(n), wi(n), z(nm,mm) real rm1(n,n), rv1(n), rv2(n) logical select(n) DESCRIPTION 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. A contains the Hessenberg matrix. WR and WI contain the real and imaginary parts, respectively, of the eigenvalues of the matrix. The eigenvalues MUST be stored in a manner IDENTICAL to that of subroutine HQR, which recognizes possible splitting of the matrix. SELECT specifies the eigenvectors to be found. The eigenvector corresponding to the J-th eigenvalue is specified by setting SELECT(J) to .TRUE. MM should be set to an upper bound for the number of columns required to store the eigenvectors to be found. NOTE that two columns are required to store the eigenvector corresponding to a complex eigenvalue. On OUTPUT A and WI are unaltered. WR may have been altered since close eigenvalues are perturbed slightly in searching for independent eigenvectors. SELECT may have been altered. If the elements corresponding to a pair of conjugate complex eigenvalues were each initially set to .TRUE., the program resets the second of the two elements to .FALSE. M is the number of columns actually used to store the eigenvectors. Z contains the real and imaginary parts of the eigenvectors. If the next selected eigenvalue is real, the next column of Z contains its eigenvector. If the eigenvalue is complex, the next two columns of Z contain the real and imaginary parts of its eigenvector. The eigenvectors are normalized so that the component of largest magnitude is 1. Any vector which fails the acceptance test is set to zero. IERR is set to ZERO for normal return, -(2*N+1) if more than MM columns of Z are necessary to store the eigenvectors corresponding to the specified eigenvalues. -K if the iteration corresponding to the K-th value fails, -(N+K) if both error situations occur. RM1 , RV1, and RV2 are temporary storage arrays. Note that RM1 is square of dimension N by N and, augmented by two columns of Z, is the transpose of the corresponding ALGOL B array. The ALGOL procedure GUESSVEC appears in INVIT in line. 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