?lar1va
?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 L
D
L
T
- λ
I
λ
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 ofby combining the above transforms, and choosingLDLT-λIras 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
- The order of the matrix.LDLT
- b1
- First index of the submatrix of.LDLT
- bn
- Last index of the submatrix of.LDLT
- lambda
- The shiftλ. In order to compute an accurate eigenvector,lambdashould be a good approximation to an eigenvalue of.LDLT
- l
- Array of sizen-1The (n-1) subdiagonal elements of the unit bidiagonal matrixL, in elements0 to.n-2
- d
- Array of sizenThendiagonal elements of the diagonal matrixD.
- ld
- Array of sizen-1Then-1 elements.l[i]*d[i],i=0,...,n-2
- lld
- Array of sizen-1Then-1 elements.l[i]*l]i]*d[i],i=0,...,n-2
- pivmin
- The minimum pivot in the Sturm sequence.
- gaptol
- Tolerance that indicates when eigenvector entries are negligible with respect to their contribution to the residual.
- z
- Array of sizenOn input, all entries ofzmust be set to 0.
- wantnc
- Specifies whethernegcnthas to be computed.
- r
- The twist index for the twisted factorization used to computez.On input, 0≤r≤n. Ifris input as 0,ris set to the index where ()LDLT-σI-1is largest in magnitude. If 1≤r≤n,ris unchanged.Ideally,rdesignates the position of the maximum entry in the eigenvector.
- work
- (Workspace) array of size 4*n
OUTPUT Parameters
- z
- On output,zcontains the (scaled)r-th column of the inverse. The scaling is such thatequals 1.z[r-1]
- negcnt
- Ifwantncis non-zerothennegcnt= the number of pivots <pivminin the matrix factorization, andLDLTnegcnt= -1 otherwise.
- ztz
- The square of the 2-norm ofz.
- mingma
- The reciprocal of the largest (in magnitude) diagonal element of the inverse of.LDLT-σI
- r
- On output,rcontains the twist index used to computez.
- isuppz
- array of size 2The support of the vector inz, i.e., the vectorzis non-zero only in elements.isuppz[0] andisuppz[1]
- nrminv
- nrminv= 1/SQRT(ztz)
- resid
- The residual of the FP vector.resid=ABS(mingma)/SQRT(ztz)
- rqcorr
- The Rayleigh Quotient correction tolambda.