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

NAME

6       DLAED8  -  merges  the  two  sets of eigenvalues together into a single
7       sorted set
8

SYNOPSIS

10       SUBROUTINE DLAED8( ICOMPQ, K, N, QSIZ, D, Q, LDQ, INDXQ,  RHO,  CUTPNT,
11                          Z,  DLAMDA,  Q2,  LDQ2,  W,  PERM,  GIVPTR,  GIVCOL,
12                          GIVNUM, INDXP, INDX, INFO )
13
14           INTEGER        CUTPNT, GIVPTR, ICOMPQ, INFO, K, LDQ, LDQ2, N, QSIZ
15
16           DOUBLE         PRECISION RHO
17
18           INTEGER        GIVCOL( 2, * ), INDX( * ), INDXP( * ), INDXQ(  *  ),
19                          PERM( * )
20
21           DOUBLE         PRECISION  D(  *  ), DLAMDA( * ), GIVNUM( 2, * ), Q(
22                          LDQ, * ), Q2( LDQ2, * ), W( * ), Z( * )
23

PURPOSE

25       DLAED8 merges the two sets of eigenvalues together into a single sorted
26       set.   Then it tries to deflate the size of the problem.  There are two
27       ways in which deflation can occur:  when two or  more  eigenvalues  are
28       close together or if there is a tiny element in the Z vector.  For each
29       such occurrence the order of the related secular  equation  problem  is
30       reduced by one.
31

ARGUMENTS

33       ICOMPQ  (input) INTEGER
34               = 0:  Compute eigenvalues only.
35               =  1:   Compute eigenvectors of original dense symmetric matrix
36               also.  On entry, Q  contains  the  orthogonal  matrix  used  to
37               reduce the original matrix to tridiagonal form.
38
39       K      (output) INTEGER
40              The  number  of  non-deflated  eigenvalues, and the order of the
41              related secular equation.
42
43       N      (input) INTEGER
44              The dimension of the symmetric tridiagonal matrix.  N >= 0.
45
46       QSIZ   (input) INTEGER
47              The dimension of the orthogonal matrix used to reduce  the  full
48              matrix to tridiagonal form.  QSIZ >= N if ICOMPQ = 1.
49
50       D      (input/output) DOUBLE PRECISION array, dimension (N)
51              On entry, the eigenvalues of the two submatrices to be combined.
52              On exit, the trailing (N-K)  updated  eigenvalues  (those  which
53              were deflated) sorted into increasing order.
54
55       Q      (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
56              If ICOMPQ = 0, Q is not referenced.  Otherwise, on entry, Q con‐
57              tains the eigenvectors of the partially solved system which  has
58              been  previously  updated  in  matrix multiplies with other par‐
59              tially solved eigensystems.  On exit, Q  contains  the  trailing
60              (N-K)  updated  eigenvectors  (those which were deflated) in its
61              last N-K columns.
62
63       LDQ    (input) INTEGER
64              The leading dimension of the array Q.  LDQ >= max(1,N).
65
66       INDXQ  (input) INTEGER array, dimension (N)
67              The permutation which separately sorts the two sub-problems in D
68              into  ascending order.  Note that elements in the second half of
69              this permutation must first have CUTPNT added to their values in
70              order to be accurate.
71
72       RHO    (input/output) DOUBLE PRECISION
73              On  entry,  the  off-diagonal element associated with the rank-1
74              cut which originally split the two  submatrices  which  are  now
75              being  recombined.   On exit, RHO has been modified to the value
76              required by DLAED3.  CUTPNT (input) INTEGER The location of  the
77              last  eigenvalue  in the leading sub-matrix.  min(1,N) <= CUTPNT
78              <= N.
79
80       Z      (input) DOUBLE PRECISION array, dimension (N)
81              On entry, Z contains the updating vector (the last  row  of  the
82              first  sub-eigenvector  matrix  and  the first row of the second
83              sub-eigenvector  matrix).   On  exit,  the  contents  of  Z  are
84              destroyed  by the updating process.  DLAMDA (output) DOUBLE PRE‐
85              CISION array, dimension (N) A copy of the  first  K  eigenvalues
86              which will be used by DLAED3 to form the secular equation.
87
88       Q2     (output) DOUBLE PRECISION array, dimension (LDQ2,N)
89              If  ICOMPQ  = 0, Q2 is not referenced.  Otherwise, a copy of the
90              first K eigenvectors which will be used by DLAED7  in  a  matrix
91              multiply (DGEMM) to update the new eigenvectors.
92
93       LDQ2   (input) INTEGER
94              The leading dimension of the array Q2.  LDQ2 >= max(1,N).
95
96       W      (output) DOUBLE PRECISION array, dimension (N)
97              The  first  k values of the final deflation-altered z-vector and
98              will be passed to DLAED3.
99
100       PERM   (output) INTEGER array, dimension (N)
101              The permutations (from deflation and sorting) to be  applied  to
102              each  eigenblock.   GIVPTR (output) INTEGER The number of Givens
103              rotations which took place in this subproblem.  GIVCOL  (output)
104              INTEGER array, dimension (2, N) Each pair of numbers indicates a
105              pair of columns to take place  in  a  Givens  rotation.   GIVNUM
106              (output)  DOUBLE  PRECISION  array, dimension (2, N) Each number
107              indicates the S value to be used  in  the  corresponding  Givens
108              rotation.
109
110       INDXP  (workspace) INTEGER array, dimension (N)
111              The permutation used to place deflated values of D at the end of
112              the array.  INDXP(1:K) points to the nondeflated D-values
113              and INDXP(K+1:N) points to the deflated eigenvalues.
114
115       INDX   (workspace) INTEGER array, dimension (N)
116              The permutation used to sort the contents of  D  into  ascending
117              order.
118
119       INFO   (output) INTEGER
120              = 0:  successful exit.
121              < 0:  if INFO = -i, the i-th argument had an illegal value.
122

FURTHER DETAILS

124       Based on contributions by
125          Jeff Rutter, Computer Science Division, University of California
126          at Berkeley, USA
127
128
129
130 LAPACK routine (version 3.2)    November 2008                       DLAED8(1)
Impressum