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

NAME

6       SLASD3  -  finds all the square roots of the roots of the secular equa‐
7       tion, as 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       This code makes very mild assumptions about floating point  arithmetic.
25       It  will  work  on  machines  with a guard digit in add/subtract, or on
26       those binary machines without guard digits which subtract like the Cray
27       XMP,  Cray  YMP,  Cray  C  90, or Cray 2.  It could conceivably fail on
28       hexadecimal or decimal machines without guard digits, but  we  know  of
29       none.
30       SLASD3 is called from SLASD1.
31

ARGUMENTS

33       NL     (input) INTEGER
34              The row dimension of the upper block.  NL >= 1.
35
36       NR     (input) INTEGER
37              The row dimension of the lower block.  NR >= 1.
38
39       SQRE   (input) INTEGER
40              = 0: the lower block is an NR-by-NR square matrix.
41              = 1: the lower block is an NR-by-(NR+1) rectangular matrix.  The
42              bidiagonal matrix has N = NL + NR + 1 rows and M = N + SQRE >= N
43              columns.
44
45       K      (input) INTEGER
46              The size of the secular equation, 1 =< K = < N.
47
48       D      (output) REAL array, dimension(K)
49              On  exit  the square roots of the roots of the secular equation,
50              in ascending order.
51
52       Q      (workspace) REAL array,
53              dimension at least (LDQ,K).
54
55       LDQ    (input) INTEGER
56              The leading dimension  of  the  array  Q.   LDQ  >=  K.   DSIGMA
57              (input/output)  REAL array, dimension(K) The first K elements of
58              this array contain the old roots of the deflated updating  prob‐
59              lem.  These are the poles of the secular equation.
60
61       U      (output) REAL array, dimension (LDU, N)
62              The  last N - K columns of this matrix contain the deflated left
63              singular vectors.
64
65       LDU    (input) INTEGER
66              The leading dimension of the array U.  LDU >= N.
67
68       U2     (input) REAL array, dimension (LDU2, N)
69              The first K columns of this matrix contain the non-deflated left
70              singular vectors for the split problem.
71
72       LDU2   (input) INTEGER
73              The leading dimension of the array U2.  LDU2 >= N.
74
75       VT     (output) REAL array, dimension (LDVT, M)
76              The  last M - K columns of VT' contain the deflated right singu‐
77              lar vectors.
78
79       LDVT   (input) INTEGER
80              The leading dimension of the array VT.  LDVT >= N.
81
82       VT2    (input/output) REAL array, dimension (LDVT2, N)
83              The first K columns of VT2' contain the non-deflated right  sin‐
84              gular vectors for the split problem.
85
86       LDVT2  (input) INTEGER
87              The leading dimension of the array VT2.  LDVT2 >= N.
88
89       IDXC   (input) INTEGER array, dimension (N)
90              The  permutation  used  to arrange the columns of U (and rows of
91              VT) into  three  groups:   the  first  group  contains  non-zero
92              entries only at and above (or before) NL +1; the second contains
93              non-zero entries only at and below  (or  after)  NL+2;  and  the
94              third  is  dense.  The  first  column of U and the row of VT are
95              treated separately, however.  The rows of the  singular  vectors
96              found by SLASD4 must be likewise permuted before the matrix mul‐
97              tiplies can take place.
98
99       CTOT   (input) INTEGER array, dimension (4)
100              A count of the total number of the various types of columns in U
101              (or rows in VT), as described in IDXC. The fourth column type is
102              any column which has been deflated.
103
104       Z      (input/output) REAL array, dimension (K)
105              The first K elements of this array contain the components of the
106              deflation-adjusted updating row vector.
107
108       INFO   (output) INTEGER
109              = 0:  successful exit.
110              < 0:  if INFO = -i, the i-th argument had an illegal value.
111              > 0:  if INFO = 1, an singular value did not converge
112

FURTHER DETAILS

114       Based on contributions by
115          Ming Gu and Huan Ren, Computer Science Division, University of
116          California at Berkeley, USA
117
118
119
120 LAPACK auxiliary routine (versionNo3v.e2m)ber 2008                       SLASD3(1)
Impressum