Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?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
log
2
n
) 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
2
n
).
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
2
n
).
Each number indicates the
S
value to be used in the corresponding Givens rotation.
q
REAL
for
slaeda
DOUBLE PRECISION
for
dlaeda
.
Array, dimension (
n
2
).
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 (