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



NAME
       DLAR1VA - 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 DLAR1VA( 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

           DOUBLE          PRECISION  GAPTOL,  LAMBDA, MINGMA, NRMINV, PIVMIN,
                           RESID, RQCORR, ZTZ

           INTEGER         ISUPPZ( * )

           DOUBLE          PRECISION D( * ), L( * ), LD( * ), LLD( * ),  WORK(
                           * )

           DOUBLE          PRECISION Z( * )

PURPOSE
       DLAR1VA 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) DOUBLE PRECISION
               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) DOUBLE PRECISION array, dimension (N-1)
               The (n-1) subdiagonal elements of the unit bidiagonal matrix L,
               in elements 1 to N-1.

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

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

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

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

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

       Z        (input/output) DOUBLE PRECISION 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) DOUBLE PRECISION
               The square of the 2-norm of Z.

       MINGMA   (output) DOUBLE PRECISION
               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) DOUBLE PRECISION
               NRMINV = 1/SQRT( ZTZ )

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

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

       WORK     (workspace) DOUBLE PRECISION array, dimension (4*N)



ScaLAPACK routine               31 October 2017                     DLAR1VA(3)