1SLAEDA(1)                LAPACK routine (version 3.1)                SLAEDA(1)
2
3
4

NAME

6       SLAEDA  -  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

SYNOPSIS

10       SUBROUTINE SLAEDA( 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           REAL           GIVNUM( 2, * ), Q( * ), Z( * ), ZTEMP( * )
19

PURPOSE

21       SLAEDA 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

ARGUMENTS

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) REAL array, dimension (2, N  lg  N)  Each  number
61              indicates  the  S  value  to be used in the corresponding Givens
62              rotation.
63
64       Q      (input) REAL 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) REAL 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) REAL 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

FURTHER DETAILS

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                       SLAEDA(1)
Impressum