Developer Reference

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

?lasd4

Computes the square root of the
i
-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix. Used by
?bdsdc
.

Syntax

call slasd4
(
n
,
i
,
d
,
z
,
delta
,
rho
,
sigma
,
work
,
info
)
call dlasd4
(
n
,
i
,
d
,
z
,
delta
,
rho
,
sigma
,
work
,
info
)
Include Files
  • mkl.fi
Description
The routine computes the square root of the
i
-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix whose entries are given as the squares of the corresponding entries in the array
d
, and that
0 ≤
d
(
i
) <
d
(
j
)
for
i
<
j
and that
rho
> 0
. This is arranged by the calling routine, and is no loss in generality. The rank-one modified system is thus
diag(
d
)*diag(
d
) +
rho
*
Z
*
Z
T
,
where the Euclidean norm of
Z
is equal to 1.The method consists of approximating the rational functions in the secular equation by simpler interpolating rational functions.
Input Parameters
n
INTEGER
.
The length of all arrays.
i
INTEGER
.
The index of the eigenvalue to be computed.
1 ≤
i
n
.
d
REAL
for
slasd4
DOUBLE PRECISION
for
dlasd4
Array,
DIMENSION
(
n
).
The original eigenvalues. They must be in order,
0 ≤
d
(
i
) <
d
(
j
)
for
i
<
j
.
z
REAL
for
slasd4
DOUBLE PRECISION
for
dlasd4
Array,
DIMENSION
(
n
).
The components of the updating vector.
rho
REAL
for
slasd4
DOUBLE PRECISION
for
dlasd4
The scalar in the symmetric updating formula.
work
REAL
for
slasd4
DOUBLE PRECISION
for
dlasd4
Workspace array,
DIMENSION
(
n
).
If
n
1
,
work
contains (
d
(
j
) +
sigma_i
) in its
j
-th component.
If
n
= 1
, then
work
( 1 ) = 1
.
Output Parameters
delta
REAL
for
slasd4
DOUBLE PRECISION
for
dlasd4
Array,
DIMENSION
(
n
).
If
n
1
,
delta
contains (
d
(
j
) -
sigma_i
) in its
j
-th component.
If
n
= 1
, then
delta
(1) = 1
. The vector
delta
contains the information necessary to construct the (singular) eigenvectors.
sigma
REAL
for
slasd4
DOUBLE PRECISION
for
dlasd4
The computed
sigma_i
, the
i
-th updated eigenvalue.
info
INTEGER
.
= 0: successful exit
> 0: If
info
= 1
, the updating process failed.