Provided by: liblapack-doc_3.3.1-1_all bug

NAME

       LAPACK-3  -  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

SYNOPSIS

       SUBROUTINE ZLAR1V( 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( * )

           COMPLEX*16     Z( * )

PURPOSE

       ZLAR1V  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.  When  sigma  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 :
        (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 negligible
                 w.r.t. their contribution to the residual.

        Z        (input/output) COMPLEX*16       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 otherwise.

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

FURTHER DETAILS

        Based on contributions by
           Beresford Parlett, University of California, Berkeley, USA
           Jim Demmel, University of California, Berkeley, USA
           Inderjit Dhillon, University of Texas, Austin, USA
           Osni Marques, LBNL/NERSC, USA
           Christof Voemel, University of California, Berkeley, USA

 LAPACK auxiliary routine (version 3.3.1)   April 2011                            ZLAR1V(3lapack)