LAPACK
3.4.2
LAPACK: Linear Algebra PACKage
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | dlaein (RIGHTV, NOINIT, N, H, LDH, WR, WI, VR, VI, B, LDB, WORK, EPS3, SMLNUM, BIGNUM, INFO) |
DLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration. |
subroutine dlaein | ( | logical | RIGHTV, |
logical | NOINIT, | ||
integer | N, | ||
double precision, dimension( ldh, * ) | H, | ||
integer | LDH, | ||
double precision | WR, | ||
double precision | WI, | ||
double precision, dimension( * ) | VR, | ||
double precision, dimension( * ) | VI, | ||
double precision, dimension( ldb, * ) | B, | ||
integer | LDB, | ||
double precision, dimension( * ) | WORK, | ||
double precision | EPS3, | ||
double precision | SMLNUM, | ||
double precision | BIGNUM, | ||
integer | INFO | ||
) |
DLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.
Download DLAEIN + dependencies [TGZ] [ZIP] [TXT]DLAEIN uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg matrix H.
[in] | RIGHTV | RIGHTV is LOGICAL = .TRUE. : compute right eigenvector; = .FALSE.: compute left eigenvector. |
[in] | NOINIT | NOINIT is LOGICAL = .TRUE. : no initial vector supplied in (VR,VI). = .FALSE.: initial vector supplied in (VR,VI). |
[in] | N | N is INTEGER The order of the matrix H. N >= 0. |
[in] | H | H is DOUBLE PRECISION array, dimension (LDH,N) The upper Hessenberg matrix H. |
[in] | LDH | LDH is INTEGER The leading dimension of the array H. LDH >= max(1,N). |
[in] | WR | WR is DOUBLE PRECISION |
[in] | WI | WI is DOUBLE PRECISION The real and imaginary parts of the eigenvalue of H whose corresponding right or left eigenvector is to be computed. |
[in,out] | VR | VR is DOUBLE PRECISION array, dimension (N) |
[in,out] | VI | VI is DOUBLE PRECISION array, dimension (N) On entry, if NOINIT = .FALSE. and WI = 0.0, VR must contain a real starting vector for inverse iteration using the real eigenvalue WR; if NOINIT = .FALSE. and WI.ne.0.0, VR and VI must contain the real and imaginary parts of a complex starting vector for inverse iteration using the complex eigenvalue (WR,WI); otherwise VR and VI need not be set. On exit, if WI = 0.0 (real eigenvalue), VR contains the computed real eigenvector; if WI.ne.0.0 (complex eigenvalue), VR and VI contain the real and imaginary parts of the computed complex eigenvector. The eigenvector is normalized so that the component of largest magnitude has magnitude 1; here the magnitude of a complex number (x,y) is taken to be |x| + |y|. VI is not referenced if WI = 0.0. |
[out] | B | B is DOUBLE PRECISION array, dimension (LDB,N) |
[in] | LDB | LDB is INTEGER The leading dimension of the array B. LDB >= N+1. |
[out] | WORK | WORK is DOUBLE PRECISION array, dimension (N) |
[in] | EPS3 | EPS3 is DOUBLE PRECISION A small machine-dependent value which is used to perturb close eigenvalues, and to replace zero pivots. |
[in] | SMLNUM | SMLNUM is DOUBLE PRECISION A machine-dependent value close to the underflow threshold. |
[in] | BIGNUM | BIGNUM is DOUBLE PRECISION A machine-dependent value close to the overflow threshold. |
[out] | INFO | INFO is INTEGER = 0: successful exit = 1: inverse iteration did not converge; VR is set to the last iterate, and so is VI if WI.ne.0.0. |
Definition at line 172 of file dlaein.f.