Developer Reference for Intel® oneAPI Math Kernel Library for C
?lar1va
Computes scaled eigenvector corresponding to given eigenvalue.
Syntax
void slar1va ( MKL_INT*n , MKL_INT*b1 , MKL_INT*bn , float*lambda , float*d , float*l , float*ld , float*lld , float*pivmin , float*gaptol , float*z , MKL_INT*wantnc , MKL_INT*negcnt , float*ztz , float*mingma , MKL_INT*r , MKL_INT*isuppz , float*nrminv , float*resid , float*rqcorr , float*work );
void dlar1va ( MKL_INT*n , MKL_INT*b1 , MKL_INT*bn , double*lambda , double*d , double*l , double*ld , double*lld , double*pivmin , double*gaptol , double*z , MKL_INT*wantnc , MKL_INT*negcnt , double*ztz , double*mingma , MKL_INT*r , MKL_INT*isuppz , double*nrminv , double*resid , double*rqcorr , double*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 0 to n -2 .
- 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 ], i =0,…, n -2 .
- lld
-
REAL for slar1va DOUBLE PRECISION for dlar1va Array of size n -1
The n -1 elements l [ i ]* l ] i ]* d [ i ], i =0,…, n -2 .
- 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 -1] equals 1.
- negcnt
-
INTEGER
If wantnc is non-zero 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
array of size 2
The support of the vector in z , i.e., the vector z is non-zero only in elements isuppz [0] and isuppz [1] .
- 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 .