
NAMEzlals0.f SYNOPSISFunctions/Subroutinessubroutine zlals0 (ICOMPQ, NL, NR, SQRE, NRHS, B, LDB, BX, LDBX, PERM, GIVPTR, GIVCOL, LDGCOL, GIVNUM, LDGNUM, POLES, DIFL, DIFR, Z, K, C, S, RWORK, INFO) Function/Subroutine Documentationsubroutine zlals0 (integerICOMPQ, integerNL, integerNR, integerSQRE, integerNRHS, complex*16, dimension( ldb, * )B, integerLDB, complex*16, dimension( ldbx, * )BX, integerLDBX, integer, dimension( * )PERM, integerGIVPTR, integer, dimension( ldgcol, * )GIVCOL, integerLDGCOL, double precision, dimension( ldgnum, * )GIVNUM, integerLDGNUM, double precision, dimension( ldgnum, * )POLES, double precision, dimension( * )DIFL, double precision, dimension( ldgnum, * )DIFR, double precision, dimension( * )Z, integerK, double precisionC, double precisionS, double precision, dimension( * )RWORK, integerINFO)ZLALS0 applies back multiplying factors in solving the least squares problem using divide and conquer SVD approach. Used by sgelsd. Purpose:ZLALS0 applies back the multiplying factors of either the left or the right singular vector matrix of a diagonal matrix appended by a row to the right hand side matrix B in solving the least squares problem using the divideandconquer 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 Svalues 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 Jth row. (3L) The left singular vector matrix of the remaining matrix. For the right singular vector matrix, four types of orthogonal matrices are involved: (1R) The right singular vector matrix of the remaining matrix. (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). ICOMPQ
Author:
ICOMPQ is INTEGER Specifies whether singular vectors are to be computed in factored form: = 0: Left singular vector matrix. = 1: Right singular vector matrix.NL NL is INTEGER The row dimension of the upper block. NL >= 1.NR NR is INTEGER The row dimension of the lower block. NR >= 1.SQRE SQRE is INTEGER = 0: the lower block is an NRbyNR square matrix. = 1: the lower block is an NRby(NR+1) rectangular matrix. The bidiagonal matrix has row dimension N = NL + NR + 1, and column dimension M = N + SQRE.NRHS NRHS is INTEGER The number of columns of B and BX. NRHS must be at least 1.B B is COMPLEX*16 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 LDB is INTEGER The leading dimension of B. LDB must be at least max(1,MAX( M, N ) ).BX BX is COMPLEX*16 array, dimension ( LDBX, NRHS )LDBX LDBX is INTEGER The leading dimension of BX.PERM PERM is INTEGER array, dimension ( N ) The permutations (from deflation and sorting) applied to the two blocks.GIVPTR GIVPTR is INTEGER The number of Givens rotations which took place in this subproblem.GIVCOL GIVCOL is INTEGER array, dimension ( LDGCOL, 2 ) Each pair of numbers indicates a pair of rows/columns involved in a Givens rotation.LDGCOL LDGCOL is INTEGER The leading dimension of GIVCOL, must be at least N.GIVNUM GIVNUM is DOUBLE PRECISION array, dimension ( LDGNUM, 2 ) Each number indicates the C or S value used in the corresponding Givens rotation.LDGNUM LDGNUM is INTEGER The leading dimension of arrays DIFR, POLES and GIVNUM, must be at least K.POLES POLES is DOUBLE PRECISION 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 DIFL is DOUBLE PRECISION array, dimension ( K ). On entry, DIFL(I) is the distance between Ith updated (undeflated) singular value and the Ith (undeflated) old singular value.DIFR DIFR is DOUBLE PRECISION array, dimension ( LDGNUM, 2 ). On entry, DIFR(I, 1) contains the distances between Ith updated (undeflated) singular value and the I+1th (undeflated) old singular value. And DIFR(I, 2) is the normalizing factor for the Ith right singular vector.Z Z is DOUBLE PRECISION array, dimension ( K ) Contain the components of the deflationadjusted updating row vector.K K is INTEGER Contains the dimension of the nondeflated matrix, This is the order of the related secular equation. 1 <= K <=N.C C is DOUBLE PRECISION C contains garbage if SQRE =0 and the Cvalue of a Givens rotation related to the right null space if SQRE = 1.S S is DOUBLE PRECISION S contains garbage if SQRE =0 and the Svalue of a Givens rotation related to the right null space if SQRE = 1.RWORK RWORK is DOUBLE PRECISION array, dimension ( K*(1+NRHS) + 2*NRHS )INFO INFO is INTEGER = 0: successful exit. < 0: if INFO = i, the ith argument had an illegal value. Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
September 2012
Contributors:
Ming Gu and RenCang Li, Computer Science Division,
University of California at Berkeley, USA
Definition at line 269 of file zlals0.f.
Osni Marques, LBNL/NERSC, USA AuthorGenerated automatically by Doxygen for LAPACK from the source code.
Visit the GSP FreeBSD Man Page Interface. 