---
name: "dstech.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/dstech.f"
---

# dstech.f(3)

## NAME

TESTING/EIG/dstech.f

## SYNOPSIS

### Functions/Subroutines

subroutine **dstech** (n, a, b, eig, tol, work, info)\
 **DSTECH**

## Function/Subroutine Documentation

### subroutine dstech (integer n, double precision, dimension( \* ) a, double precision, dimension( \* ) b, double precision, dimension( \* ) eig, double precision tol, double precision, dimension( \* ) work, integer info)

**DSTECH**

**Purpose:**

```
!>
!>    Let T be the tridiagonal matrix with diagonal entries A(1) ,...,
!>    A(N) and offdiagonal entries B(1) ,..., B(N-1)).  DSTECH checks to
!>    see if EIG(1) ,..., EIG(N) are indeed accurate eigenvalues of T.
!>    It does this by expanding each EIG(I) into an interval
!>    [SVD(I) - EPS, SVD(I) + EPS], merging overlapping intervals if
!>    any, and using Sturm sequences to count and verify whether each
!>    resulting interval has the correct number of eigenvalues (using
!>    DSTECT).  Here EPS = TOL*MAZHEPS*MAXEIG, where MACHEPS is the
!>    machine precision and MAXEIG is the absolute value of the largest
!>    eigenvalue. If each interval contains the correct number of
!>    eigenvalues, INFO = 0 is returned, otherwise INFO is the index of
!>    the first eigenvalue in the first bad interval.
!>
```

**Parameters**

*N*

```
!>          N is INTEGER
!>          The dimension of the tridiagonal matrix T.
!>
```

*A*

```
!>          A is DOUBLE PRECISION array, dimension (N)
!>          The diagonal entries of the tridiagonal matrix T.
!>
```

*B*

```
!>          B is DOUBLE PRECISION array, dimension (N-1)
!>          The offdiagonal entries of the tridiagonal matrix T.
!>
```

*EIG*

```
!>          EIG is DOUBLE PRECISION array, dimension (N)
!>          The purported eigenvalues to be checked.
!>
```

*TOL*

```
!>          TOL is DOUBLE PRECISION
!>          Error tolerance for checking, a multiple of the
!>          machine precision.
!>
```

*WORK*

```
!>          WORK is DOUBLE PRECISION array, dimension (N)
!>
```

*INFO*

```
!>          INFO is INTEGER
!>          0  if the eigenvalues are all correct (to within
!>             1 +- TOL*MAZHEPS*MAXEIG)
!>          >0 if the interval containing the INFO-th eigenvalue
!>             contains the incorrect number of eigenvalues.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **100** of file **dstech.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
