LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine dstein | ( | integer | n, |
double precision, dimension( * ) | d, | ||
double precision, dimension( * ) | e, | ||
integer | m, | ||
double precision, dimension( * ) | w, | ||
integer, dimension( * ) | iblock, | ||
integer, dimension( * ) | isplit, | ||
double precision, dimension( ldz, * ) | z, | ||
integer | ldz, | ||
double precision, dimension( * ) | work, | ||
integer, dimension( * ) | iwork, | ||
integer, dimension( * ) | ifail, | ||
integer | info ) |
DSTEIN
Download DSTEIN + dependencies [TGZ] [ZIP] [TXT]
!> !> 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). !>
[in] | N | !> N is INTEGER !> The order of the matrix. N >= 0. !> |
[in] | D | !> D is DOUBLE PRECISION array, dimension (N) !> The n diagonal elements of the tridiagonal matrix T. !> |
[in] | E | !> E is DOUBLE PRECISION array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix !> T, in elements 1 to N-1. !> |
[in] | M | !> M is INTEGER !> The number of eigenvectors to be found. 0 <= M <= N. !> |
[in] | W | !> W is DOUBLE PRECISION 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 DSTEBZ with ORDER = 'B' is expected here. ) !> |
[in] | 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 DSTEBZ is expected here. ) !> |
[in] | 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 DSTEBZ is expected here. ) !> |
[out] | Z | !> Z is DOUBLE PRECISION 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. !> |
[in] | LDZ | !> LDZ is INTEGER !> The leading dimension of the array Z. LDZ >= max(1,N). !> |
[out] | WORK | !> WORK is DOUBLE PRECISION array, dimension (5*N) !> |
[out] | IWORK | !> IWORK is INTEGER array, dimension (N) !> |
[out] | 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. !> |
[out] | 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. !> |
!> 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. !>
Definition at line 170 of file dstein.f.