zlaed8(3)
NAME
- ZLAED8 - merge the two sets of eigenvalues together into a
- single sorted set
SYNOPSIS
SUBROUTINE ZLAED8( K, N, QSIZ, Q, LDQ, D, RHO, CUTPNT, Z,
DLAMDA, Q2, LDQ2, W, INDXP, INDX, INDXQ, PERM, GIVPTR, GIVCOL,
GIVNUM, INFO )
INTEGER CUTPNT, GIVPTR, INFO, K, LDQ, LDQ2, N,
QSIZ
DOUBLE PRECISION RHO
INTEGER GIVCOL( 2, * ), INDX( * ), INDXP( * ),
INDXQ( * ), PERM( * )
DOUBLE PRECISION D( * ), DLAMDA( * ), GIVNUM(
2, * ), W( * ), Z( * )
COMPLEX*16 Q( LDQ, * ), Q2( LDQ2, * )
PURPOSE
- ZLAED8 merges the two sets of eigenvalues together into a
- single sorted set. Then it tries to deflate the size of the prob
- lem. There are two ways in which deflation can occur: when two
- or more eigenvalues are close together or if there is a tiny ele
- ment in the Z vector. For each such occurrence the order of the
- related secular equation problem is reduced by one.
ARGUMENTS
- K (output) INTEGER
- Contains the number of non-deflated eigenvalues.
- This is the order of the related secular equation.
- N (input) INTEGER
- The dimension of the symmetric tridiagonal matrix.
- N >= 0.
- QSIZ (input) INTEGER
- The dimension of the unitary matrix used to reduce
- the dense or band matrix to tridiagonal form. QSIZ >= N if ICOM
- PQ = 1.
- Q (input/output) COMPLEX*16 array, dimension (LDQ,N)
- On entry, Q contains the eigenvectors of the par
- tially solved system which has been previously updated in matrix
- multiplies with other partially solved eigensystems. On exit, Q
- contains the trailing (N-K) updated eigenvectors (those which
- were deflated) in its last N-K columns.
- LDQ (input) INTEGER
- The leading dimension of the array Q. LDQ >= max(
- 1, N ).
- D (input/output) DOUBLE PRECISION array, dimension
- (N)
- On entry, D contains the eigenvalues of the two
- submatrices to be combined. On exit, D contains the trailing (N
- K) updated eigenvalues (those which were deflated) sorted into
- increasing order.
- RHO (input/output) DOUBLE PRECISION
- Contains the off diagonal element associated with
- the rank-1 cut which originally split the two submatrices which
- are now being recombined. RHO is modified during the computation
- to the value required by DLAED3.
- CUTPNT (input) INTEGER Contains the location of the
- last eigenvalue in the leading sub-matrix. MIN(1,N) <= CUTPNT <=
- N.
- Z (input) DOUBLE PRECISION array, dimension (N)
- On input this vector contains the updating vector
- (the last row of the first sub-eigenvector matrix and the first
- row of the second sub-eigenvector matrix). The contents of Z are
- destroyed during the updating process.
- DLAMDA (output) DOUBLE PRECISION array, dimension
- (N) Contains a copy of the first K eigenvalues which will be used
- by DLAED3 to form the secular equation.
- Q2 (output) COMPLEX*16 array, dimension (LDQ2,N)
- If ICOMPQ = 0, Q2 is not referenced. Otherwise,
- Contains a copy of the first K eigenvectors which will be used by
- DLAED7 in a matrix multiply (DGEMM) to update the new eigenvec
- tors.
- LDQ2 (input) INTEGER
- The leading dimension of the array Q2. LDQ2 >=
- max( 1, N ).
- W (output) DOUBLE PRECISION array, dimension (N)
- This will hold the first k values of the final de
- flation-altered z-vector and will be passed to DLAED3.
- INDXP (workspace) INTEGER array, dimension (N)
- This will contain the permutation used to place de
- flated values of D at the end of the array. On output INDXP(1:K)
points to the nondeflated D-values and INDXP(K+1:N)
- points to the deflated eigenvalues.
- INDX (workspace) INTEGER array, dimension (N)
- This will contain the permutation used to sort the
- contents of D into ascending order.
- INDXQ (input) INTEGER array, dimension (N)
- This contains the permutation which separately
- sorts the two sub-problems in D into ascending order. Note that
- elements in the second half of this permutation must first have
- CUTPNT added to their values in order to be accurate.
- PERM (output) INTEGER array, dimension (N)
- Contains the permutations (from deflation and sort
- ing) to be applied to each eigenblock.
- GIVPTR (output) INTEGER Contains the number of
- Givens rotations which took place in this subproblem.
- GIVCOL (output) INTEGER array, dimension (2, N)
- Each pair of numbers indicates a pair of columns to take place in
- a Givens rotation.
- GIVNUM (output) DOUBLE PRECISION array, dimension
- (2, N) Each number indicates the S value to be used in the corre
- sponding Givens rotation.
- INFO (output) INTEGER
- = 0: successful exit.
< 0: if INFO = -i, the i-th argument had an ille
- gal value.
- LAPACK version 3.0 15 June 2000