SLARRF(3)

NAME
SLARRF - initial representation L D L^T and its cluster of close eigenvalues (in a relative measure), W( CLSTRT ), W( CLSTRT+1 ), ..

SYNOPSIS

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

INTEGER
    CLSTRT, CLEND, INFO, N

REAL
    CLGAPL, CLGAPR, PIVMIN, SIGMA, SPDIAM

REAL
    D( * ), DPLUS( * ), L( * ), LD( * ), LPLUS( * ), W( * ), WGAP( * ), WERR( * ), WORK( * )

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 ), SLARRF 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) INTEGER
    The order of the matrix (subblock, if the matrix splitted).

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

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

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

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

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

W       (input) REAL             array, dimension >=  (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) REAL             array, dimension >=  (CLEND-CLSTRT+1)
    The separation from the right neighbor eigenvalue in W.

WERR    (input) REAL             array, dimension >=  (CLEND-CLSTRT+1)
    WERR contain the semiwidth of the uncertainty interval of the corresponding eigenvalue APPROXIMATION in W SPDIAM (input) estimate of the spectral diameter obtained from the Gerschgorin intervals CLGAPL, CLGAPR (input) 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) DOUBLE PRECISION
    The minimum pivot allowed in the Sturm sequence.

SIGMA   (output) REAL
    The shift used to form L(+) D(+) L(+)^T.

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

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

WORK    (workspace) REAL             array, dimension (2*N)
    Workspace.

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