Visible to Intel only — GUID: GUID-78D8E56C-5FA7-4B98-9E58-4B9AF223D4FD
Visible to Intel only — GUID: GUID-78D8E56C-5FA7-4B98-9E58-4B9AF223D4FD
?laein
Computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.
Syntax
call slaein( rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info )
call dlaein( rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info )
call claein( rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info )
call zlaein( rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info )
Include Files
- mkl.fi
Description
The routine ?laein uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue (wr,wi) of a real upper Hessenberg matrix H (for real flavors slaein/dlaein) or to the eigenvalue w of a complex upper Hessenberg matrix H (for complex flavors claein/zlaein).
Input Parameters
- rightv
-
LOGICAL.
If rightv = .TRUE., compute right eigenvector;
if rightv = .FALSE., compute left eigenvector.
- noinit
-
LOGICAL.
If noinit = .TRUE., no initial vector is supplied in (vr,vi) or in v (for complex flavors);
if noinit = .FALSE., initial vector is supplied in (vr,vi) or in v (for complex flavors).
- n
-
INTEGER. The order of the matrix H (n≥ 0).
- h
-
REAL for slaein
DOUBLE PRECISION for dlaein
COMPLEX for claein
DOUBLE COMPLEX for zlaein.
Array h(ldh, *).
The second dimension of h must be at least max(1, n). Contains the upper Hessenberg matrix H.
- ldh
-
INTEGER. The leading dimension of the array h; ldh≥ max(1, n).
- wr, wi
-
REAL for slaein
DOUBLE PRECISION for dlaein.
The real and imaginary parts of the eigenvalue of H whose corresponding right or left eigenvector is to be computed (for real flavors of the routine).
- w
-
COMPLEX for claein
DOUBLE COMPLEX for zlaein.
The eigenvalue of H whose corresponding right or left eigenvector is to be computed (for complex flavors of the routine).
- vr, vi
-
REAL for slaein
DOUBLE PRECISION for dlaein.
Arrays, dimension (n) each. Used for real flavors only. 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≠ 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.
- v
-
COMPLEX for claein
DOUBLE COMPLEX for zlaein.
Array, dimension (n). Used for complex flavors only. On entry, if noinit = .FALSE., v must contain a starting vector for inverse iteration; otherwise v need not be set.
- b
-
REAL for slaein
DOUBLE PRECISION for dlaein
COMPLEX for claein
DOUBLE COMPLEX for zlaein.
Workspace array b(ldb, *). The second dimension of b must be at least max(1, n).
- ldb
-
INTEGER. The leading dimension of the array b;
ldb≥n+1 for real flavors;
ldb≥ max(1, n) for complex flavors.
- work
-
REAL for slaein
DOUBLE PRECISION for dlaein.
Workspace array, dimension (n).
Used for real flavors only.
- rwork
-
REAL for claein
DOUBLE PRECISION for zlaein.
Workspace array, dimension (n).
Used for complex flavors only.
- eps3, smlnum
-
REAL for slaein/claein
DOUBLE PRECISION for dlaein/zlaein.
eps3 is a small machine-dependent value which is used to perturb close eigenvalues, and to replace zero pivots.
smlnum is a machine-dependent value close to underflow threshold. A suggested value for smlnum is slamch('s') * (n/slamch('p') for slaein/claein or dlamch('s') * (n/dlamch('p') for dlaein/zlaein. See lamch.
- bignum
-
REAL for slaein
DOUBLE PRECISION for dlaein.
bignum is a machine-dependent value close to overflow threshold. Used for real flavors only. A suggested value for bignum is 1 / slamch('s') for slaein/claein or 1 / dlamch('s') for dlaein/zlaein.
Output Parameters
- vr, vi
-
On exit, if wi = 0.0 (real eigenvalue), vr contains the computed real eigenvector; if wi≠ 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.
- v
-
On exit, v contains the computed eigenvector, 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|.
- info
-
INTEGER.
If info = 0, the execution is successful.
If info = 1, inverse iteration did not converge. For real flavors, vr is set to the last iterate, and so is vi, if wi≠ 0.0. For complex flavors, v is set to the last iterate.