---
name: "dlarrf.f"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/dlarrf.f"
---

# dlarrf.f(3)

## NAME

SRC/dlarrf.f

## SYNOPSIS

### Functions/Subroutines

subroutine **dlarrf** (n, d, l, ld, clstrt, clend, w, wgap, werr, spdiam, clgapl, clgapr, pivmin, sigma, dplus, lplus, work, info)\
 **DLARRF** finds a new relatively robust representation such that at least one of the eigenvalues is relatively isolated.

## Function/Subroutine Documentation

### subroutine dlarrf (integer n, double precision, dimension( \* ) d, double precision, dimension( \* ) l, double precision, dimension( \* ) ld, integer clstrt, integer clend, double precision, dimension( \* ) w, double precision, dimension( \* ) wgap, double precision, dimension( \* ) werr, double precision spdiam, double precision clgapl, double precision clgapr, double precision pivmin, double precision sigma, double precision, dimension( \* ) dplus, double precision, dimension( \* ) lplus, double precision, dimension( \* ) work, integer info)

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

**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.
!>
```

**Parameters**

*N*

```
!>          N is INTEGER
!>          The order of the matrix (subblock, if the matrix split).
!>
```

*D*

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

*L*

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

*LD*

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

*CLSTRT*

```
!>          CLSTRT is INTEGER
!>          The index of the first eigenvalue in the cluster.
!>
```

*CLEND*

```
!>          CLEND is INTEGER
!>          The index of the last eigenvalue in the cluster.
!>
```

*W*

```
!>          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*

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

*WERR*

```
!>          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*

```
!>          SPDIAM is DOUBLE PRECISION
!>          estimate of the spectral diameter obtained from the
!>          Gerschgorin intervals
!>
```

*CLGAPL*

```
!>          CLGAPL is DOUBLE PRECISION
!>
```

*CLGAPR*

```
!>          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*

```
!>          PIVMIN is DOUBLE PRECISION
!>          The minimum pivot allowed in the Sturm sequence.
!>
```

*SIGMA*

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

*DPLUS*

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

*LPLUS*

```
!>          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*

```
!>          WORK is DOUBLE PRECISION array, dimension (2*N)
!>          Workspace.
!>
```

*INFO*

```
!>          INFO is INTEGER
!>          Signals processing OK (=0) or failure (=1)
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Contributors:**

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

Definition at line **189** of file **dlarrf.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
