clarrv(3)
NAME
- CLARRV - compute the eigenvectors of the tridiagonal ma
- trix T = L D L^T given L, D and the eigenvalues of L D L^T
SYNOPSIS
SUBROUTINE CLARRV( N, D, L, ISPLIT, M, W, IBLOCK, GERSCH,
TOL, Z, LDZ, ISUPPZ, WORK, IWORK, INFO )
INTEGER INFO, LDZ, M, N
REAL TOL
INTEGER IBLOCK( * ), ISPLIT( * ), ISUPPZ( * ),
IWORK( * )
REAL D( * ), GERSCH( * ), L( * ), W( * ),
WORK( * )
COMPLEX Z( LDZ, * )
PURPOSE
- CLARRV computes the eigenvectors of the tridiagonal matrix
- T = L D L^T given L, D and the eigenvalues of L D L^T. The input
- eigenvalues should have high relative accuracy with respect to
- the entries of L and D. The desired accuracy of the output can be
- specified by the input parameter TOL.
ARGUMENTS
- N (input) INTEGER
- The order of the matrix. N >= 0.
- D (input/output) REAL array, dimension (N)
- On entry, the n diagonal elements of the diagonal
- matrix D. On exit, D may be overwritten.
- L (input/output) REAL array, dimension (N-1)
- On entry, the (n-1) subdiagonal elements of the
- unit bidiagonal matrix L in elements 1 to N-1 of L. L(N) need not
- be set. On exit, L is overwritten.
- 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 IS
- PLIT( 2 ), etc.
- TOL (input) REAL
- The absolute error tolerance for the eigenval
- ues/eigenvectors. Errors in the input eigenvalues must be bound
- ed by TOL. The eigenvectors output have residual norms bounded
- by TOL, and the dot products between different eigenvectors are
- bounded by TOL. TOL must be at least N*EPS*|T|, where EPS is the
- machine precision and |T| is the 1-norm of the tridiagonal ma
- trix.
- M (input) INTEGER
- The total number of eigenvalues found. 0 <= M <=
- N. If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
- W (input) 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 SLARRE is ex
- pected here ). Errors in W must be bounded by TOL (see above).
- IBLOCK (input) INTEGER array, dimension (N)
- The submatrix indices associated with the corre
- sponding 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.
- Z (output) COMPLEX array, dimension (LDZ, max(1,M) )
- If JOBZ = 'V', then if INFO = 0, the first M
- columns of Z contain the orthonormal eigenvectors of the matrix T
- corresponding to the selected eigenvalues, with the i-th column
- of Z holding the eigenvector associated with W(i). If JOBZ =
- 'N', then Z is not referenced. Note: the user must ensure that
- at least max(1,M) columns are supplied in the array Z; if RANGE =
- 'V', the exact value of M is not known in advance and an upper
- bound must be used.
- LDZ (input) INTEGER
- The leading dimension of the array Z. LDZ >= 1,
- and if JOBZ = 'V', LDZ >= max(1,N).
- ISUPPZ (output) INTEGER ARRAY, dimension ( 2*max(1,M) )
- The support of the eigenvectors in Z, i.e., the
- indices indicating the nonzero elements in Z. The i-th eigenvec
- tor is nonzero only in elements ISUPPZ( 2*i-1 ) through ISUPPZ(
- 2*i ).
- WORK (workspace) REAL array, dimension (13*N)
- IWORK (workspace) INTEGER array, dimension (6*N)
- INFO (output) INTEGER
- = 0: successful exit
< 0: if INFO = -i, the i-th argument had an ille
- gal value
> 0: if INFO = 1, internal error in SLARRB if IN
- FO = 2, internal error in CSTEIN
FURTHER DETAILS
- Based on contributions by
- Inderjit Dhillon, IBM Almaden, USA
Osni Marques, LBNL/NERSC, USA
Ken Stanley, Computer Science Division, University of
California at Berkeley, USA
- LAPACK version 3.0 15 June 2000