1DLAEDA(1) LAPACK routine (version 3.1) DLAEDA(1)
2
3
4
6 DLAEDA - the Z vector corresponding to the merge step in the CURLVLth
7 step of the merge process with TLVLS steps for the CURPBMth problem
8
10 SUBROUTINE DLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR, GIV‐
11 COL, GIVNUM, Q, QPTR, Z, ZTEMP, INFO )
12
13 INTEGER CURLVL, CURPBM, INFO, N, TLVLS
14
15 INTEGER GIVCOL( 2, * ), GIVPTR( * ), PERM( * ), PRMPTR( * ),
16 QPTR( * )
17
18 DOUBLE PRECISION GIVNUM( 2, * ), Q( * ), Z( * ), ZTEMP( * )
19
21 DLAEDA computes the Z vector corresponding to the merge step in the
22 CURLVLth step of the merge process with TLVLS steps for the CURPBMth
23 problem.
24
25
27 N (input) INTEGER
28 The dimension of the symmetric tridiagonal matrix. N >= 0.
29
30 TLVLS (input) INTEGER
31 The total number of merging levels in the overall divide and
32 conquer tree.
33
34 CURLVL (input) INTEGER The current level in the overall merge
35 routine, 0 <= curlvl <= tlvls.
36
37 CURPBM (input) INTEGER The current problem in the current level
38 in the overall merge routine (counting from upper left to lower
39 right).
40
41 PRMPTR (input) INTEGER array, dimension (N lg N) Contains a list
42 of pointers which indicate where in PERM a level's permutation
43 is stored. PRMPTR(i+1) - PRMPTR(i) indicates the size of the
44 permutation and incidentally the size of the full, non-deflated
45 problem.
46
47 PERM (input) INTEGER array, dimension (N lg N)
48 Contains the permutations (from deflation and sorting) to be
49 applied to each eigenblock.
50
51 GIVPTR (input) INTEGER array, dimension (N lg N) Contains a list
52 of pointers which indicate where in GIVCOL a level's Givens
53 rotations are stored. GIVPTR(i+1) - GIVPTR(i) indicates the
54 number of Givens rotations.
55
56 GIVCOL (input) INTEGER array, dimension (2, N lg N) Each pair of
57 numbers indicates a pair of columns to take place in a Givens
58 rotation.
59
60 GIVNUM (input) DOUBLE PRECISION array, dimension (2, N lg N)
61 Each number indicates the S value to be used in the correspond‐
62 ing Givens rotation.
63
64 Q (input) DOUBLE PRECISION array, dimension (N**2)
65 Contains the square eigenblocks from previous levels, the start‐
66 ing positions for blocks are given by QPTR.
67
68 QPTR (input) INTEGER array, dimension (N+2)
69 Contains a list of pointers which indicate where in Q an eigen‐
70 block is stored. SQRT( QPTR(i+1) - QPTR(i) ) indicates the size
71 of the block.
72
73 Z (output) DOUBLE PRECISION array, dimension (N)
74 On output this vector contains the updating vector (the last row
75 of the first sub-eigenvector matrix and the first row of the
76 second sub-eigenvector matrix).
77
78 ZTEMP (workspace) DOUBLE PRECISION array, dimension (N)
79
80 INFO (output) INTEGER
81 = 0: successful exit.
82 < 0: if INFO = -i, the i-th argument had an illegal value.
83
85 Based on contributions by
86 Jeff Rutter, Computer Science Division, University of California
87 at Berkeley, USA
88
89
90
91
92 LAPACK routine (version 3.1) November 2006 DLAEDA(1)