larrf#

Functions

void slarrf(
    const INT           n,
    const f32* restrict D,
    const f32* restrict L,
    const f32* restrict LD,
    const INT           clstrt,
    const INT           clend,
    const f32* restrict W,
          f32* restrict wgap,
    const f32* restrict werr,
    const f32           spdiam,
    const f32           clgapl,
    const f32           clgapr,
    const f32           pivmin,
          f32*          sigma,
          f32* restrict dplus,
          f32* restrict lplus,
          f32* restrict work,
          INT*          info
);
void slarrf(const INT n, const f32 *restrict D, const f32 *restrict L, const f32 *restrict LD, const INT clstrt, const INT clend, const f32 *restrict W, f32 *restrict wgap, const f32 *restrict werr, const f32 spdiam, const f32 clgapl, const f32 clgapr, const f32 pivmin, f32 *sigma, f32 *restrict dplus, f32 *restrict lplus, f32 *restrict work, INT *info)#

SLARRF finds a new relatively robust representation L(+) D(+) L(+)^T such that at least one of the eigenvalues of L(+) D(+) L(+)^T is relatively isolated.

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.

Parameters

in
n

The order of the matrix (subblock, if the matrix split).

in
D

Double precision array, dimension (n). The n diagonal elements of the diagonal matrix D.

in
L

Double precision array, dimension (n-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L.

in
LD

Double precision array, dimension (n-1). The (n-1) elements L(i)*D(i).

in
clstrt

The index of the first eigenvalue in the cluster (0-based).

in
clend

The index of the last eigenvalue in the cluster (0-based).

in
W

Double precision array. The eigenvalue approximations of L D L^T in ascending order. W(clstrt) through W(clend) form the cluster.

inout
wgap

Double precision array. The separation from the right neighbor eigenvalue in W.

in
werr

Double precision array. The semiwidth of the uncertainty interval of the corresponding eigenvalue approximation in W.

in
spdiam

Estimate of the spectral diameter obtained from the Gerschgorin intervals.

in
clgapl

Absolute gap on the left end of the cluster.

in
clgapr

Absolute gap on the right end of the cluster.

in
pivmin

The minimum pivot allowed in the Sturm sequence.

out
sigma

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

out
dplus

Double precision array, dimension (n). The n diagonal elements of the diagonal matrix D(+).

out
lplus

Double precision array, dimension (n-1). The first (n-1) elements contain the subdiagonal elements of the unit bidiagonal matrix L(+).

out
work

Double precision array, dimension (2*n). Workspace.

out
info

  • = 0: successful exit

  • = 1: failure

Functions

void dlarrf(
    const INT           n,
    const f64* restrict D,
    const f64* restrict L,
    const f64* restrict LD,
    const INT           clstrt,
    const INT           clend,
    const f64* restrict W,
          f64* restrict wgap,
    const f64* restrict werr,
    const f64           spdiam,
    const f64           clgapl,
    const f64           clgapr,
    const f64           pivmin,
          f64*          sigma,
          f64* restrict dplus,
          f64* restrict lplus,
          f64* restrict work,
          INT*          info
);
void dlarrf(const INT n, const f64 *restrict D, const f64 *restrict L, const f64 *restrict LD, const INT clstrt, const INT clend, const f64 *restrict W, f64 *restrict wgap, const f64 *restrict werr, const f64 spdiam, const f64 clgapl, const f64 clgapr, const f64 pivmin, f64 *sigma, f64 *restrict dplus, f64 *restrict lplus, f64 *restrict work, INT *info)#

DLARRF finds a new relatively robust representation L(+) D(+) L(+)^T such that at least one of the eigenvalues of L(+) D(+) L(+)^T is relatively isolated.

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.

Parameters

in
n

The order of the matrix (subblock, if the matrix split).

in
D

Double precision array, dimension (n). The n diagonal elements of the diagonal matrix D.

in
L

Double precision array, dimension (n-1). The (n-1) subdiagonal elements of the unit bidiagonal matrix L.

in
LD

Double precision array, dimension (n-1). The (n-1) elements L(i)*D(i).

in
clstrt

The index of the first eigenvalue in the cluster (0-based).

in
clend

The index of the last eigenvalue in the cluster (0-based).

in
W

Double precision array. The eigenvalue approximations of L D L^T in ascending order. W(clstrt) through W(clend) form the cluster.

inout
wgap

Double precision array. The separation from the right neighbor eigenvalue in W.

in
werr

Double precision array. The semiwidth of the uncertainty interval of the corresponding eigenvalue approximation in W.

in
spdiam

Estimate of the spectral diameter obtained from the Gerschgorin intervals.

in
clgapl

Absolute gap on the left end of the cluster.

in
clgapr

Absolute gap on the right end of the cluster.

in
pivmin

The minimum pivot allowed in the Sturm sequence.

out
sigma

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

out
dplus

Double precision array, dimension (n). The n diagonal elements of the diagonal matrix D(+).

out
lplus

Double precision array, dimension (n-1). The first (n-1) elements contain the subdiagonal elements of the unit bidiagonal matrix L(+).

out
work

Double precision array, dimension (2*n). Workspace.

out
info

  • = 0: successful exit

  • = 1: failure