NAME

dstein - compute the eigenvectors of a real symmetric tridiagonal matrix T corresponding to specified eigenvalues, using inverse iteration


SYNOPSIS

  SUBROUTINE DSTEIN( N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, 
 *      IWORK, IFAIL, INFO)
  INTEGER N, M, LDZ, INFO
  INTEGER IBLOCK(*), ISPLIT(*), IWORK(*), IFAIL(*)
  DOUBLE PRECISION D(*), E(*), W(*), Z(LDZ,*), WORK(*)
  SUBROUTINE DSTEIN_64( N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, 
 *      IWORK, IFAIL, INFO)
  INTEGER*8 N, M, LDZ, INFO
  INTEGER*8 IBLOCK(*), ISPLIT(*), IWORK(*), IFAIL(*)
  DOUBLE PRECISION D(*), E(*), W(*), Z(LDZ,*), WORK(*)

F95 INTERFACE

  SUBROUTINE STEIN( [N], D, E, [M], W, IBLOCK, ISPLIT, Z, [LDZ], [WORK], 
 *       [IWORK], IFAIL, [INFO])
  INTEGER :: N, M, LDZ, INFO
  INTEGER, DIMENSION(:) :: IBLOCK, ISPLIT, IWORK, IFAIL
  REAL(8), DIMENSION(:) :: D, E, W, WORK
  REAL(8), DIMENSION(:,:) :: Z
  SUBROUTINE STEIN_64( [N], D, E, [M], W, IBLOCK, ISPLIT, Z, [LDZ], 
 *       [WORK], [IWORK], IFAIL, [INFO])
  INTEGER(8) :: N, M, LDZ, INFO
  INTEGER(8), DIMENSION(:) :: IBLOCK, ISPLIT, IWORK, IFAIL
  REAL(8), DIMENSION(:) :: D, E, W, WORK
  REAL(8), DIMENSION(:,:) :: Z

C INTERFACE

#include <sunperf.h>

void dstein(int n, double *d, double *e, int m, double *w, int *iblock, int *isplit, double *z, int ldz, int *ifail, int *info);

void dstein_64(long n, double *d, double *e, long m, double *w, long *iblock, long *isplit, double *z, long ldz, long *ifail, long *info);


PURPOSE

dstein computes the eigenvectors of a real symmetric tridiagonal matrix T corresponding to specified eigenvalues, using inverse iteration.

The maximum number of iterations allowed for each eigenvector is specified by an internal parameter MAXITS (currently set to 5).


ARGUMENTS