Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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
slaeda dlaeda
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 log 2n ) 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 log 2n ). 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 log 2n ). 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.