sstev


NAME

sstev - compute all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix A


SYNOPSIS

  SUBROUTINE SSTEV( JOBZ, N, DIAG, OFFD, Z, LDZ, WORK, INFO)
  CHARACTER * 1 JOBZ
  INTEGER N, LDZ, INFO
  REAL DIAG(*), OFFD(*), Z(LDZ,*), WORK(*)
 
  SUBROUTINE SSTEV_64( JOBZ, N, DIAG, OFFD, Z, LDZ, WORK, INFO)
  CHARACTER * 1 JOBZ
  INTEGER*8 N, LDZ, INFO
  REAL DIAG(*), OFFD(*), Z(LDZ,*), WORK(*)
 

F95 INTERFACE

  SUBROUTINE STEV( JOBZ, N, DIAG, OFFD, Z, [LDZ], [WORK], [INFO])
  CHARACTER(LEN=1) :: JOBZ
  INTEGER :: N, LDZ, INFO
  REAL, DIMENSION(:) :: DIAG, OFFD, WORK
  REAL, DIMENSION(:,:) :: Z
 
  SUBROUTINE STEV_64( JOBZ, N, DIAG, OFFD, Z, [LDZ], [WORK], [INFO])
  CHARACTER(LEN=1) :: JOBZ
  INTEGER(8) :: N, LDZ, INFO
  REAL, DIMENSION(:) :: DIAG, OFFD, WORK
  REAL, DIMENSION(:,:) :: Z
 

C INTERFACE

#include <sunperf.h>

void sstev(char jobz, int n, float *diag, float *offd, float *z, int ldz, int *info);

void sstev_64(char jobz, long n, float *diag, float *offd, float *z, long ldz, long *info);


PURPOSE

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


ARGUMENTS

* JOBZ (input)
* N (input)
The order of the matrix. N >= 0.

* DIAG (input/output)
On entry, the n diagonal elements of the tridiagonal matrix A. On exit, if INFO = 0, the eigenvalues in ascending order.

* OFFD (input/output)
On entry, the (n-1) subdiagonal elements of the tridiagonal matrix A, stored in elements 1 to N-1 of OFFD; OFFD(N) need not be set, but is used by the routine. On exit, the contents of OFFD are destroyed.

* Z (input)
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 DIAG(i). If JOBZ = 'N', then Z is not referenced.

* LDZ (input)
The leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', LDZ >= max(1,N).

* WORK (workspace)
If JOBZ = 'N', WORK is not referenced.

* INFO (output)