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

# ssbt21.f(3)

## NAME

TESTING/EIG/ssbt21.f

## SYNOPSIS

### Functions/Subroutines

subroutine **ssbt21** (uplo, n, ka, ks, a, lda, d, e, u, ldu, work, result)\
 **SSBT21**

## Function/Subroutine Documentation

### subroutine ssbt21 (character uplo, integer n, integer ka, integer ks, real, dimension( lda, \* ) a, integer lda, real, dimension( \* ) d, real, dimension( \* ) e, real, dimension( ldu, \* ) u, integer ldu, real, dimension( \* ) work, real, dimension( 2 ) result)

**SSBT21**

**Purpose:**

```
!>
!> SSBT21  generally checks a decomposition of the form
!>
!>         A = U S U**T
!>
!> where **T means transpose, A is symmetric banded, U is
!> orthogonal, and S is diagonal (if KS=0) or symmetric
!> tridiagonal (if KS=1).
!>
!> Specifically:
!>
!>         RESULT(1) = | A - U S U**T | / ( |A| n ulp ) and
!>         RESULT(2) = | I - U U**T | / ( n ulp )
!>
```

**Parameters**

*UPLO*

```
!>          UPLO is CHARACTER
!>          If UPLO='U', the upper triangle of A and V will be used and
!>          the (strictly) lower triangle will not be referenced.
!>          If UPLO='L', the lower triangle of A and V will be used and
!>          the (strictly) upper triangle will not be referenced.
!>
```

*N*

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

*KA*

```
!>          KA is INTEGER
!>          The bandwidth of the matrix A.  It must be at least zero.  If
!>          it is larger than N-1, then max( 0, N-1 ) will be used.
!>
```

*KS*

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

*A*

```
!>          A is REAL array, dimension (LDA, N)
!>          The original (unfactored) matrix.  It is assumed to be
!>          symmetric, and only the upper (UPLO='U') or only the lower
!>          (UPLO='L') will be referenced.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of A.  It must be at least 1
!>          and at least min( KA, N-1 ).
!>
```

*D*

```
!>          D is REAL array, dimension (N)
!>          The diagonal of the (symmetric tri-) diagonal matrix S.
!>
```

*E*

```
!>          E is REAL array, dimension (N-1)
!>          The off-diagonal of the (symmetric tri-) diagonal matrix S.
!>          E(1) is the (1,2) and (2,1) element, E(2) is the (2,3) and
!>          (3,2) element, etc.
!>          Not referenced if KS=0.
!>
```

*U*

```
!>          U is REAL array, dimension (LDU, N)
!>          The orthogonal matrix in the decomposition, expressed as a
!>          dense matrix (i.e., not as a product of Householder
!>          transformations, Givens transformations, etc.)
!>
```

*LDU*

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

*WORK*

```
!>          WORK is REAL array, dimension (N**2+N)
!>
```

*RESULT*

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

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **145** of file **ssbt21.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
