1SLAZQ3(1) LAPACK auxiliary routine (version 3.1) SLAZQ3(1)
2
3
4
6 SLAZQ3 - for deflation, computes a shift (TAU) and calls dqds
7
9 SUBROUTINE SLAZQ3( 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 REAL DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, QMAX,
18 SIGMA, TAU
19
20 REAL Z( * )
21
23 SLAZQ3 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) REAL 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) REAL
42 Minimum value of d.
43
44 SIGMA (output) REAL
45 Sum of shifts used in current segment.
46
47 DESIG (input/output) REAL
48 Lower order part of SIGMA
49
50 QMAX (input) REAL
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 SLASQ5).
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 SLAZQ3
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 SLAZQ3
74
75 This is a thread safe version of SLASQ3, 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 SLAZQ3(1)