Provided by: scalapack-doc_1.5-10_all bug

NAME

       DLAMSH - send multiple shifts through a small (single node) matrix to  see how consecutive
       small subdiagonal elements are modified by  subsequent shifts in an effort to maximize the
       number of bulges  that can be sent through

SYNOPSIS

       SUBROUTINE DLAMSH ( S, LDS, NBULGE, JBLK, H, LDH, N, ULP )

           INTEGER       LDS, NBULGE, JBLK, LDH, N

           DOUBLE        PRECISION ULP

           DOUBLE        PRECISION S(LDS,*), H(LDH,*)

PURPOSE

       DLAMSH sends multiple shifts through a small (single node) matrix to
          see how consecutive small subdiagonal elements are modified by
          subsequent shifts in an effort to maximize the number of bulges
          that  can  be  sent  through.   DLAMSH  should  only  be called when there are multiple
       shifts/bulges
          (NBULGE > 1) and the first shift is starting in the middle of an
          unreduced Hessenberg matrix because of two or more consecutive small
          subdiagonal elements.

ARGUMENTS

       S       (local input/output) DOUBLE PRECISION array, (LDS,*)
               On entry, the matrix of shifts.  Only the 2x2 diagonal of S is referenced.  It  is
               assumed  that  S has JBLK double shifts (size 2).  On exit, the data is rearranged
               in the best order for applying.

       LDS     (local input) INTEGER
               On entry, the leading dimension of S.  Unchanged on exit.  1 < NBULGE <=  JBLK  <=
               LDS/2

       NBULGE  (local input/output) INTEGER
               On  entry,  the  number of bulges to send through H ( >1 ).  NBULGE should be less
               than the maximum determined (JBLK).  1 < NBULGE <= JBLK  <=  LDS/2  On  exit,  the
               maximum number of bulges that can be sent through.

       JBLK    (local input) INTEGER
               On entry, the number of shifts determined for S.  Unchanged on exit.

       H       (local input/output) DOUBLE PRECISION array (LDH,N)
               On  entry,  the  local matrix to apply the shifts on.  H should be aligned so that
               the starting row is 2.  On exit, the data is destroyed.

       LDS     (local input) INTEGER
               On entry, the leading dimension of S.  Unchanged on exit.

       N       (local input) INTEGER
               On entry, the size of H.  If all the bulges are expected to go through,  N  should
               be at least 4*NBULGE+2.  Otherwise, NBULGE may be reduced by this routine.

       ULP     (local input) DOUBLE PRECISION
               On entry, machine precision Unchanged on exit.

               Implemented by:  G. Henry, May 1, 1997