?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

  • Fortran: mkl.fi
  • C: mkl.h

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*ZT,

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 ≤ in.

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.

For more complete information about compiler optimizations, see our Optimization Notice.