# ?sterf

Computes all eigenvalues of a real symmetric tridiagonal matrix using QR algorithm.

## Syntax

FORTRAN 77:

call ssterf(n, d, e, info)

call dsterf(n, d, e, info)

Fortran 95:

call sterf(d, e [,info])

## Description

This routine computes all the eigenvalues of a real symmetric tridiagonal matrix T (which can be obtained by reducing a symmetric or Hermitian matrix to tridiagonal form). The routine uses a square-root-free variant of the QR algorithm.

If you need not only the eigenvalues but also the eigenvectors, call ?steqr.

## Input Parameters

n

  INTEGER. The order of the matrix T (`n ≥ 0`).

d, e

  REAL for ssterf

  DOUBLE PRECISION for dsterf.

  Arrays:

  d(*) contains the diagonal elements of T.

  The dimension of d must be at least max(1, n).

  e(*) contains the off-diagonal elements of T.

  The dimension of e must be at least max(1, n-1).

## Output Parameters

d

  The n eigenvalues in ascending order, unless info > 0.

  See also info.

e

  On exit, the array is overwritten; see info.

info

  INTEGER.

  If `info = 0`, the execution is successful.

  If `info = i`, the algorithm failed to find all the eigenvalues after 30n iterations:

  i off-diagonal elements have not converged to zero. On exit, d and e contain, respectively, the diagonal and off-diagonal elements of a tridiagonal matrix orthogonally similar to T.

  If `info = -i`, the i-th parameter had an illegal value.

## Fortran 95 Interface Notes

Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or restorable arguments, see Fortran 95 Interface Conventions.

Specific details for the routine sterf interface are the following:

d

  Holds the vector of length (n).

e

  Holds the vector of length (n-1).

## Application Notes

The computed eigenvalues and eigenvectors are exact for a matrix `T+E` such that `||E||2 = O(ε)*||T||2`, where ε is the machine precision.

If λi is an exact eigenvalue, and mi is the corresponding computed value, then

`|μi - λi| ≤ c(n)*ε*||T||2`

where `c(n)` is a modestly increasing function of n.

The total number of floating-point operations depends on how rapidly the algorithm converges. Typically, it is about `14n2`.

Parent topic: Symmetric Eigenvalue Problems