![]() |
LAPACK
3.9.0
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.