DLASQ3  -  check for deflation, computes a shift (TAU) and
       calls dqds


SYNOPSIS

       SUBROUTINE DLASQ3( I0, N0,  Z,  PP,  DMIN,  SIGMA,  DESIG,
                          QMAX, NFAIL, ITER, NDIV, IEEE )

           LOGICAL        IEEE

           INTEGER        I0, ITER, N0, NDIV, NFAIL, PP

           DOUBLE         PRECISION DESIG, DMIN, QMAX, SIGMA

           DOUBLE         PRECISION Z( * )


PURPOSE

       DLASQ3  checks  for  deflation, computes a shift (TAU) and
       calls dqds. In case of  failure  it  changes  shifts,  and
       tries again until output is positive.


ARGUMENTS

       I0     (input) INTEGER
              First index.

       N0     (input) INTEGER
              Last index.

       Z      (input) DOUBLE PRECISION array, dimension ( 4*N )
              Z holds the qd array.

       PP     (input) INTEGER
              PP=0 for ping, PP=1 for pong.

       DMIN   (output) DOUBLE PRECISION
              Minimum value of d.

       SIGMA  (output) DOUBLE PRECISION
              Sum of shifts used in current segment.

       DESIG  (input/output) DOUBLE PRECISION
              Lower order part of SIGMA

       QMAX   (input) DOUBLE PRECISION
              Maximum value of q.

       NFAIL  (output) INTEGER
              Number of times shift was too big.

       ITER   (output) INTEGER
              Number of iterations.

              Number of divisions.

       TTYPE  (output) INTEGER
              Shift type.

       IEEE   (input) LOGICAL
              Flag  for  IEEE  or  non IEEE arithmetic (passed to
              DLASQ5).


Man(1) output converted with man2html