1DLASQ3(1)LAPACK routine (version 3.2) DLASQ3(1)
2
3
4
6 DLASQ3 - checks for deflation, computes a shift (TAU) and calls dqds
7
9 SUBROUTINE DLASQ3( I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
10 ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2,
11 G, TAU )
12
13 LOGICAL IEEE
14
15 INTEGER I0, ITER, N0, NDIV, NFAIL, PP
16
17 DOUBLE PRECISION DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2,
18 G, QMAX, SIGMA, TAU
19
20 DOUBLE PRECISION Z( * )
21
23 DLASQ3 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
28 I0 (input) INTEGER
29 First index.
30
31 N0 (input) INTEGER
32 Last index.
33
34 Z (input) DOUBLE PRECISION array, dimension ( 4*N )
35 Z holds the qd array.
36
37 PP (input/output) INTEGER
38 PP=0 for ping, PP=1 for pong. PP=2 indicates that flipping was
39 applied to the Z array and that the initial tests for deflation
40 should not be performed.
41
42 DMIN (output) DOUBLE PRECISION
43 Minimum value of d.
44
45 SIGMA (output) DOUBLE PRECISION
46 Sum of shifts used in current segment.
47
48 DESIG (input/output) DOUBLE PRECISION
49 Lower order part of SIGMA
50
51 QMAX (input) DOUBLE PRECISION
52 Maximum value of q.
53
54 NFAIL (output) INTEGER
55 Number of times shift was too big.
56
57 ITER (output) INTEGER
58 Number of iterations.
59
60 NDIV (output) INTEGER
61 Number of divisions.
62
63 IEEE (input) LOGICAL
64 Flag for IEEE or non IEEE arithmetic (passed to DLASQ5).
65
66 TTYPE (input/output) INTEGER
67 Shift type. DMIN1, DMIN2, DN, DN1, DN2, G, TAU (input/output)
68 DOUBLE PRECISION These are passed as arguments in order to save
69 their values between calls to DLASQ3.
70
71
72
73 LAPACK routine (version 3.2) November 2008 DLASQ3(1)