Man Linux: Main Page and Category List

NAME

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

```

SYNOPSIS

```       SUBROUTINE DSTEIN2( N, D, E, M, W, IBLOCK, ISPLIT, ORFAC, Z, LDZ, WORK,
IWORK, IFAIL, INFO )

INTEGER         INFO, LDZ, M, N

DOUBLE          PRECISION ORFAC

INTEGER         IBLOCK( * ), IFAIL( * ), ISPLIT( * ), IWORK( * )

DOUBLE          PRECISION D( * ), E( * ), W( * ),  WORK(  *  ),  Z(
LDZ, * )

```

PURPOSE

```       DSTEIN2  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

```       N       (input) INTEGER
The order of the matrix.  N >= 0.

D       (input) DOUBLE PRECISION array, dimension (N)
The n diagonal elements of the tridiagonal matrix T.

E       (input) DOUBLE PRECISION array, dimension (N)
The (n-1) subdiagonal elements of the tridiagonal matrix T,  in
elements 1 to N-1.  E(N) need not be set.

M       (input) INTEGER
The number of eigenvectors to be found.  0 <= M <= N.

W       (input) 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. )

IBLOCK  (input) 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. )

ISPLIT  (input) 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. )

ORFAC   (input) DOUBLE PRECISION
ORFAC  specifies  which  eigenvectors should be orthogonalized.
Eigenvectors that correspond to eigenvalues  which  are  within
ORFAC*||T|| of each other are to be orthogonalized.

Z       (output) 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.

LDZ     (input) INTEGER
The leading dimension of the array Z.  LDZ >= max(1,N).

WORK    (workspace) DOUBLE PRECISION array, dimension (5*N)

IWORK   (workspace) INTEGER array, dimension (N)

IFAIL   (output) 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    (output) 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.

```

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.
```