lasd4#

Functions

void slasd4(
    const INT           n,
    const INT           i,
    const f32* restrict D,
    const f32* restrict Z,
          f32* restrict delta,
    const f32           rho,
          f32*          sigma,
          f32* restrict work,
          INT*          info
);
void slasd4(const INT n, const INT i, const f32 *restrict D, const f32 *restrict Z, f32 *restrict delta, const f32 rho, f32 *sigma, f32 *restrict work, INT *info)#

SLASD4 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.

The rank-one modified system is: diag(D) * diag(D) + RHO * Z * Z^T

Parameters

in
n

The length of all arrays.

in
i

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

in
D

Array of dimension n. The original eigenvalues, 0 <= D[j] < D[k] for j < k.

in
Z

Array of dimension n. The components of the updating vector.

out
delta

Array of dimension n. Contains (D[j] - sigma_i) in component j.

in
rho

The scalar in the symmetric updating formula.

out
sigma

The computed sigma_i, the i-th updated eigenvalue.

out
work

Array of dimension n. Contains (D[j] + sigma_i) in component j.

out
info

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

Functions

void dlasd4(
    const INT           n,
    const INT           i,
    const f64* restrict D,
    const f64* restrict Z,
          f64* restrict delta,
    const f64           rho,
          f64*          sigma,
          f64* restrict work,
          INT*          info
);
void dlasd4(const INT n, const INT i, const f64 *restrict D, const f64 *restrict Z, f64 *restrict delta, const f64 rho, f64 *sigma, f64 *restrict work, INT *info)#

DLASD4 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.

The rank-one modified system is: diag(D) * diag(D) + RHO * Z * Z^T

Parameters

in
n

The length of all arrays.

in
i

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

in
D

Array of dimension n. The original eigenvalues, 0 <= D[j] < D[k] for j < k.

in
Z

Array of dimension n. The components of the updating vector.

out
delta

Array of dimension n. Contains (D[j] - sigma_i) in component j.

in
rho

The scalar in the symmetric updating formula.

out
sigma

The computed sigma_i, the i-th updated eigenvalue.

out
work

Array of dimension n. Contains (D[j] + sigma_i) in component j.

out
info

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