1SLASD2(1)           LAPACK auxiliary routine (version 3.1)           SLASD2(1)
2
3
4

NAME

6       SLASD2  - the two sets of singular values together into a single sorted
7       set
8

SYNOPSIS

10       SUBROUTINE SLASD2( NL, NR, SQRE, K, D, Z,  ALPHA,  BETA,  U,  LDU,  VT,
11                          LDVT, DSIGMA, U2, LDU2, VT2, LDVT2, IDXP, IDX, IDXC,
12                          IDXQ, COLTYP, INFO )
13
14           INTEGER        INFO, K, LDU, LDU2, LDVT, LDVT2, NL, NR, SQRE
15
16           REAL           ALPHA, BETA
17
18           INTEGER        COLTYP( * ), IDX( * ), IDXC( * ), IDXP( * ), IDXQ( *
19                          )
20
21           REAL           D( * ), DSIGMA( * ), U( LDU, * ), U2( LDU2, * ), VT(
22                          LDVT, * ), VT2( LDVT2, * ), Z( * )
23

PURPOSE

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

ARGUMENTS

36       NL     (input) INTEGER
37              The row dimension of the upper block.  NL >= 1.
38
39       NR     (input) INTEGER
40              The row dimension of the lower block.  NR >= 1.
41
42       SQRE   (input) INTEGER
43              = 0: the lower block is an NR-by-NR square matrix.
44              = 1: the lower block is an NR-by-(NR+1) rectangular matrix.
45
46              The  bidiagonal matrix has N = NL + NR + 1 rows and M = N + SQRE
47              >= N columns.
48
49       K      (output) INTEGER
50              Contains the dimension of the non-deflated matrix, This  is  the
51              order of the related secular equation. 1 <= K <=N.
52
53       D      (input/output) REAL array, dimension (N)
54              On  entry  D contains the singular values of the two submatrices
55              to be combined.  On exit D contains the trailing  (N-K)  updated
56              singular values (those which were deflated) sorted into increas‐
57              ing order.
58
59       Z      (output) REAL array, dimension (N)
60              On exit Z contains the updating row vector in the secular  equa‐
61              tion.
62
63       ALPHA  (input) REAL
64              Contains the diagonal element associated with the added row.
65
66       BETA   (input) REAL
67              Contains the off-diagonal element associated with the added row.
68
69       U      (input/output) REAL array, dimension (LDU,N)
70              On entry U contains the left singular vectors of two submatrices
71              in the two square blocks with corners at (1,1),  (NL,  NL),  and
72              (NL+2,  NL+2),  (N,N).   On  exit  U contains the trailing (N-K)
73              updated left singular vectors (those which were deflated) in its
74              last N-K columns.
75
76       LDU    (input) INTEGER
77              The leading dimension of the array U.  LDU >= N.
78
79       VT     (input/output) REAL array, dimension (LDVT,M)
80              On  entry  VT' contains the right singular vectors of two subma‐
81              trices in the two square blocks with corners  at  (1,1),  (NL+1,
82              NL+1), and (NL+2, NL+2), (M,M).  On exit VT' contains the trail‐
83              ing (N-K) updated  right  singular  vectors  (those  which  were
84              deflated)  in  its  last N-K columns.  In case SQRE =1, the last
85              row of VT spans the right null space.
86
87       LDVT   (input) INTEGER
88              The leading dimension of the array VT.  LDVT >= M.
89
90              DSIGMA (output) REAL array, dimension (N) Contains a copy of the
91              diagonal elements (K-1 singular values and one zero) in the sec‐
92              ular equation.
93
94       U2     (output) REAL array, dimension (LDU2,N)
95              Contains a copy of the first K-1  left  singular  vectors  which
96              will be used by SLASD3 in a matrix multiply (SGEMM) to solve for
97              the new left singular vectors. U2 is arranged into four  blocks.
98              The first block contains a column with 1 at NL+1 and zero every‐
99              where else; the second block contains non-zero entries  only  at
100              and  above  NL;  the  third contains non-zero entries only below
101              NL+1; and the fourth is dense.
102
103       LDU2   (input) INTEGER
104              The leading dimension of the array U2.  LDU2 >= N.
105
106       VT2    (output) REAL array, dimension (LDVT2,N)
107              VT2' contains a copy of the first K right singular vectors which
108              will be used by SLASD3 in a matrix multiply (SGEMM) to solve for
109              the new right singular  vectors.  VT2  is  arranged  into  three
110              blocks.  The  first block contains a row that corresponds to the
111              special 0 diagonal element in SIGMA; the second  block  contains
112              non-zeros  only  at  and  before NL +1; the third block contains
113              non-zeros only at and after  NL +2.
114
115       LDVT2  (input) INTEGER
116              The leading dimension of the array VT2.  LDVT2 >= M.
117
118       IDXP   (workspace) INTEGER array, dimension (N)
119              This will contain the permutation used to place deflated  values
120              of D at the end of the array. On output IDXP(2:K)
121              points to the nondeflated D-values and IDXP(K+1:N) points to the
122              deflated singular values.
123
124       IDX    (workspace) INTEGER array, dimension (N)
125              This will contain the permutation used to sort the contents of D
126              into ascending order.
127
128       IDXC   (output) INTEGER array, dimension (N)
129              This will contain the permutation used to arrange the columns of
130              the deflated U matrix into three groups:  the first  group  con‐
131              tains non-zero entries only at and above NL, the second contains
132              non-zero entries only below NL+2, and the third is dense.
133
134       IDXQ   (input/output) INTEGER array, dimension (N)
135              This contains the permutation which  separately  sorts  the  two
136              sub-problems  in  D  into ascending order.  Note that entries in
137              the first hlaf of this permutation must first be moved one posi‐
138              tion  backward;  and  entries in the second half must first have
139              NL+1 added to their values.
140
141              COLTYP  (workspace/output)  INTEGER  array,  dimension  (N)   As
142              workspace,  this  will contain a label which will indicate which
143              of the following types a column in the U2 matrix or a row in the
144              VT2 matrix is:
145              1 : non-zero in the upper half only
146              2 : non-zero in the lower half only
147              3 : dense
148              4 : deflated
149
150              On exit, it is an array of dimension 4, with COLTYP(I) being the
151              dimension of the I-th type columns.
152
153       INFO   (output) INTEGER
154              = 0:  successful exit.
155              < 0:  if INFO = -i, the i-th argument had an illegal value.
156

FURTHER DETAILS

158       Based on contributions by
159          Ming Gu and Huan Ren, Computer Science Division, University of
160          California at Berkeley, USA
161
162
163
164
165 LAPACK auxiliary routine (versionNo3v.e1m)ber 2006                       SLASD2(1)
Impressum