dlazq3 (l)  Linux Man Pages
dlazq3: for deflation, computes a shift (TAU) and calls dqds
NAME
DLAZQ3  for deflation, computes a shift (TAU) and calls dqdsSYNOPSIS
 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 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.
 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.