laed4#

Functions

void slaed4(
    const INT           n,
    const INT           i,
    const f32* restrict D,
    const f32* restrict Z,
          f32* restrict delta,
    const f32           rho,
          f32*          dlam,
          INT*          info
);
void slaed4(const INT n, const INT i, const f32 *restrict D, const f32 *restrict Z, f32 *restrict delta, const f32 rho, f32 *dlam, INT *info)#

SLAED4 computes the I-th updated eigenvalue of a symmetric rank-one modification to a diagonal matrix whose elements are given in the array D, and that.

       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 )  +  RHO * Z * Z_transpose.
where we assume the Euclidean norm of Z is 1.

The method consists of approximating the rational functions in the secular equation by simpler interpolating rational functions.

Parameters

in
n

The length of all arrays.

in
i

The index of the eigenvalue to be computed. 0 <= i < n.

in
D

Double precision array, dimension (n). The original eigenvalues. It is assumed that they are in order, D(i) < D(j) for i < j.

in
Z

Double precision array, dimension (n). The components of the updating vector.

out
delta

Double precision array, dimension (n). Contains (D(j) - lambda_I) in its j-th component.

in
rho

The scalar in the symmetric updating formula.

out
dlam

The computed lambda_I, the I-th updated eigenvalue.

out
info

  • = 0: successful exit

  • > 0: if info = 1, the updating process failed.

Functions

void dlaed4(
    const INT           n,
    const INT           i,
    const f64* restrict D,
    const f64* restrict Z,
          f64* restrict delta,
    const f64           rho,
          f64*          dlam,
          INT*          info
);
void dlaed4(const INT n, const INT i, const f64 *restrict D, const f64 *restrict Z, f64 *restrict delta, const f64 rho, f64 *dlam, INT *info)#

DLAED4 computes the I-th updated eigenvalue of a symmetric rank-one modification to a diagonal matrix whose elements are given in the array D, and that.

       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 )  +  RHO * Z * Z_transpose.
where we assume the Euclidean norm of Z is 1.

The method consists of approximating the rational functions in the secular equation by simpler interpolating rational functions.

Parameters

in
n

The length of all arrays.

in
i

The index of the eigenvalue to be computed. 0 <= i < n.

in
D

Double precision array, dimension (n). The original eigenvalues. It is assumed that they are in order, D(i) < D(j) for i < j.

in
Z

Double precision array, dimension (n). The components of the updating vector.

out
delta

Double precision array, dimension (n). Contains (D(j) - lambda_I) in its j-th component.

in
rho

The scalar in the symmetric updating formula.

out
dlam

The computed lambda_I, the I-th updated eigenvalue.

out
info

  • = 0: successful exit

  • > 0: if info = 1, the updating process failed.