# ?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 )

## Description

This subroutine 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.

Parent topic: Auxiliary Routines