DLASQ3(3f)

NAME
DLASQ3 - 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.

NDIV   (output) INTEGER
    Number of divisions.

TTYPE  (output) INTEGER
    Shift type.

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