Reference

dlasq3(3lapack)

checks for deflation, computes a shift (TAU) and calls dqds

NAME

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

SYNOPSIS

SUBROUTINE DLASQ3(

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

LOGICAL

IEEE

INTEGER

I0, ITER, N0, NDIV, NFAIL, PP

DOUBLE

PRECISION DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, QMAX, SIGMA, TAU

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/output) 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) 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.

IEEE (input) LOGICAL

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

TTYPE (input/output) INTEGER

Shift type. DMIN1, DMIN2, DN, DN1, DN2, G, TAU (input/output) DOUBLE PRECISION These are passed as arguments in order to save their values between calls to DLASQ3.