Visible to Intel only — GUID: GUID-631F2B06-BDDF-42D9-A451-A516024EDCD8
Visible to Intel only — GUID: GUID-631F2B06-BDDF-42D9-A451-A516024EDCD8
?laeda
Used by ?stedc. Computes the Z vector determining the rank-one modification of the diagonal matrix. Used when the original matrix is dense.
Syntax
call slaeda( n, tlvls, curlvl, curpbm, prmptr, perm, givptr, givcol, givnum, q, qptr, z, ztemp, info )
call dlaeda( n, tlvls, curlvl, curpbm, prmptr, perm, givptr, givcol, givnum, q, qptr, z, ztemp, info )
Include Files
- mkl.fi
Description
The routine ?laeda computes the Z vector corresponding to the merge step in the curlvl-th step of the merge process with tlvls steps for the curpbm-th problem.
Input Parameters
- n
-
INTEGER. The dimension of the symmetric tridiagonal matrix (n≥ 0).
- tlvls
-
INTEGER. The total number of merging levels in the overall divide and conquer tree.
- curlvl
-
INTEGER. The current level in the overall merge routine, 0 ≤ curlvl ≤ tlvls .
- curpbm
-
INTEGER. The current problem in the current level in the overall merge routine (counting from upper left to lower right).
- prmptr, perm, givptr
-
INTEGER. Arrays, dimension (n log2n ) each.
The array prmptr(*) 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 also the size of the full, non-deflated problem.
The array perm(*) contains the permutations (from deflation and sorting) to be applied to each eigenblock.
The array givptr(*) 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.
- givcol
-
INTEGER. Array, dimension (2, n log2n ).
Each pair of numbers indicates a pair of columns to take place in a Givens rotation.
- givnum
-
REAL for slaeda
DOUBLE PRECISION for dlaeda.
Array, dimension (2, n log2n).
Each number indicates the S value to be used in the corresponding Givens rotation.
- q
-
REAL for slaeda
DOUBLE PRECISION for dlaeda.
Array, dimension ( n2).
Contains the square eigenblocks from previous levels, the starting positions for blocks are given by qptr.
- qptr
-
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.
- ztemp
-
REAL for slaeda
DOUBLE PRECISION for dlaeda.
Workspace array, dimension (n).
Output Parameters
- z
-
REAL for slaeda
DOUBLE PRECISION for dlaeda.
Array, dimension (n). Contains the updating vector (the last row of the first sub-eigenvector matrix and the first row of the second sub-eigenvector matrix).
- info
-
INTEGER.
If info = 0, the execution is successful.
If info = -i, the i-th parameter had an illegal value.