DLARRF(3)      LAPACK routine of NEC Numeric Library Collection      DLARRF(3)



NAME
       DLARRF

SYNOPSIS
       SUBROUTINE DLARRF (N, D, L, LD, CLSTRT, CLEND, W, WGAP, WERR, SPDIAM,
           CLGAPL, CLGAPR, PIVMIN, SIGMA, DPLUS, LPLUS, WORK, INFO)



PURPOSE
            Given the initial representation L D L^T and its cluster of close
            eigenvalues (in a relative measure), W( CLSTRT ), W( CLSTRT+1 ), ...
            W( CLEND ), DLARRF finds a new relatively robust representation
            L D L^T - SIGMA I = L(+) D(+) L(+)^T such that at least one of the
            eigenvalues of L(+) D(+) L(+)^T is relatively isolated.




ARGUMENTS
           N         (input)
                     N is INTEGER
                     The order of the matrix (subblock, if the matrix splitted).

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

           L         (input)
                     L is DOUBLE PRECISION array, dimension (N-1)
                     The (N-1) subdiagonal elements of the unit bidiagonal
                     matrix L.

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

           CLSTRT    (input)
                     CLSTRT is INTEGER
                     The index of the first eigenvalue in the cluster.

           CLEND     (input)
                     CLEND is INTEGER
                     The index of the last eigenvalue in the cluster.

           W         (input)
                     W is DOUBLE PRECISION array, dimension
                     dimension is >=  (CLEND-CLSTRT+1)
                     The eigenvalue APPROXIMATIONS of L D L^T in ascending order.
                     W( CLSTRT ) through W( CLEND ) form the cluster of relatively
                     close eigenalues.

           WGAP      (input/output)
                     WGAP is DOUBLE PRECISION array, dimension
                     dimension is >=  (CLEND-CLSTRT+1)
                     The separation from the right neighbor eigenvalue in W.

           WERR      (input)
                     WERR is DOUBLE PRECISION array, dimension
                     dimension is  >=  (CLEND-CLSTRT+1)
                     WERR contain the semiwidth of the uncertainty
                     interval of the corresponding eigenvalue APPROXIMATION in W

           SPDIAM    (input)
                     SPDIAM is DOUBLE PRECISION
                     estimate of the spectral diameter obtained from the
                     Gerschgorin intervals

           CLGAPL    (input)
                     CLGAPL is DOUBLE PRECISION

           CLGAPR    (input)
                     CLGAPR is DOUBLE PRECISION
                     absolute gap on each end of the cluster.
                     Set by the calling routine to protect against shifts too close
                     to eigenvalues outside the cluster.

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

           SIGMA     (output)
                     SIGMA is DOUBLE PRECISION
                     The shift used to form L(+) D(+) L(+)^T.

           DPLUS     (output)
                     DPLUS is DOUBLE PRECISION array, dimension (N)
                     The N diagonal elements of the diagonal matrix D(+).

           LPLUS     (output)
                     LPLUS is DOUBLE PRECISION array, dimension (N-1)
                     The first (N-1) elements of LPLUS contain the subdiagonal
                     elements of the unit bidiagonal matrix L(+).

           WORK      (output)
                     WORK is DOUBLE PRECISION array, dimension (2*N)
                     Workspace.

           INFO      (output)
                     INFO is INTEGER
                     Signals processing OK (=0) or failure (=1)



LAPACK routine                  31 October 2017                      DLARRF(3)