# ?larrf

Finds a new relatively robust representation such that at least one of the eigenvalues is relatively isolated.

## Syntax

call slarrf( n, d, l, ld, clstrt, clend, w, wgap, werr, spdiam, clgapl, clgapr, pivmin, sigma, dplus, lplus, work, info )

call dlarrf( n, d, l, ld, clstrt, clend, w, wgap, werr, spdiam, clgapl, clgapr, pivmin, sigma, dplus, lplus, work, info )

## Description

Given the initial representation L*D*LT and its cluster of close eigenvalues (in a relative measure), w(clstrt), w(clstrt+1), ... w(clend), the routine ?larrf finds a new relatively robust representation

`L*D*LT - σi*I = L(+)*D(+)*L(+)T`

such that at least one of the eigenvalues of L(+)*D*(+)*L(+)T is relatively isolated.

## Input Parameters

n

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

d

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Array, DIMENSION (n). The n diagonal elements of the diagonal matrix D.

l

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Array, DIMENSION (n-1).

  The (n-1) subdiagonal elements of the unit bidiagonal matrix L.

ld

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Array, DIMENSION (n-1).

  The n-1 elements Li*Di.

clstrt

  INTEGER. The index of the first eigenvalue in the cluster.

clend

  INTEGER. The index of the last eigenvalue in the cluster.

w

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Array, DIMENSION ≥ (clend -clstrt+1). The eigenvalue approximations of L*D*LT in ascending order. w(clstrt) through w(clend) form the cluster of relatively close eigenvalues.

wgap

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Array, DIMENSION ≥ (clend -clstrt+1). The separation from the right neighbor eigenvalue in w.

werr

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Array, DIMENSION ≥ (clend -clstrt+1). On input, werr contains the semiwidth of the uncertainty interval of the corresponding eigenvalue approximation in w.

spdiam

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Estimate of the spectral diameter obtained from the Gerschgorin intervals.

clgapl, clgapr

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  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

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  The minimum pivot allowed in the Sturm sequence.

work

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Workspace array, DIMENSION (2*n).

## Output Parameters

wgap

  On output, the gaps are refined.

sigma

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  The shift used to form L(+)*D*(+)*L(+)T.

dplus

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Array, DIMENSION (n). The n diagonal elements of the diagonal matrix D(+).

lplus

  REAL for slarrf

  DOUBLE PRECISION for dlarrf

  Array, DIMENSION (n). The first (n-1) elements of lplus contain the subdiagonal elements of the unit bidiagonal matrix L(+).

Parent topic: Auxiliary Routines