DLARRF2(3) ScaLAPACK routine of NEC Numeric Library Collection DLARRF2(3)
NAME
DLARRF2 - 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
SYNOPSIS
SUBROUTINE DLARRF2( N, D, L, LD, CLSTRT, CLEND, CLMID1, CLMID2, W,
WGAP, WERR, TRYMID, SPDIAM, CLGAPL, CLGAPR, PIVMIN,
SIGMA, DPLUS, LPLUS, WORK, INFO )
INTEGER CLSTRT, CLEND, CLMID1, CLMID2, INFO, N
DOUBLE PRECISION CLGAPL, CLGAPR, PIVMIN, SIGMA, SPDIAM
LOGICAL TRYMID
DOUBLE PRECISION 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 ), DLARRF2 finds a new relatively robust representation L D
L^T - SIGMA I = L(+) D(+) L(+)^T such that at least one of the eigen-
values of L(+) D(+) L(+)^T is relatively isolated.
This is an enhanced version of DLARRF that also tries shifts in the
middle of the cluster, should there be a large gap, in order to break
large clusters into at least two pieces.
ARGUMENTS
N (input) INTEGER
The order of the matrix (subblock, if the matrix splitted).
D (input) DOUBLE PRECISION array, dimension (N)
The N diagonal elements of the diagonal matrix D.
L (input) DOUBLE PRECISION array, dimension (N-1)
The (N-1) subdiagonal elements of the unit bidiagonal matrix L.
LD (input) DOUBLE PRECISION 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.
CLMID1,2(input) INTEGER
The index of a middle eigenvalue pair with large gap
W (input) DOUBLE PRECISION 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) DOUBLE PRECISION array, dimension >= (CLEND-
CLSTRT+1)
The separation from the right neighbor eigenvalue in W.
WERR (input) DOUBLE PRECISION 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) DOUBLE PRECISION
The shift used to form L(+) D(+) L(+)^T.
DPLUS (output) DOUBLE PRECISION array, dimension (N)
The N diagonal elements of the diagonal matrix D(+).
LPLUS (output) DOUBLE PRECISION array, dimension (N-1)
The first (N-1) elements of LPLUS contain the subdiagonal ele-
ments of the unit bidiagonal matrix L(+).
WORK (workspace) DOUBLE PRECISION array, dimension (2*N)
Workspace.
ScaLAPACK routine 31 October 2017 DLARRF2(3)