DLAZQ3(1) LAPACK auxiliary routine (version 3.1) DLAZQ3(1)NAME
DLAZQ3 - for deflation, computes a shift (TAU) and calls dqds
SYNOPSIS
SUBROUTINE DLAZQ3( I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2,
TAU )
LOGICAL IEEE
INTEGER I0, ITER, N0, NDIV, NFAIL, PP, TTYPE
DOUBLE PRECISION DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2,
QMAX, SIGMA, TAU
DOUBLE PRECISION Z( * )
PURPOSE
DLAZQ3 checks for deflation, computes a shift (TAU) and calls dqds. In
case of failure it changes shifts, and tries again until output is pos‐
itive.
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.
IEEE (input) LOGICAL
Flag for IEEE or non IEEE arithmetic (passed to DLASQ5).
TTYPE (input/output) INTEGER
Shift type. TTYPE is passed as an argument in order to save its
value between calls to DLAZQ3
DMIN1 (input/output) REAL
DMIN2 (input/output) REAL DN (input/output) REAL DN1
(input/output) REAL DN2 (input/output) REAL TAU
(input/output) REAL These are passed as arguments in order to
save their values between calls to DLAZQ3
This is a thread safe version of DLASQ3, which passes TTYPE,
DMIN1, DMIN2, DN, DN1. DN2 and TAU through the argument list in
place of declaring them in a SAVE statment.
LAPACK auxiliary routine (versioOctober 2006 DLAZQ3(1)