SLAR1VA(3)    ScaLAPACK routine of NEC Numeric Library Collection   SLAR1VA(3)



NAME
       SLAR1VA - computes the (scaled) r-th column of the inverse of the sumb-
       matrix in rows B1 through BN of the tridiagonal matrix L D L^T -  sigma
       I

SYNOPSIS
       SUBROUTINE SLAR1VA( N,  B1,  BN, LAMBDA, D, L, LD, LLD, PIVMIN, GAPTOL,
                           Z, WANTNC, NEGCNT, ZTZ, MINGMA, R, ISUPPZ,  NRMINV,
                           RESID, RQCORR, WORK )

           LOGICAL         WANTNC

           INTEGER         B1, BN, N, NEGCNT, R

           REAL            GAPTOL,  LAMBDA,  MINGMA,  NRMINV,  PIVMIN,  RESID,
                           RQCORR, ZTZ

           INTEGER         ISUPPZ( * )

           REAL            D( * ), L( * ), LD( * ), LLD( * ), WORK( * )

           REAL            Z( * )

PURPOSE
       SLAR1VA computes the (scaled) r-th column of the inverse of the sumbma-
       trix in rows B1 through BN of the tridiagonal matrix L D L^T - sigma I.
       When sigma is close to an eigenvalue, the computed vector is  an  accu-
       rate  eigenvector. Usually, r corresponds to the index where the eigen-
       vector is largest in magnitude.
       The following steps accomplish this computation :
       (a) Stationary qd transform,  L D L^T - sigma I = L(+) D(+) L(+)^T,
       (b) Progressive qd transform, L D L^T - sigma I = U(-) D(-) U(-)^T,
       (c) Computation of the diagonal elements of the inverse of L  D  L^T  -
       sigma  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.
       (d)  Computation  of  the (scaled) r-th column of the inverse using the
       twisted factorization obtained by combining the top  part  of  the  the
       stationary and the bottom part of the progressive transform.


ARGUMENTS
       N        (input) INTEGER
               The order of the matrix L D L^T.

       B1       (input) INTEGER
               First index of the submatrix of L D L^T.

       BN       (input) INTEGER
               Last index of the submatrix of L D L^T.

       LAMBDA    (input) REAL
               The  shift. In order to compute an accurate eigenvector, LAMBDA
               should be a good approximation to an eigenvalue of L D L^T.

       L        (input) REAL array, dimension (N-1)
               The (n-1) subdiagonal elements of the unit bidiagonal matrix L,
               in elements 1 to N-1.

       D        (input) REAL array, dimension (N)
               The n diagonal elements of the diagonal matrix D.

       LD       (input) REAL array, dimension (N-1)
               The n-1 elements L(i)*D(i).

       LLD      (input) REAL array, dimension (N-1)
               The n-1 elements L(i)*L(i)*D(i).

       PIVMIN   (input) REAL
               The minimum pivot in the Sturm sequence.

       GAPTOL   (input) REAL
               Tolerance  that indicates when eigenvector entries are negligi-
               ble w.r.t. their contribution to the residual.

       Z        (input/output) REAL array, dimension (N)
               On input, all entries of Z must be set to 0.
               On output, Z contains the (scaled) r-th column of the  inverse.
               The scaling is such that Z(R) equals 1.

       WANTNC   (input) LOGICAL
               Specifies whether NEGCNT has to be computed.

       NEGCNT   (output) INTEGER
               If WANTNC is .TRUE. then NEGCNT = the number of pivots < pivmin
               in the  matrix factorization L D L^T, and NEGCNT  =  -1  other-
               wise.

       ZTZ      (output) REAL
               The square of the 2-norm of Z.

       MINGMA   (output) REAL
               The  reciprocal  of the largest (in magnitude) diagonal element
               of the inverse of L D L^T - sigma I.

       R        (input/output) 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 - sigma I)^{-1} is largest  in  magnitude.
               If 1 <= R <= N, R is unchanged.
               On  output, R contains the twist index used to compute Z.  Ide-
               ally, R designates the position of the  maximum  entry  in  the
               eigenvector.

       ISUPPZ   (output) INTEGER array, dimension (2)
               The  support  of the vector in Z, i.e., the vector Z is nonzero
               only in elements ISUPPZ(1) through ISUPPZ( 2 ).

       NRMINV   (output) REAL
               NRMINV = 1/SQRT( ZTZ )

       RESID    (output) REAL
               The residual of the FP vector.
               RESID = ABS( MINGMA )/SQRT( ZTZ )

       RQCORR   (output) REAL
               The Rayleigh Quotient correction to LAMBDA.
               RQCORR = MINGMA*TMP

       WORK     (workspace) REAL array, dimension (4*N)



ScaLAPACK routine               31 October 2017                     SLAR1VA(3)