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



NAME
       SLASQ3

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



PURPOSE
            SLASQ3 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 REAL 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 REAL
                    Minimum value of d.

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

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

           QMAX      (input)
                     QMAX is REAL
                    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 SLASQ5).

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

           DMIN1     (input/output)
                     DMIN1 is REAL

           DMIN2     (input/output)
                     DMIN2 is REAL

           DN        (input/output)
                     DN is REAL

           DN1       (input/output)
                     DN1 is REAL

           DN2       (input/output)
                     DN2 is REAL

           G         (input/output)
                     G is REAL

           TAU       (input/output)
                     TAU is REAL

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



LAPACK routine                  31 October 2017                      SLASQ3(3)