LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
|
subroutine dlaeda | ( | integer | n, |
integer | tlvls, | ||
integer | curlvl, | ||
integer | curpbm, | ||
integer, dimension( * ) | prmptr, | ||
integer, dimension( * ) | perm, | ||
integer, dimension( * ) | givptr, | ||
integer, dimension( 2, * ) | givcol, | ||
double precision, dimension( 2, * ) | givnum, | ||
double precision, dimension( * ) | q, | ||
integer, dimension( * ) | qptr, | ||
double precision, dimension( * ) | z, | ||
double precision, dimension( * ) | ztemp, | ||
integer | info | ||
) |
DLAEDA used by DSTEDC. Computes the Z vector determining the rank-one modification of the diagonal matrix. Used when the original matrix is dense.
Download DLAEDA + dependencies [TGZ] [ZIP] [TXT]
DLAEDA 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 DOUBLE PRECISION array, dimension (2, N lg N) Each number indicates the S value to be used in the corresponding Givens rotation. |
[in] | Q | Q is DOUBLE PRECISION 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 DOUBLE PRECISION 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 DOUBLE PRECISION 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 164 of file dlaeda.f.