LAPACK
3.6.1
LAPACK: Linear Algebra PACKage
|
subroutine slaeda | ( | integer | N, |
integer | TLVLS, | ||
integer | CURLVL, | ||
integer | CURPBM, | ||
integer, dimension( * ) | PRMPTR, | ||
integer, dimension( * ) | PERM, | ||
integer, dimension( * ) | GIVPTR, | ||
integer, dimension( 2, * ) | GIVCOL, | ||
real, dimension( 2, * ) | GIVNUM, | ||
real, dimension( * ) | Q, | ||
integer, dimension( * ) | QPTR, | ||
real, dimension( * ) | Z, | ||
real, dimension( * ) | ZTEMP, | ||
integer | INFO | ||
) |
SLAEDA used by sstedc. Computes the Z vector determining the rank-one modification of the diagonal matrix. Used when the original matrix is dense.
Download SLAEDA + dependencies [TGZ] [ZIP] [TXT]
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.
[in] | N | N is INTEGER The dimension of the symmetric tridiagonal matrix. N >= 0. |
[in] | TLVLS | TLVLS is INTEGER The total number of merging levels in the overall divide and conquer tree. |
[in] | CURLVL | CURLVL is INTEGER The current level in the overall merge routine, 0 <= curlvl <= tlvls. |
[in] | CURPBM | CURPBM is INTEGER The current problem in the current level in the overall merge routine (counting from upper left to lower right). |
[in] | PRMPTR | PRMPTR is INTEGER array, dimension (N lg N) Contains a list of pointers which indicate where in PERM a level'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. |
[in] | PERM | PERM is INTEGER array, dimension (N lg N) Contains the permutations (from deflation and sorting) to be applied to each eigenblock. |
[in] | GIVPTR | GIVPTR is INTEGER array, dimension (N lg N) Contains a list of pointers which indicate where in GIVCOL a level's Givens rotations are stored. GIVPTR(i+1) - GIVPTR(i) indicates the number of Givens rotations. |
[in] | GIVCOL | GIVCOL is INTEGER array, dimension (2, N lg N) Each pair of numbers indicates a pair of columns to take place in a Givens rotation. |
[in] | GIVNUM | GIVNUM is REAL array, dimension (2, N lg N) Each number indicates the S value to be used in the corresponding Givens rotation. |
[in] | Q | Q is REAL array, dimension (N**2) Contains the square eigenblocks from previous levels, the starting positions for blocks are given by QPTR. |
[in] | QPTR | QPTR is 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. |
[out] | Z | Z is 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). |
[out] | ZTEMP | ZTEMP is REAL array, dimension (N) |
[out] | INFO | INFO is INTEGER = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. |
Definition at line 168 of file slaeda.f.