Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?lar1v
Computes the (scaled) r -th column of the inverse of the submatrix in rows b1 through bn of tridiagonal matrix.
Syntax
call slar1v ( n , b1 , bn , lambda , d , l , ld , lld , pivmin , gaptol , z , wantnc , negcnt , ztz , mingma , r , isuppz , nrminv , resid , rqcorr , work )
call dlar1v ( n , b1 , bn , lambda , d , l , ld , lld , pivmin , gaptol , z , wantnc , negcnt , ztz , mingma , r , isuppz , nrminv , resid , rqcorr , work )
call clar1v ( n , b1 , bn , lambda , d , l , ld , lld , pivmin , gaptol , z , wantnc , negcnt , ztz , mingma , r , isuppz , nrminv , resid , rqcorr , work )
call zlar1v ( n , b1 , bn , lambda , d , l , ld , lld , pivmin , gaptol , z , wantnc , negcnt , ztz , mingma , r , isuppz , nrminv , resid , rqcorr , work )
Include Files
mkl.fi
Description
slar1v dlar1v clar1v zlar1v
The routine ?lar1v computes the (scaled) r -th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix L*D*L^{T} - λ*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, L*D*L^{T} - λ*I = L(+)*D(+)*L(+)^{T}
Progressive qd transform, L*D*L^{T} - λ*I = U(-)*D(-)*U(-)^{T} ,
Computation of the diagonal elements of the inverse of L*D*L^{T} - λ*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 L*D*L:code:`T` .
- b1
-
INTEGER . First index of the submatrix of L*D*L:code:`T` .
- bn
-
INTEGER . Last index of the submatrix of L*D*L:code:`T` .
- lambda
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v The shift. To compute an accurate eigenvector, lambda should be a good approximation to an eigenvalue of L*D*L:code:`T` .
- l
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v Array, DIMENSION ( n -1). The ( n -1) subdiagonal elements of the unit bidiagonal matrix L , in elements 1 to n -1.
- d
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v Array, DIMENSION ( n ). The n diagonal elements of the diagonal matrix D .
- ld
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v Array, DIMENSION ( n -1). The n -1 elements Li * Di .
- lld
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v Array, DIMENSION ( n -1). The n -1 elements Li * Li * Di .
- pivmin
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v The minimum pivot in the Sturm sequence.
- gaptol
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v Tolerance that indicates when eigenvector entries are negligible with respect to their contribution to the residual.
- z
-
REAL for slar1v DOUBLE PRECISION for dlar1v COMPLEX for clar1v DOUBLE COMPLEX for zlar1v Array, DIMENSION ( n ). 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 (L*D*L^{T} - lambda*I)^{-1} is largest in magnitude. If 1 ≤ r ≤ n , r is unchanged.
- work
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v Workspace array, DIMENSION (4* n ).
Output Parameters
- z
-
REAL for slar1v DOUBLE PRECISION for dlar1v COMPLEX for clar1v DOUBLE COMPLEX for zlar1v Array, DIMENSION ( n ). The (scaled) r -th column of the inverse. z(r) is returned to be 1.
- negcnt
-
INTEGER .
If wantnc is .TRUE. then negcnt = the number of pivots < pivmin in the matrix factorization L*D*L^{T} , and negcnt = -1 otherwise.
- ztz
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v The square of the 2-norm of z .
- mingma
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v The reciprocal of the largest (in magnitude) diagonal element of the inverse of L*D*L^{T} - lambda*I .
- r
-
On output, r is the twist index used to compute z . Ideally, r designates the position of the maximum entry in the eigenvector.
- isuppz
-
INTEGER . Array, DIMENSION (2). The support of the vector in Z , that is, the vector z is nonzero only in elements isuppz (1) through isuppz (2).
- nrminv
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v Equals 1/sqrt( ztz ) .
- resid
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v The residual of the FP vector. resid = ABS( mingma )/sqrt( ztz ) .
- rqcorr
-
REAL for slar1v / clar1v DOUBLE PRECISION for dlar1v / zlar1v The Rayleigh Quotient correction to lambda . rqcorr = mingma/ztz .