NAME

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


SYNOPSIS

  SUBROUTINE SSYEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, IWORK, 
 *      LIWORK, INFO)
  CHARACTER * 1 JOBZ, UPLO
  INTEGER N, LDA, LWORK, LIWORK, INFO
  INTEGER IWORK(*)
  REAL A(LDA,*), W(*), WORK(*)
  SUBROUTINE SSYEVD_64( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, IWORK, 
 *      LIWORK, INFO)
  CHARACTER * 1 JOBZ, UPLO
  INTEGER*8 N, LDA, LWORK, LIWORK, INFO
  INTEGER*8 IWORK(*)
  REAL A(LDA,*), W(*), WORK(*)

F95 INTERFACE

  SUBROUTINE SYEVD( JOBZ, UPLO, [N], A, [LDA], W, [WORK], [LWORK], 
 *       [IWORK], [LIWORK], [INFO])
  CHARACTER(LEN=1) :: JOBZ, UPLO
  INTEGER :: N, LDA, LWORK, LIWORK, INFO
  INTEGER, DIMENSION(:) :: IWORK
  REAL, DIMENSION(:) :: W, WORK
  REAL, DIMENSION(:,:) :: A
  SUBROUTINE SYEVD_64( JOBZ, UPLO, [N], A, [LDA], W, [WORK], [LWORK], 
 *       [IWORK], [LIWORK], [INFO])
  CHARACTER(LEN=1) :: JOBZ, UPLO
  INTEGER(8) :: N, LDA, LWORK, LIWORK, INFO
  INTEGER(8), DIMENSION(:) :: IWORK
  REAL, DIMENSION(:) :: W, WORK
  REAL, DIMENSION(:,:) :: A

C INTERFACE

#include <sunperf.h>

void ssyevd(char jobz, char uplo, int n, float *a, int lda, float *w, int *info);

void ssyevd_64(char jobz, char uplo, long n, float *a, long lda, float *w, long *info);


PURPOSE

ssyevd computes all eigenvalues and, optionally, eigenvectors of a real symmetric matrix A. If eigenvectors are desired, it uses a divide and conquer algorithm.

The divide and conquer algorithm makes very mild assumptions about floating point arithmetic. It will work on machines with a guard digit in add/subtract, or on those binary machines without guard digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It could conceivably fail on hexadecimal or decimal machines without guard digits, but we know of none.

Because of large use of BLAS of level 3, SSYEVD needs N**2 more workspace than SSYEVX.


ARGUMENTS


FURTHER DETAILS

Based on contributions by

   Jeff Rutter, Computer Science Division, University of California
   at Berkeley, USA

Modified by Francoise Tisseur, University of Tennessee.