slals0(3)
NAME
- SLALS0 - applie back the multiplying factors of either the
- left or the right singular vector matrix of a diagonal matrix ap
- pended by a row to the right hand side matrix B in solving the
- least squares problem using the divide-and-conquer SVD approach
SYNOPSIS
SUBROUTINE SLALS0( ICOMPQ, NL, NR, SQRE, NRHS, B, LDB, BX,
LDBX, PERM, GIVPTR, GIVCOL, LDGCOL, GIVNUM, LDGNUM, POLES, DIFL,
DIFR, Z, K, C, S, WORK, INFO )
INTEGER GIVPTR, ICOMPQ, INFO, K, LDB, LDBX,
LDGCOL, LDGNUM, NL, NR, NRHS, SQRE
REAL C, S
INTEGER GIVCOL( LDGCOL, * ), PERM( * )
REAL B( LDB, * ), BX( LDBX, * ), DIFL( * ),
DIFR( LDGNUM, * ), GIVNUM( LDGNUM, * ), POLES( LDGNUM, * ), WORK(
* ), Z( * )
PURPOSE
- SLALS0 applies back the multiplying factors of either the
- left or the right singular vector matrix of a diagonal matrix ap
- pended by a row to the right hand side matrix B in solving the
- least squares problem using the divide-and-conquer SVD approach.
- For the left singular vector matrix, three types of orthogonal
- matrices are involved:
- (1L) Givens rotations: the number of such rotations is
- GIVPTR; the
- pairs of columns/rows they were applied to are stored
- in GIVCOL;
and the C- and S-values of these rotations are stored
- in GIVNUM.
- (2L) Permutation. The (NL+1)-st row of B is to be moved to
- the first
- row, and for J=2:N, PERM(J)-th row of B is to be
- moved to the
J-th row.
- (3L) The left singular vector matrix of the remaining ma
- trix.
- For the right singular vector matrix, four types of or
- thogonal matrices are involved:
- (1R) The right singular vector matrix of the remaining ma
- trix.
- (2R) If SQRE = 1, one extra Givens rotation to generate
- the right
- null space.
- (3R) The inverse transformation of (2L).
- (4R) The inverse transformation of (1L).
ARGUMENTS
- ICOMPQ (input) INTEGER Specifies whether singular vectors
- are to be computed in factored form:
= 0: Left singular vector matrix.
= 1: Right singular vector matrix.
- NL (input) INTEGER
- The row dimension of the upper block. NL >= 1.
- NR (input) INTEGER
- The row dimension of the lower block. NR >= 1.
- SQRE (input) INTEGER
- = 0: the lower block is an NR-by-NR square matrix.
= 1: the lower block is an NR-by-(NR+1) rectangular
- matrix.
- The bidiagonal matrix has row dimension N = NL + NR
- + 1, and column dimension M = N + SQRE.
- NRHS (input) INTEGER
- The number of columns of B and BX. NRHS must be at
- least 1.
- B (input/output) REAL array, dimension ( LDB, NRHS )
- On input, B contains the right hand sides of the
- least squares problem in rows 1 through M. On output, B contains
- the solution X in rows 1 through N.
- LDB (input) INTEGER
- The leading dimension of B. LDB must be at least
- max(1,MAX( M, N ) ).
- BX (workspace) REAL array, dimension ( LDBX, NRHS )
- LDBX (input) INTEGER
- The leading dimension of BX.
- PERM (input) INTEGER array, dimension ( N )
- The permutations (from deflation and sorting) ap
- plied to the two blocks.
- GIVPTR (input) INTEGER The number of Givens rota
- tions which took place in this subproblem.
- GIVCOL (input) INTEGER array, dimension ( LDGCOL, 2
- ) Each pair of numbers indicates a pair of rows/columns involved
- in a Givens rotation.
- LDGCOL (input) INTEGER The leading dimension of
- GIVCOL, must be at least N.
- GIVNUM (input) REAL array, dimension ( LDGNUM, 2 )
- Each number indicates the C or S value used in the corresponding
- Givens rotation.
- LDGNUM (input) INTEGER The leading dimension of ar
- rays DIFR, POLES and GIVNUM, must be at least K.
- POLES (input) REAL array, dimension ( LDGNUM, 2 )
- On entry, POLES(1:K, 1) contains the new singular
- values obtained from solving the secular equation, and POLES(1:K,
- 2) is an array containing the poles in the secular equation.
- DIFL (input) REAL array, dimension ( K ).
- On entry, DIFL(I) is the distance between I-th up
- dated (undeflated) singular value and the I-th (undeflated) old
- singular value.
- DIFR (input) REAL array, dimension ( LDGNUM, 2 ).
- On entry, DIFR(I, 1) contains the distances between
- I-th updated (undeflated) singular value and the I+1-th (unde
- flated) old singular value. And DIFR(I, 2) is the normalizing
- factor for the I-th right singular vector.
- Z (input) REAL array, dimension ( K )
- Contain the components of the deflation-adjusted
- updating row vector.
- K (input) INTEGER
- Contains the dimension of the non-deflated matrix,
- This is the order of the related secular equation. 1 <= K <=N.
- C (input) REAL
- C contains garbage if SQRE =0 and the C-value of a
- Givens rotation related to the right null space if SQRE = 1.
- S (input) REAL
- S contains garbage if SQRE =0 and the S-value of a
- Givens rotation related to the right null space if SQRE = 1.
- WORK (workspace) REAL array, dimension ( K )
- INFO (output) INTEGER
- = 0: successful exit.
< 0: if INFO = -i, the i-th argument had an ille
- gal value.
FURTHER DETAILS
- Based on contributions by
- Ming Gu and Ren-Cang Li, Computer Science Division,
- University of
California at Berkeley, USA
- Osni Marques, LBNL/NERSC, USA
- LAPACK version 3.0 15 June 2000