SLAED4(3)      LAPACK routine of NEC Numeric Library Collection      SLAED4(3)



NAME
       SLAED4

SYNOPSIS
       SUBROUTINE SLAED4 (N, I, D, Z, DELTA, RHO, DLAM, INFO)



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)
                     N is INTEGER
                    The length of all arrays.

           I         (input)
                     I is INTEGER
                    The index of the eigenvalue to be computed.  1 <= I <= N.

           D         (input)
                     D is REAL array, dimension (N)
                    The original eigenvalues.  It is assumed that they are in
                    order, D(I) < D(J)  for I < J.

           Z         (input)
                     Z is REAL array, dimension (N)
                    The components of the updating vector.

           DELTA     (output)
                     DELTA is REAL 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 SLAED5
                    for detail. The vector DELTA contains the information necessary
                    to construct the eigenvectors by SLAED3 and SLAED9.

           RHO       (input)
                     RHO is REAL
                    The scalar in the symmetric updating formula.

           DLAM      (output)
                     DLAM is REAL
                    The computed lambda_I, the I-th updated eigenvalue.

           INFO      (output)
                     INFO is 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.



LAPACK routine                  31 October 2017                      SLAED4(3)