CXML

SLAED4 (3lapack)


SYNOPSIS

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

      INTEGER        I, INFO, N

      REAL           DLAM, RHO

      REAL           D( * ), DELTA( * ), Z( * )

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 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) REAL array, dimension (N)
         The original eigenvalues.  It is assumed that they are in order,
         D(I) < D(J)  for I < J.

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

  DELTA  (output) REAL array, dimension (N)
         If N .ne. 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.

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

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

  INFO   (output) INTEGER
         = 0:  successful exit
         > 0:  if INFO = 1, the updating process failed.

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.

CXML Home Page

Index of CXML Routines