.TH "SRC/dlasdq.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME SRC/dlasdq.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBdlasdq\fP (uplo, sqre, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info)" .br .RI "\fBDLASDQ\fP computes the SVD of a real bidiagonal matrix with diagonal d and off-diagonal e\&. Used by sbdsdc\&. " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "subroutine dlasdq (character uplo, integer sqre, integer n, integer ncvt, integer nru, integer ncc, double precision, dimension( * ) d, double precision, dimension( * ) e, double precision, dimension( ldvt, * ) vt, integer ldvt, double precision, dimension( ldu, * ) u, integer ldu, double precision, dimension( ldc, * ) c, integer ldc, double precision, dimension( * ) work, integer info)" .PP \fBDLASDQ\fP computes the SVD of a real bidiagonal matrix with diagonal d and off-diagonal e\&. Used by sbdsdc\&. .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> DLASDQ computes the singular value decomposition (SVD) of a real !> (upper or lower) bidiagonal matrix with diagonal D and offdiagonal !> E, accumulating the transformations if desired\&. Letting B denote !> the input bidiagonal matrix, the algorithm computes orthogonal !> matrices Q and P such that B = Q * S * P**T (P**T denotes the transpose !> of P)\&. The singular values S are overwritten on D\&. !> !> The input matrix U is changed to U * Q if desired\&. !> The input matrix VT is changed to P**T * VT if desired\&. !> The input matrix C is changed to Q**T * C if desired\&. !> !> See by J\&. Demmel and W\&. Kahan, !> LAPACK Working Note #3, for a detailed description of the algorithm\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIUPLO\fP .PP .nf !> UPLO is CHARACTER*1 !> On entry, UPLO specifies whether the input bidiagonal matrix !> is upper or lower bidiagonal, and whether it is square are !> not\&. !> UPLO = 'U' or 'u' B is upper bidiagonal\&. !> UPLO = 'L' or 'l' B is lower bidiagonal\&. !> .fi .PP .br \fISQRE\fP .PP .nf !> SQRE is INTEGER !> = 0: then the input matrix is N-by-N\&. !> = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and !> (N+1)-by-N if UPLU = 'L'\&. !> !> The bidiagonal matrix has !> N = NL + NR + 1 rows and !> M = N + SQRE >= N columns\&. !> .fi .PP .br \fIN\fP .PP .nf !> N is INTEGER !> On entry, N specifies the number of rows and columns !> in the matrix\&. N must be at least 0\&. !> .fi .PP .br \fINCVT\fP .PP .nf !> NCVT is INTEGER !> On entry, NCVT specifies the number of columns of !> the matrix VT\&. NCVT must be at least 0\&. !> .fi .PP .br \fINRU\fP .PP .nf !> NRU is INTEGER !> On entry, NRU specifies the number of rows of !> the matrix U\&. NRU must be at least 0\&. !> .fi .PP .br \fINCC\fP .PP .nf !> NCC is INTEGER !> On entry, NCC specifies the number of columns of !> the matrix C\&. NCC must be at least 0\&. !> .fi .PP .br \fID\fP .PP .nf !> D is DOUBLE PRECISION array, dimension (N) !> On entry, D contains the diagonal entries of the !> bidiagonal matrix whose SVD is desired\&. On normal exit, !> D contains the singular values in ascending order\&. !> .fi .PP .br \fIE\fP .PP .nf !> E is DOUBLE PRECISION array\&. !> dimension is (N-1) if SQRE = 0 and N if SQRE = 1\&. !> On entry, the entries of E contain the offdiagonal entries !> of the bidiagonal matrix whose SVD is desired\&. On normal !> exit, E will contain 0\&. If the algorithm does not converge, !> D and E will contain the diagonal and superdiagonal entries !> of a bidiagonal matrix orthogonally equivalent to the one !> given as input\&. !> .fi .PP .br \fIVT\fP .PP .nf !> VT is DOUBLE PRECISION array, dimension (LDVT, NCVT) !> On entry, contains a matrix which on exit has been !> premultiplied by P**T, dimension N-by-NCVT if SQRE = 0 !> and (N+1)-by-NCVT if SQRE = 1 (not referenced if NCVT=0)\&. !> .fi .PP .br \fILDVT\fP .PP .nf !> LDVT is INTEGER !> On entry, LDVT specifies the leading dimension of VT as !> declared in the calling (sub) program\&. LDVT must be at !> least 1\&. If NCVT is nonzero LDVT must also be at least N\&. !> .fi .PP .br \fIU\fP .PP .nf !> U is DOUBLE PRECISION array, dimension (LDU, N) !> On entry, contains a matrix which on exit has been !> postmultiplied by Q, dimension NRU-by-N if SQRE = 0 !> and NRU-by-(N+1) if SQRE = 1 (not referenced if NRU=0)\&. !> .fi .PP .br \fILDU\fP .PP .nf !> LDU is INTEGER !> On entry, LDU specifies the leading dimension of U as !> declared in the calling (sub) program\&. LDU must be at !> least max( 1, NRU ) \&. !> .fi .PP .br \fIC\fP .PP .nf !> C is DOUBLE PRECISION array, dimension (LDC, NCC) !> On entry, contains an N-by-NCC matrix which on exit !> has been premultiplied by Q**T dimension N-by-NCC if SQRE = 0 !> and (N+1)-by-NCC if SQRE = 1 (not referenced if NCC=0)\&. !> .fi .PP .br \fILDC\fP .PP .nf !> LDC is INTEGER !> On entry, LDC specifies the leading dimension of C as !> declared in the calling (sub) program\&. LDC must be at !> least 1\&. If NCC is nonzero, LDC must also be at least N\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is DOUBLE PRECISION array, dimension (4*N) !> Workspace\&. Only referenced if one of NCVT, NRU, or NCC is !> nonzero, and if N is at least 2\&. !> .fi .PP .br \fIINFO\fP .PP .nf !> INFO is INTEGER !> On exit, a value of 0 indicates a successful exit\&. !> If INFO < 0, argument number -INFO is illegal\&. !> If INFO > 0, the algorithm did not converge, and INFO !> specifies how many superdiagonals did not converge\&. !> .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBContributors:\fP .RS 4 Ming Gu and Huan Ren, Computer Science Division, University of California at Berkeley, USA .RE .PP .PP Definition at line \fB209\fP of file \fBdlasdq\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.