Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

?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
. 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 :
  1. Stationary qd transform,
    L
    D
    L
    T
    -
    λ
    I
    =
    L
    +
    D
    +
    L
    +
    T
    ,
  2. Progressive qd transform,
    L
    D
    L
    T
    -
    λ
    I
    =
    U
    -
    D
    -
    U
    -
    T
    ,
  3. 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.
  4. 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
L
D
L
T
.
b1
First index of the submatrix of
L
D
L
T
.
bn
Last index of the submatrix of
L
D
L
T
.
lambda
The shift
λ
. In order to compute an accurate eigenvector,
lambda
should be a good approximation to an eigenvalue of
L
D
L
T
.
l
Array of size
n
-1
The (
n
-1) subdiagonal elements of the unit bidiagonal matrix
L
, in elements
0 to
n
-2
.
d
Array of size
n
The
n
diagonal elements of the diagonal matrix
D
.
ld
Array of size
n
-1
The
n
-1 elements
l
[
i
]*
d
[
i
],
i
=0,...,
n
-2
.
lld
Array of size
n
-1
The
n
-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 size
n
On input, all entries of
z
must be set to 0.
wantnc
Specifies whether
negcnt
has to be computed.
r
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
-
σ
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
(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
If
wantnc
is non-zero
then
negcnt
= the number of pivots <
pivmin
in the matrix factorization
L
D
L
T
, and
negcnt
= -1 otherwise.
ztz
The square of the 2-norm of
z
.
mingma
The reciprocal of the largest (in magnitude) diagonal element of the inverse of
L
D
L
T
-
σ
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
nrminv
= 1/
SQRT
(
ztz
)
resid
The residual of the FP vector.
resid
=
ABS
(
mingma
)/
SQRT
(
ztz
)
rqcorr
The Rayleigh Quotient correction to
lambda
.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.