sstein.f3
Usage
Functions/Subroutines
subroutine sstein (n, d, e, m, w, iblock, isplit, z, ldz, work, iwork, ifail, info)
SSTEIN
Function/Subroutine Documentation
subroutine sstein (integer n, real, dimension( * ) d, real, dimension( * ) e, integer m, real, dimension( * ) w, integer, dimension( * ) iblock, integer, dimension( * ) isplit, real, dimension( ldz, * ) z, integer ldz, real, dimension( * ) work, integer, dimension( * ) iwork, integer, dimension( * ) ifail, integer info)
SSTEIN
Purpose:
!> !> SSTEIN 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). !>
Parameters
N
!> N is INTEGER !> The order of the matrix. N >= 0. !>
D
!> D is REAL array, dimension (N) !> The n diagonal elements of the tridiagonal matrix T. !>
E
!> E is REAL array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix !> T, in elements 1 to N-1. !>
M
!> M is INTEGER !> The number of eigenvectors to be found. 0 <= M <= N. !>
W
!> W is REAL array, dimension (N) !> The first M elements of W contain the eigenvalues for !> which eigenvectors are to be computed. The eigenvalues !> should be grouped by split-off block and ordered from !> smallest to largest within the block. ( The output array !> W from SSTEBZ with ORDER = 'B' is expected here. ) !>
IBLOCK
!> IBLOCK is INTEGER array, dimension (N) !> The submatrix indices associated with the corresponding !> eigenvalues in W; IBLOCK(i)=1 if eigenvalue W(i) belongs to !> the first submatrix from the top, =2 if W(i) belongs to !> the second submatrix, etc. ( The output array IBLOCK !> from SSTEBZ is expected here. ) !>
ISPLIT
!> ISPLIT is INTEGER array, dimension (N) !> The splitting points, at which T breaks up into submatrices. !> The first submatrix consists of rows/columns 1 to !> ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1 !> through ISPLIT( 2 ), etc. !> ( The output array ISPLIT from SSTEBZ is expected here. ) !>
Z
!> Z is REAL array, dimension (LDZ, M) !> The computed eigenvectors. The eigenvector associated !> with the eigenvalue W(i) is stored in the i-th column of !> Z. Any vector which fails to converge is set to its current !> iterate after MAXITS iterations. !>
LDZ
!> LDZ is INTEGER !> The leading dimension of the array Z. LDZ >= max(1,N). !>
WORK
!> WORK is REAL array, dimension (5*N) !>
IWORK
!> IWORK is INTEGER array, dimension (N) !>
IFAIL
!> IFAIL is INTEGER array, dimension (M) !> On normal exit, all elements of IFAIL are zero. !> If one or more eigenvectors fail to converge after !> MAXITS iterations, then their indices are stored in !> array IFAIL. !>
INFO
!> INFO is INTEGER !> = 0: successful exit. !> < 0: if INFO = -i, the i-th argument had an illegal value !> > 0: if INFO = i, then i eigenvectors failed to converge !> in MAXITS iterations. Their indices are stored in !> array IFAIL. !>
Internal Parameters:
!> MAXITS INTEGER, default = 5 !> The maximum number of iterations performed. !> !> EXTRA INTEGER, default = 2 !> The number of iterations performed after norm growth !> criterion is satisfied, should be at least 1. !>
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 172 of file sstein.f.
Releases
4 releases since Debian 7 (Wheezy); the text changed 3 times.