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