slaeda(3)
NAME
- SLAEDA - compute the Z vector corresponding to the merge
- step in the CURLVLth step of the merge process with TLVLS steps
- for the CURPBMth problem
SYNOPSIS
SUBROUTINE SLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM,
GIVPTR, GIVCOL, GIVNUM, Q, QPTR, Z, ZTEMP, INFO )
INTEGER CURLVL, CURPBM, INFO, N, TLVLS
INTEGER GIVCOL( 2, * ), GIVPTR( * ), PERM( * ),
PRMPTR( * ), QPTR( * )
REAL GIVNUM( 2, * ), Q( * ), Z( * ), ZTEMP(
* )
PURPOSE
- SLAEDA computes the Z vector corresponding to the merge
- step in the CURLVLth step of the merge process with TLVLS steps
- for the CURPBMth problem.
ARGUMENTS
- N (input) INTEGER
- The dimension of the symmetric tridiagonal matrix.
- N >= 0.
- TLVLS (input) INTEGER
- The total number of merging levels in the overall
- divide and conquer tree.
- CURLVL (input) INTEGER The current level in the
- overall merge routine, 0 <= curlvl <= tlvls.
- CURPBM (input) INTEGER The current problem in the
- current level in the overall merge routine (counting from upper
- left to lower right).
- PRMPTR (input) INTEGER array, dimension (N lg N)
- Contains a list of pointers which indicate where in PERM a lev
- el's permutation is stored. PRMPTR(i+1) - PRMPTR(i) indicates
- the size of the permutation and incidentally the size of the
- full, non-deflated problem.
- PERM (input) INTEGER array, dimension (N lg N)
- Contains the permutations (from deflation and sort
- ing) to be applied to each eigenblock.
- GIVPTR (input) INTEGER array, dimension (N lg N)
- Contains a list of pointers which indicate where in GIVCOL a lev
- el's Givens rotations are stored. GIVPTR(i+1) - GIVPTR(i) indi
- cates the number of Givens rotations.
- GIVCOL (input) INTEGER array, dimension (2, N lg N)
- Each pair of numbers indicates a pair of columns to take place in
- a Givens rotation.
- GIVNUM (input) REAL array, dimension (2, N lg N)
- Each number indicates the S value to be used in the corresponding
- Givens rotation.
- Q (input) REAL array, dimension (N**2)
- Contains the square eigenblocks from previous lev
- els, the starting positions for blocks are given by QPTR.
- QPTR (input) INTEGER array, dimension (N+2)
- Contains a list of pointers which indicate where in
- Q an eigenblock is stored. SQRT( QPTR(i+1) - QPTR(i) ) indicates
- the size of the block.
- Z (output) REAL array, dimension (N)
- On output 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).
- ZTEMP (workspace) REAL array, dimension (N)
- INFO (output) INTEGER
- = 0: successful exit.
< 0: if INFO = -i, the i-th argument had an ille
- gal value.
FURTHER DETAILS
- Based on contributions by
- Jeff Rutter, Computer Science Division, University of
- California
at Berkeley, USA
- LAPACK version 3.0 15 June 2000