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

NAME

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

SYNOPSIS

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

PURPOSE

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

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.  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

FURTHER DETAILS

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)
Impressum