_CINVIT(3F) _CINVIT(3F)
CINVIT, SCINVIT - EISPACK routine. This subroutine finds those
eigenvectors of A COMPLEX UPPER Hessenberg matrix corresponding to
specified eigenvalues, using inverse iteration.
subroutine cinvit(nm, n, ar, ai, wr, wi, select, mm, m, zr, zi,
1 ierr, rm1, rm2, rv1, rv2)
integer nm, n, mm, m, ierr
double precision ar(nm,n), ai(nm,n), wr(n), wi(n)
double precision zr(nm,mm), zi(nm,mm)
double precision rm1(n,n), rm2(n,n), rv1(n), rv2(n)
logical select(n)
subroutine scinvit(nm, n, ar, ai, wr, wi, select, mm, m, zr, zi,
1 ierr, rm1, rm2, rv1, rv2)
integer nm, n, mm, m, ierr
real ar(nm,n), ai(nm,n), wr(n), wi(n)
real zr(nm,mm), zi(nm,mm)
real rm1(n,n), rm2(n,n), rv1(n), rv2(n)
logical select(n)
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.
AR and AI contain the real and imaginary parts, respectively, of 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 COMLR, 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 eigenvectors to be
found. On OUTPUT
AR , AI, WI, and SELECT are unaltered.
WR may have been altered since close eigenvalues are perturbed slightly
in searching for independent eigenvectors.
Page 1
_CINVIT(3F) _CINVIT(3F)
M is the number of eigenvectors actually found.
ZR and ZI contain the real and imaginary parts, respectively, of the
eigenvectors. 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
eigenvectors have been specified, -K if the iteration
corresponding to the K-th
value fails, -(N+K) if both error situations occur.
RM1 , RM2, RV1, and RV2 are temporary storage arrays. The ALGOL procedure
GUESSVEC appears in CINVIT 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
PPPPaaaaggggeeee 2222 [ Back ]
|