Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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
slaein dlaein claein zlaein
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.