1DLAZQ3(1) LAPACK auxiliary routine (version 3.1) DLAZQ3(1)
2
3
4
6 DLAZQ3 - for deflation, computes a shift (TAU) and calls dqds
7
9 SUBROUTINE DLAZQ3( I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
10 ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2,
11 TAU )
12
13 LOGICAL IEEE
14
15 INTEGER I0, ITER, N0, NDIV, NFAIL, PP, TTYPE
16
17 DOUBLE PRECISION DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2,
18 QMAX, SIGMA, TAU
19
20 DOUBLE PRECISION Z( * )
21
23 DLAZQ3 checks for deflation, computes a shift (TAU) and calls dqds. In
24 case of failure it changes shifts, and tries again until output is pos‐
25 itive.
26
27
29 I0 (input) INTEGER
30 First index.
31
32 N0 (input) INTEGER
33 Last index.
34
35 Z (input) DOUBLE PRECISION array, dimension ( 4*N )
36 Z holds the qd array.
37
38 PP (input) INTEGER
39 PP=0 for ping, PP=1 for pong.
40
41 DMIN (output) DOUBLE PRECISION
42 Minimum value of d.
43
44 SIGMA (output) DOUBLE PRECISION
45 Sum of shifts used in current segment.
46
47 DESIG (input/output) DOUBLE PRECISION
48 Lower order part of SIGMA
49
50 QMAX (input) DOUBLE PRECISION
51 Maximum value of q.
52
53 NFAIL (output) INTEGER
54 Number of times shift was too big.
55
56 ITER (output) INTEGER
57 Number of iterations.
58
59 NDIV (output) INTEGER
60 Number of divisions.
61
62 IEEE (input) LOGICAL
63 Flag for IEEE or non IEEE arithmetic (passed to DLASQ5).
64
65 TTYPE (input/output) INTEGER
66 Shift type. TTYPE is passed as an argument in order to save its
67 value between calls to DLAZQ3
68
69 DMIN1 (input/output) REAL
70 DMIN2 (input/output) REAL DN (input/output) REAL DN1
71 (input/output) REAL DN2 (input/output) REAL TAU
72 (input/output) REAL These are passed as arguments in order to
73 save their values between calls to DLAZQ3
74
75 This is a thread safe version of DLASQ3, which passes TTYPE,
76 DMIN1, DMIN2, DN, DN1. DN2 and TAU through the argument list in
77 place of declaring them in a SAVE statment.
78
79
80
81 LAPACK auxiliary routine (versionOc3t.o1b)er 2006 DLAZQ3(1)