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

NAME

6       SLASD1 - the SVD of an upper bidiagonal N-by-M matrix B,
7

SYNOPSIS

9       SUBROUTINE SLASD1( NL,  NR,  SQRE,  D,  ALPHA,  BETA, U, LDU, VT, LDVT,
10                          IDXQ, IWORK, WORK, INFO )
11
12           INTEGER        INFO, LDU, LDVT, NL, NR, SQRE
13
14           REAL           ALPHA, BETA
15
16           INTEGER        IDXQ( * ), IWORK( * )
17
18           REAL           D( * ), U( LDU, * ), VT( LDVT, * ), WORK( * )
19

PURPOSE

21       SLASD1 computes the SVD of an upper bidiagonal N-by-M matrix B, where N
22       = NL + NR + 1 and M = N + SQRE. SLASD1 is called from SLASD0.
23
24       A related subroutine SLASD7 handles the case in which the singular val‐
25       ues (and the singular vectors in factored form) are desired.
26
27       SLASD1 computes the SVD as follows:
28
29                     ( D1(in)  0    0     0 )
30         B = U(in) * (   Z1'   a   Z2'    b ) * VT(in)
31                     (   0     0   D2(in) 0 )
32
33           = U(out) * ( D(out) 0) * VT(out)
34
35       where Z' = (Z1' a Z2' b) = u' VT', and u is a  vector  of  dimension  M
36       with  ALPHA  and  BETA  in the NL+1 and NL+2 th entries and zeros else‐
37       where; and the entry b is empty if SQRE = 0.
38
39       The left singular vectors of the original matrix are stored in  U,  and
40       the  transpose  of the right singular vectors are stored in VT, and the
41       singular values are in D.  The algorithm consists of three stages:
42
43          The first stage consists of deflating the size of the problem
44          when there are multiple singular values or when there are zeros in
45          the Z vector.  For each such occurence the dimension of the
46          secular equation problem is reduced by one.  This stage is
47          performed by the routine SLASD2.
48
49          The second stage consists of calculating the updated
50          singular values. This is done by finding the square roots of the
51          roots of the secular equation via the routine SLASD4 (as called
52          by SLASD3). This routine also calculates the singular vectors of
53          the current problem.
54
55          The final stage consists of computing the updated singular vectors
56          directly using the updated singular values.  The singular vectors
57          for the current problem are multiplied with the singular vectors
58          from the overall problem.
59
60

ARGUMENTS

62       NL     (input) INTEGER
63              The row dimension of the upper block.  NL >= 1.
64
65       NR     (input) INTEGER
66              The row dimension of the lower block.  NR >= 1.
67
68       SQRE   (input) INTEGER
69              = 0: the lower block is an NR-by-NR square matrix.
70              = 1: the lower block is an NR-by-(NR+1) rectangular matrix.
71
72              The bidiagonal matrix has row dimension N = NL +  NR  +  1,  and
73              column dimension M = N + SQRE.
74
75       D      (input/output) REAL array, dimension (NL+NR+1).
76              N  =  NL+NR+1 On entry D(1:NL,1:NL) contains the singular values
77              of the
78              upper block; and D(NL+2:N) contains the singular values of
79              the lower block. On exit D(1:N) contains the singular values  of
80              the modified matrix.
81
82       ALPHA  (input/output) REAL
83              Contains the diagonal element associated with the added row.
84
85       BETA   (input/output) REAL
86              Contains the off-diagonal element associated with the added row.
87
88       U      (input/output) REAL array, dimension (LDU,N)
89              On entry U(1:NL, 1:NL) contains the left singular vectors of
90              the  upper  block;  U(NL+2:N, NL+2:N) contains the left singular
91              vectors of the lower block. On exit U contains the left singular
92              vectors of the bidiagonal matrix.
93
94       LDU    (input) INTEGER
95              The leading dimension of the array U.  LDU >= max( 1, N ).
96
97       VT     (input/output) REAL array, dimension (LDVT,M)
98              where  M  = N + SQRE.  On entry VT(1:NL+1, 1:NL+1)' contains the
99              right singular
100              vectors of the upper block;  VT(NL+2:M,  NL+2:M)'  contains  the
101              right  singular vectors of the lower block. On exit VT' contains
102              the right singular vectors of the bidiagonal matrix.
103
104       LDVT   (input) INTEGER
105              The leading dimension of the array VT.  LDVT >= max( 1, M ).
106
107       IDXQ  (output) INTEGER array, dimension (N)
108             This contains the permutation which will reintegrate the subprob‐
109             lem just solved back into sorted order, i.e.  D( IDXQ( I = 1, N )
110             ) will be in ascending order.
111
112       IWORK  (workspace) INTEGER array, dimension (4*N)
113
114       WORK   (workspace) REAL array, dimension (3*M**2+2*M)
115
116       INFO   (output) INTEGER
117              = 0:  successful exit.
118              < 0:  if INFO = -i, the i-th argument had an illegal value.
119              > 0:  if INFO = 1, an singular value did not converge
120

FURTHER DETAILS

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