DLAED4

   November 2006

Purpose

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

Arguments

N
(input) INTEGER
The length of all arrays.
I
(input) INTEGER
The index of the eigenvalue to be computed.  1 <= I <= N.
D
(input) DOUBLE PRECISION array, dimension (N)
The original eigenvalues.  It is assumed that they are in
order, D(I) < D(J)  for I < J.
Z
(input) DOUBLE PRECISION array, dimension (N)
The components of the updating vector.
DELTA
(output) DOUBLE PRECISION array, dimension (N)
If N .GT. 2, DELTA contains (D(j) - lambda_I) in its  j-th
component.  If N = 1, then DELTA(1) = 1. If N = 2, see DLAED5
for detail. The vector DELTA contains the information necessary
to construct the eigenvectors by DLAED3 and DLAED9.
RHO
(input) DOUBLE PRECISION
The scalar in the symmetric updating formula.
DLAM
(output) DOUBLE PRECISION
The computed lambda_I, the I-th updated eigenvalue.
INFO
(output) INTEGER
= 0:  successful exit
> 0:  if INFO = 1, the updating process failed.

Internal Parameters

Logical variable ORGATI (origin-at-i?) is used for distinguishing
whether D(i) or D(i+1) is treated as the origin.

          ORGATI = .true.    origin at i
          ORGATI = .false.   origin at i+1

 Logical variable SWTCH3 (switch-for-3-poles?) is for noting
 if we are working with THREE poles!

 MAXIT is the maximum number of iterations allowed for each
 eigenvalue.

Further Details

Based on contributions by
   Ren-Cang Li, Computer Science Division, University of California
   at Berkeley, USA

Call Graph

Caller Graph