?laed4

Used by sstedc/dstedc. Finds a single root of the secular equation.

Syntax

call slaed4( n, i, d, z, delta, rho, dlam, info )

call dlaed4( n, i, d, z, delta, rho, dlam, info )

Include Files

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

Description

This routine 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 * transpose(Z).

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.

Input Parameters

n

INTEGER. The length of all arrays.

i

INTEGER. The index of the eigenvalue to be computed; 1 ≤ i ≤ n.

d, z

REAL for slaed4

DOUBLE PRECISION for dlaed4

Arrays, dimension (n) each. The array d contains the original eigenvalues. It is assumed that they are in order, d(i) < d(j) for i < j.

The array z contains the components of the updating vector Z.

rho

REAL for slaed4

DOUBLE PRECISION for dlaed4

The scalar in the symmetric updating formula.

Output Parameters

delta

REAL for slaed4

DOUBLE PRECISION for dlaed4

Array, dimension (n).

If n 1, delta contains (d(j) - lambda_i) in its j-th component. If n = 1, then delta(1) = 1. The vector delta contains the information necessary to construct the eigenvectors.

dlam

REAL for slaed4

DOUBLE PRECISION for dlaed4

The computed lambda_i, the i-th updated eigenvalue.

info

INTEGER.

If info = 0, the execution is successful.

If info = 1, the updating process failed.

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