Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?lar1va
Computes scaled eigenvector corresponding to given eigenvalue.
Syntax
call slar1va ( n , b1 , bn , lambda , d , l , ld , lld , pivmin , gaptol , z , wantnc , negcnt , ztz , mingma , r , isuppz , nrminv , resid , rqcorr , work )
call dlar1va ( n , b1 , bn , lambda , d , l , ld , lld , pivmin , gaptol , z , wantnc , negcnt , ztz , mingma , r , isuppz , nrminv , resid , rqcorr , work )
Include Files
mkl_scalapack.h
Description
?slar1va computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - λI . When λ is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude. The following steps accomplish this computation :
Stationary qd transform, LDLT - λI = L+D+L+T ,
Progressive qd transform, LDLT - λI = U-D-U-T ,
Computation of the diagonal elements of the inverse of LDLT - λI by combining the above transforms, and choosing r as the index where the diagonal of the inverse is (one of the) largest in magnitude.
Computation of the (scaled) r -th column of the inverse using the twisted factorization obtained by combining the top part of the stationary and the bottom part of the progressive transform.
Input Parameters
- n
-
INTEGER The order of the matrix LDLT .
- b1
-
INTEGER First index of the submatrix of LDLT .
- bn
-
INTEGER Last index of the submatrix of LDLT .
- lambda
-
REAL for slar1va DOUBLE PRECISION for dlar1va The shift λ . In order to compute an accurate eigenvector, lambda should be a good approximation to an eigenvalue of LDLT .
- l
-
REAL for slar1va DOUBLE PRECISION for dlar1va Array of size n -1
The ( n -1) subdiagonal elements of the unit bidiagonal matrix L , in elements 1 to n -1 .
- d
-
REAL for slar1va DOUBLE PRECISION for dlar1va Array of size n The n diagonal elements of the diagonal matrix D .
- ld
-
REAL for slar1va DOUBLE PRECISION for dlar1va Array of size n -1
The n -1 elements l ( i )* d ( i ) .
- lld
-
REAL for slar1va DOUBLE PRECISION for dlar1va Array of size n -1
The n -1 elements l ( i )* l ( i )* d ( i ) .
- pivmin
-
REAL for slar1va DOUBLE PRECISION for dlar1va The minimum pivot in the Sturm sequence.
- gaptol
-
REAL for slar1va DOUBLE PRECISION for dlar1va Tolerance that indicates when eigenvector entries are negligible with respect to their contribution to the residual.
- z
-
REAL for slar1va DOUBLE PRECISION for dlar1va Array of size n On input, all entries of z must be set to 0.
- wantnc
-
LOGICAL Specifies whether negcnt has to be computed.
- r
-
INTEGER The twist index for the twisted factorization used to compute z . On input, 0 ≤ r ≤ n . If r is input as 0, r is set to the index where ( LDLT - σI ) -1 is largest in magnitude. If 1 ≤ r ≤ n , r is unchanged. Ideally, r designates the position of the maximum entry in the eigenvector.
- work
-
REAL for slar1va DOUBLE PRECISION for dlar1va (Workspace) array of size 4* n
OUTPUT Parameters
z
On output, z contains the (scaled) r -th column of the inverse. The scaling is such that z ( r ) equals 1.
- negcnt
-
INTEGER
If wantnc is .TRUE. then negcnt = the number of pivots < pivmin in the matrix factorization LDLT , and negcnt = -1 otherwise.
- ztz
-
REAL for slar1va DOUBLE PRECISION for dlar1va The square of the 2-norm of z .
- mingma
-
REAL for slar1va DOUBLE PRECISION for dlar1va The reciprocal of the largest (in magnitude) diagonal element of the inverse of LDLT - σI .
- r
-
On output, r contains the twist index used to compute z .
isuppz
INTEGER array of size 2
The support of the vector in z , i.e., the vector z is non-zero only in elements isuppz (1) through isuppz (2) .
- nrminv
-
REAL for slar1va DOUBLE PRECISION for dlar1vanrminv = 1/ SQRT ( ztz )
- resid
-
REAL for slar1va DOUBLE PRECISION for dlar1va The residual of the FP vector. resid = ABS ( mingma )/ SQRT ( ztz )
- rqcorr
-
REAL for slar1va DOUBLE PRECISION for dlar1va The Rayleigh Quotient correction to lambda .