ZLAMSH(3)     ScaLAPACK routine of NEC Numeric Library Collection    ZLAMSH(3)



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

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

           INTEGER        JBLK, LDH, LDS, N, NBULGE

           DOUBLE         PRECISION ULP

           COMPLEX*16     H( LDH, * ), S( LDS, * )

PURPOSE
       ZLAMSH sends multiple shifts through a small (single  node)  matrix  to
       see  how  consecutive small subdiagonal elements are modified by subse-
       quent shifts in an effort to maximize the number of bulges that can  be
       sent  through.  ZLAMSH  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) COMPLEX*16 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) COMPLEX*16 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.

       LDH     (local input) INTEGER
               On entry, the leading dimension of H.  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.

FURTHER DETAILS
       Implemented by:  M. Fahey, May 28, 1999




ScaLAPACK routine               31 October 2017                      ZLAMSH(3)