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

NAME

6       SLASD3  - all the square roots of the roots of the secular equation, as
7       defined by the values in D and Z
8

SYNOPSIS

10       SUBROUTINE SLASD3( NL, NR, SQRE, K, D, Q,  LDQ,  DSIGMA,  U,  LDU,  U2,
11                          LDU2, VT, LDVT, VT2, LDVT2, IDXC, CTOT, Z, INFO )
12
13           INTEGER        INFO, K, LDQ, LDU, LDU2, LDVT, LDVT2, NL, NR, SQRE
14
15           INTEGER        CTOT( * ), IDXC( * )
16
17           REAL           D(  *  ), DSIGMA( * ), Q( LDQ, * ), U( LDU, * ), U2(
18                          LDU2, * ), VT( LDVT, * ), VT2( LDVT2, * ), Z( * )
19

PURPOSE

21       SLASD3 finds all the square roots of the roots of the secular equation,
22       as defined by the values in D and Z.  It makes the appropriate calls to
23       SLASD4 and then updates the singular vectors by matrix multiplication.
24
25       This code makes very mild assumptions about floating point  arithmetic.
26       It  will  work  on  machines  with a guard digit in add/subtract, or on
27       those binary machines without guard digits which subtract like the Cray
28       XMP,  Cray  YMP,  Cray  C  90, or Cray 2.  It could conceivably fail on
29       hexadecimal or decimal machines without guard digits, but  we  know  of
30       none.
31
32       SLASD3 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      (input) INTEGER
50              The size of the secular equation, 1 =< K = < N.
51
52       D      (output) REAL array, dimension(K)
53              On exit the square roots of the roots of the  secular  equation,
54              in ascending order.
55
56       Q      (workspace) REAL array,
57              dimension at least (LDQ,K).
58
59       LDQ    (input) INTEGER
60              The leading dimension of the array Q.  LDQ >= K.
61
62              DSIGMA  (input/output) REAL array, dimension(K) The first K ele‐
63              ments of this array contain the old roots of the deflated updat‐
64              ing problem.  These are the poles of the secular equation.
65
66       U      (output) REAL array, dimension (LDU, N)
67              The  last N - K columns of this matrix contain the deflated left
68              singular vectors.
69
70       LDU    (input) INTEGER
71              The leading dimension of the array U.  LDU >= N.
72
73       U2     (input) REAL array, dimension (LDU2, N)
74              The first K columns of this matrix contain the non-deflated left
75              singular vectors for the split problem.
76
77       LDU2   (input) INTEGER
78              The leading dimension of the array U2.  LDU2 >= N.
79
80       VT     (output) REAL array, dimension (LDVT, M)
81              The  last M - K columns of VT' contain the deflated right singu‐
82              lar vectors.
83
84       LDVT   (input) INTEGER
85              The leading dimension of the array VT.  LDVT >= N.
86
87       VT2    (input/output) REAL array, dimension (LDVT2, N)
88              The first K columns of VT2' contain the non-deflated right  sin‐
89              gular vectors for the split problem.
90
91       LDVT2  (input) INTEGER
92              The leading dimension of the array VT2.  LDVT2 >= N.
93
94       IDXC   (input) INTEGER array, dimension (N)
95              The  permutation  used  to arrange the columns of U (and rows of
96              VT) into  three  groups:   the  first  group  contains  non-zero
97              entries only at and above (or before) NL +1; the second contains
98              non-zero entries only at and below  (or  after)  NL+2;  and  the
99              third  is  dense.  The  first  column of U and the row of VT are
100              treated separately, however.
101
102              The rows of the singular vectors found by SLASD4 must  be  like‐
103              wise permuted before the matrix multiplies can take place.
104
105       CTOT   (input) INTEGER array, dimension (4)
106              A count of the total number of the various types of columns in U
107              (or rows in VT), as described in IDXC. The fourth column type is
108              any column which has been deflated.
109
110       Z      (input/output) REAL array, dimension (K)
111              The first K elements of this array contain the components of the
112              deflation-adjusted updating row vector.
113
114       INFO   (output) INTEGER
115              = 0:  successful exit.
116              < 0:  if INFO = -i, the i-th argument had an illegal value.
117              > 0:  if INFO = 1, an singular value did not converge
118

FURTHER DETAILS

120       Based on contributions by
121          Ming Gu and Huan Ren, Computer Science Division, University of
122          California at Berkeley, USA
123
124
125
126
127 LAPACK auxiliary routine (versionNo3v.e1m)ber 2006                       SLASD3(1)
Impressum