SLAR1V  -  compute the (scaled) r-th column of the inverse
       of the sumbmatrix in rows B1 through BN of the tridiagonal
       matrix L D L^T - sigma I


SYNOPSIS

       SUBROUTINE SLAR1V( N,  B1,  BN, SIGMA, D, L, LD, LLD, GER­
                          SCH, Z, ZTZ, MINGMA, R, ISUPPZ, WORK )

           INTEGER        B1, BN, N, R

           REAL           MINGMA, SIGMA, ZTZ

           INTEGER        ISUPPZ( * )

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


PURPOSE

       SLAR1V computes the (scaled) r-th column of the inverse of
       the sumbmatrix in rows B1 through BN  of  the  tridiagonal
       matrix  L  D L^T - sigma I. 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.

       SIGMA    (input) REAL
                The shift. Initially, when R = 0, SIGMA should be
                a good approximation to an eigenvalue of L D L^T.

                The (n-1) subdiagonal elements of the unit  bidi­
                agonal 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).

       GERSCH   (input) REAL array, dimension (2*N)
                The n Gerschgorin intervals. These  are  used  to
                restrict  the  initial  search  for  R, when R is
                input as 0.

       Z        (output) REAL array, dimension (N)
                The (scaled) r-th column of the inverse. Z(R)  is
                returned to be 1.

       ZTZ      (output) REAL
                The square of the 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
                Initially,  R should be input to be 0 and is then
                output as the index where the diagonal element of
                the  inverse  is  largest  in magnitude. In later
                iterations, this same value of R should be input.

       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 ).

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


FURTHER DETAILS

       Based on contributions by
          Inderjit Dhillon, IBM Almaden, USA
          Osni Marques, LBNL/NERSC, USA


Man(1) output converted with man2html