DLASQ3(3)      LAPACK routine of NEC Numeric Library Collection      DLASQ3(3)



NAME
       DLASQ3

SYNOPSIS
       SUBROUTINE DLASQ3 (I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
           ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, G, TAU)



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)
                     I0 is INTEGER
                    First index.

           N0        (input/output)
                     N0 is INTEGER
                    Last index.

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

           PP        (input/output)
                     PP is INTEGER
                    PP=0 for ping, PP=1 for pong.
                    PP=2 indicates that flipping was applied to the Z array
                    and that the initial tests for deflation should not be
                    performed.

           DMIN      (output)
                     DMIN is DOUBLE PRECISION
                    Minimum value of d.

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

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

           QMAX      (input)
                     QMAX is DOUBLE PRECISION
                    Maximum value of q.

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

           ITER      (output)
                     ITER is INTEGER
                    Number of iterations.

           NDIV      (output)
                     NDIV is INTEGER
                    Number of divisions.

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

           TTYPE     (input/output)
                     TTYPE is INTEGER
                    Shift type.

           DMIN1     (input/output)
                     DMIN1 is DOUBLE PRECISION

           DMIN2     (input/output)
                     DMIN2 is DOUBLE PRECISION

           DN        (input/output)
                     DN is DOUBLE PRECISION

           DN1       (input/output)
                     DN1 is DOUBLE PRECISION

           DN2       (input/output)
                     DN2 is DOUBLE PRECISION

           G         (input/output)
                     G is DOUBLE PRECISION

           TAU       (input/output)
                     TAU is DOUBLE PRECISION

                    These are passed as arguments in order to save their values
                    between calls to DLASQ3.



LAPACK routine                  31 October 2017                      DLASQ3(3)