# ?stev

Computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix.

## Syntax

FORTRAN 77:

call sstev(jobz, n, d, e, z, ldz, work, info)

call dstev(jobz, n, d, e, z, ldz, work, info)

Fortran 95:

call stev(d, e [,z] [,info])

## Description

This routine computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix A.

## Input Parameters

jobz

  CHARACTER*1. Must be 'N' or 'V'.

  If `jobz = 'N'`, then only eigenvalues are computed.

  If `jobz = 'V'`, then eigenvalues and eigenvectors are computed.

n

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

d, e, work

  REAL for sstev

  DOUBLE PRECISION for dstev.

  Arrays:

  d(*) contains the n diagonal elements of the tridiagonal matrix A.

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

  e(*) contains the n-1 subdiagonal elements of the tridiagonal matrix A.

  The dimension of e must be at least max(1, n-1). The n-th element of this array is used as workspace.

  work(*) is a workspace array.

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

  If `jobz = 'N'`, work is not referenced.

ldz

  INTEGER. The leading dimension of the output array z; `ldz ≥ 1`. If `jobz = 'V'` then `ldz ≥ max`(1, n).

## Output Parameters

d

  On exit, if `info = 0`, contains the eigenvalues of the matrix A in ascending order.

z

  REAL for sstev

  DOUBLE PRECISION for dstev

  Array, DIMENSION (ldz, *).

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

  If `jobz = 'V'`, then if `info = 0`, z contains the orthonormal eigenvectors of the matrix A, with the i-th column of z holding the eigenvector associated with the eigenvalue returned in d(i).

  If `job = 'N'`, then z is not referenced.

e

  On exit, this array is overwritten with intermediate results.

info

  INTEGER.

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

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

  If `info = i`, then the algorithm failed to converge;

  i elements of e did not converge to zero.

## 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 stev interface are the following:

d

  Holds the vector of length (n).

e

  Holds the vector of length (n).

z

  Holds the matrix Z of size (n, n).

jobz

  Restored based on the presence of the argument z as follows:

  `jobz = 'V'`, if z is present,

  `jobz = 'N'`, if z is omitted.

Parent topic: Symmetric Eigenproblems