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

# zstt21.f(3)

## NAME

TESTING/EIG/zstt21.f

## SYNOPSIS

### Functions/Subroutines

subroutine **zstt21** (n, kband, ad, ae, sd, se, u, ldu, work, rwork, result)\
 **ZSTT21**

## Function/Subroutine Documentation

### subroutine zstt21 (integer n, integer kband, double precision, dimension( \* ) ad, double precision, dimension( \* ) ae, double precision, dimension( \* ) sd, double precision, dimension( \* ) se, complex\*16, dimension( ldu, \* ) u, integer ldu, complex\*16, dimension( \* ) work, double precision, dimension( \* ) rwork, double precision, dimension( 2 ) result)

**ZSTT21**

**Purpose:**

```
!>
!> ZSTT21  checks a decomposition of the form
!>
!>    A = U S U**H
!>
!> where **H means conjugate transpose, A is real symmetric tridiagonal,
!> U is unitary, and S is real and diagonal (if KBAND=0) or symmetric
!> tridiagonal (if KBAND=1).  Two tests are performed:
!>
!>    RESULT(1) = | A - U S U**H | / ( |A| n ulp )
!>
!>    RESULT(2) = | I - U U**H | / ( n ulp )
!>
```

**Parameters**

*N*

```
!>          N is INTEGER
!>          The size of the matrix.  If it is zero, ZSTT21 does nothing.
!>          It must be at least zero.
!>
```

*KBAND*

```
!>          KBAND is INTEGER
!>          The bandwidth of the matrix S.  It may only be zero or one.
!>          If zero, then S is diagonal, and SE is not referenced.  If
!>          one, then S is symmetric tri-diagonal.
!>
```

*AD*

```
!>          AD is DOUBLE PRECISION array, dimension (N)
!>          The diagonal of the original (unfactored) matrix A.  A is
!>          assumed to be real symmetric tridiagonal.
!>
```

*AE*

```
!>          AE is DOUBLE PRECISION array, dimension (N-1)
!>          The off-diagonal of the original (unfactored) matrix A.  A
!>          is assumed to be symmetric tridiagonal.  AE(1) is the (1,2)
!>          and (2,1) element, AE(2) is the (2,3) and (3,2) element, etc.
!>
```

*SD*

```
!>          SD is DOUBLE PRECISION array, dimension (N)
!>          The diagonal of the real (symmetric tri-) diagonal matrix S.
!>
```

*SE*

```
!>          SE is DOUBLE PRECISION array, dimension (N-1)
!>          The off-diagonal of the (symmetric tri-) diagonal matrix S.
!>          Not referenced if KBSND=0.  If KBAND=1, then AE(1) is the
!>          (1,2) and (2,1) element, SE(2) is the (2,3) and (3,2)
!>          element, etc.
!>
```

*U*

```
!>          U is COMPLEX*16 array, dimension (LDU, N)
!>          The unitary matrix in the decomposition.
!>
```

*LDU*

```
!>          LDU is INTEGER
!>          The leading dimension of U.  LDU must be at least N.
!>
```

*WORK*

```
!>          WORK is COMPLEX*16 array, dimension (N**2)
!>
```

*RWORK*

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

*RESULT*

```
!>          RESULT is DOUBLE PRECISION array, dimension (2)
!>          The values computed by the two tests described above.  The
!>          values are currently limited to 1/ulp, to avoid overflow.
!>          RESULT(1) is always modified.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **131** of file **zstt21.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
