NAME

sstebz - compute the eigenvalues of a symmetric tridiagonal matrix T


SYNOPSIS

  SUBROUTINE SSTEBZ( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, M, 
 *      NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK, INFO)
  CHARACTER * 1 RANGE, ORDER
  INTEGER N, IL, IU, M, NSPLIT, INFO
  INTEGER IBLOCK(*), ISPLIT(*), IWORK(*)
  REAL VL, VU, ABSTOL
  REAL D(*), E(*), W(*), WORK(*)
  SUBROUTINE SSTEBZ_64( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, 
 *      M, NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK, INFO)
  CHARACTER * 1 RANGE, ORDER
  INTEGER*8 N, IL, IU, M, NSPLIT, INFO
  INTEGER*8 IBLOCK(*), ISPLIT(*), IWORK(*)
  REAL VL, VU, ABSTOL
  REAL D(*), E(*), W(*), WORK(*)

F95 INTERFACE

  SUBROUTINE STEBZ( RANGE, ORDER, [N], VL, VU, IL, IU, ABSTOL, D, E, 
 *       M, NSPLIT, W, IBLOCK, ISPLIT, [WORK], [IWORK], [INFO])
  CHARACTER(LEN=1) :: RANGE, ORDER
  INTEGER :: N, IL, IU, M, NSPLIT, INFO
  INTEGER, DIMENSION(:) :: IBLOCK, ISPLIT, IWORK
  REAL :: VL, VU, ABSTOL
  REAL, DIMENSION(:) :: D, E, W, WORK
  SUBROUTINE STEBZ_64( RANGE, ORDER, [N], VL, VU, IL, IU, ABSTOL, D, 
 *       E, M, NSPLIT, W, IBLOCK, ISPLIT, [WORK], [IWORK], [INFO])
  CHARACTER(LEN=1) :: RANGE, ORDER
  INTEGER(8) :: N, IL, IU, M, NSPLIT, INFO
  INTEGER(8), DIMENSION(:) :: IBLOCK, ISPLIT, IWORK
  REAL :: VL, VU, ABSTOL
  REAL, DIMENSION(:) :: D, E, W, WORK

C INTERFACE

#include <sunperf.h>

void sstebz(char range, char order, int n, float vl, float vu, int il, int iu, float abstol, float *d, float *e, int *m, int *nsplit, float *w, int *iblock, int *isplit, int *info);

void sstebz_64(char range, char order, long n, float vl, float vu, long il, long iu, float abstol, float *d, float *e, long *m, long *nsplit, float *w, long *iblock, long *isplit, long *info);


PURPOSE

sstebz computes the eigenvalues of a symmetric tridiagonal matrix T. The user may ask for all eigenvalues, all eigenvalues in the half-open interval (VL, VU], or the IL-th through IU-th eigenvalues.

To avoid overflow, the matrix must be scaled so that its

largest element is no greater than overflow**(1/2) *

underflow**(1/4) in absolute value, and for greatest

accuracy, it should not be much smaller than that.

See W. Kahan ``Accurate Eigenvalues of a Symmetric Tridiagonal Matrix'', Report CS41, Computer Science Dept., Stanford

University, July 21, 1966.


ARGUMENTS