SLAED1  -  compute  the  updated eigensystem of a diagonal
       matrix after modification by a rank-one symmetric matrix


SYNOPSIS

       SUBROUTINE SLAED1( N, D, Q, LDQ, INDXQ, RHO, CUTPNT, WORK,
                          IWORK, INFO )

           INTEGER        CUTPNT, INFO, LDQ, N

           REAL           RHO

           INTEGER        INDXQ( * ), IWORK( * )

           REAL           D( * ), Q( LDQ, * ), WORK( * )


PURPOSE

       SLAED1  computes  the  updated  eigensystem  of a diagonal
       matrix after modification by a rank-one symmetric  matrix.
       This  routine  is  used  only  for  the eigenproblem which
       requires all eigenvalues and eigenvectors of a tridiagonal
       matrix.  SLAED7 handles the case in which eigenvalues only
       or eigenvalues and eigenvectors of a full symmetric matrix
       (which was reduced to tridiagonal form) are desired.

         T  =  Q(in)  (  D(in)  +  RHO * Z*Z' ) Q'(in) = Q(out) *
       D(out) * Q'(out)

          where Z = Q'u, u is a vector of length N with  ones  in
       the
          CUTPNT  and CUTPNT + 1 th elements and zeros elsewhere.

          The eigenvectors of the original matrix are  stored  in
       Q, and the
          eigenvalues  are in D.  The algorithm consists of three
       stages:

             The first stage consists of deflating  the  size  of
       the problem
             when there are multiple eigenvalues or if there is a
       zero in
             the Z vector.  For each such occurence the dimension
       of the
             secular  equation  problem  is reduced by one.  This
       stage is
             performed by the routine SLAED2.

             The second stage consists of calculating the updated
             eigenvalues.  This  is  done by finding the roots of
       the secular
             equation  via  the  routine  SLAED4  (as  called  by
       SLAED3).
             This routine also calculates the eigenvectors of the
       current


             The final stage consists of  computing  the  updated
       eigenvectors
             directly  using the updated eigenvalues.  The eigen­
       vectors for
             the current problem are multiplied with  the  eigen­
       vectors from
             the overall problem.


ARGUMENTS

       N      (input) INTEGER
              The  dimension of the symmetric tridiagonal matrix.
              N >= 0.

       D      (input/output) REAL array, dimension (N)
              On entry, the eigenvalues of  the  rank-1-perturbed
              matrix.   On  exit, the eigenvalues of the repaired
              matrix.

       Q      (input/output) REAL array, dimension (LDQ,N)
              On entry, the eigenvectors of the  rank-1-perturbed
              matrix.   On exit, the eigenvectors of the repaired
              tridiagonal matrix.

       LDQ    (input) INTEGER
              The leading dimension  of  the  array  Q.   LDQ  >=
              max(1,N).

       INDXQ  (input/output) INTEGER array, dimension (N)
              On  entry,  the  permutation which separately sorts
              the two subproblems in D into ascending order.   On
              exit,  the  permutation  which will reintegrate the
              subproblems back into sorted order, i.e. D(  INDXQ(
              I = 1, N ) ) will be in ascending order.

       RHO    (input) REAL
              The  subdiagonal  entry  used  to create the rank-1
              modification.

              CUTPNT (input) INTEGER The  location  of  the  last
              eigenvalue  in the leading sub-matrix.  min(1,N) <=
              CUTPNT <= N/2.

       WORK   (workspace) REAL array, dimension (4*N + N**2)

       IWORK  (workspace) INTEGER array, dimension (4*N)

       INFO   (output) INTEGER
              = 0:  successful exit.
              < 0:  if INFO = -i, the i-th argument had an  ille­
              gal value.
              > 0:  if INFO = 1, an eigenvalue did not converge

       Based on contributions by
          Jeff  Rutter,  Computer Science Division, University of
       California
          at Berkeley, USA
       Modified by Francoise Tisseur, University of Tennessee.


Man(1) output converted with man2html