dlarre(3)
NAME
- DLARRE - the tridiagonal matrix T, DLARRE sets "small"
- off-diagonal elements to zero, and for each unreduced block T_i,
- it finds (i) the numbers sigma_i (ii) the base T_i - sigma_i I =
- L_i D_i L_i^T representations and (iii) eigenvalues of each L_i
- D_i L_i^T
SYNOPSIS
SUBROUTINE DLARRE( N, D, E, TOL, NSPLIT, ISPLIT, M, W,
WOFF, GERSCH, WORK, INFO )
INTEGER INFO, M, N, NSPLIT
DOUBLE PRECISION TOL
INTEGER ISPLIT( * )
DOUBLE PRECISION D( * ), E( * ), GERSCH( * ),
W( * ), WOFF( * ), WORK( * )
PURPOSE
- Given the tridiagonal matrix T, DLARRE sets "small" off
- diagonal elements to zero, and for each unreduced block T_i, it
- finds (i) the numbers sigma_i (ii) the base T_i - sigma_i I = L_i
- D_i L_i^T representations and (iii) eigenvalues of each L_i D_i
- L_i^T. The representations and eigenvalues found are then used by
- DSTEGR to compute the eigenvectors of a symmetric tridiagonal ma
- trix. Currently, the base representations are limited to being
- positive or negative definite, and the eigenvalues of the defi
- nite matrices are found by the dqds algorithm (subroutine
- DLASQ2). As an added benefit, DLARRE also outputs the n Ger
- schgorin
intervals for each L_i D_i L_i^T.
ARGUMENTS
- N (input) INTEGER
- The order of the matrix.
- D (input/output) DOUBLE PRECISION array, dimension
- (N)
- On entry, the n diagonal elements of the tridiago
- nal matrix T. On exit, the n diagonal elements of the diagonal
- matrices D_i.
- E (input/output) DOUBLE PRECISION array, dimension
- (N)
- On entry, the (n-1) subdiagonal elements of the
- tridiagonal matrix T; E(N) need not be set. On exit, the subdi
- agonal elements of the unit bidiagonal matrices L_i.
- TOL (input) DOUBLE PRECISION
- The threshold for splitting. If on input |E(i)| <
- TOL, then the matrix T is split into smaller blocks.
- NSPLIT (input) INTEGER
- The number of blocks T splits into. 1 <= NSPLIT <=
- N.
- ISPLIT (output) INTEGER array, dimension (2*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 IS
- PLIT(2), etc., and the NSPLIT-th consists of rows/columns IS
- PLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.
- M (output) INTEGER
- The total number of eigenvalues (of all the L_i
- D_i L_i^T) found.
- W (output) DOUBLE PRECISION array, dimension (N)
- The first M elements contain the eigenvalues. The
- eigenvalues of each of the blocks, L_i D_i L_i^T, are sorted in
- ascending order.
- WOFF (output) DOUBLE PRECISION array, dimension (N)
- The NSPLIT base points sigma_i.
- GERSCH (output) DOUBLE PRECISION array, dimension (2*N)
- The n Gerschgorin intervals.
- WORK (input) DOUBLE PRECISION array, dimension (4*N???)
- Workspace.
- INFO (output) INTEGER
- Output error code from DLASQ2
FURTHER DETAILS
- Based on contributions by
- Inderjit Dhillon, IBM Almaden, USA
Osni Marques, LBNL/NERSC, USA
- LAPACK version 3.0 15 June 2000