.TH "uncsd2by1" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME uncsd2by1 \- {un,or}csd2by1: ?? .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "subroutine \fBcuncsd2by1\fP (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21, ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, rwork, lrwork, iwork, info)" .br .RI "\fBCUNCSD2BY1\fP " .ti -1c .RI "subroutine \fBdorcsd2by1\fP (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21, ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, iwork, info)" .br .RI "\fBDORCSD2BY1\fP " .ti -1c .RI "subroutine \fBsorcsd2by1\fP (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21, ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, iwork, info)" .br .RI "\fBSORCSD2BY1\fP " .ti -1c .RI "subroutine \fBzuncsd2by1\fP (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21, ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, rwork, lrwork, iwork, info)" .br .RI "\fBZUNCSD2BY1\fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "subroutine cuncsd2by1 (character jobu1, character jobu2, character jobv1t, integer m, integer p, integer q, complex, dimension(ldx11,*) x11, integer ldx11, complex, dimension(ldx21,*) x21, integer ldx21, real, dimension(*) theta, complex, dimension(ldu1,*) u1, integer ldu1, complex, dimension(ldu2,*) u2, integer ldu2, complex, dimension(ldv1t,*) v1t, integer ldv1t, complex, dimension(*) work, integer lwork, real, dimension(*) rwork, integer lrwork, integer, dimension(*) iwork, integer info)" .PP \fBCUNCSD2BY1\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> CUNCSD2BY1 computes the CS decomposition of an M-by-Q matrix X with !> orthonormal columns that has been partitioned into a 2-by-1 block !> structure: !> !> [ I1 0 0 ] !> [ 0 C 0 ] !> [ X11 ] [ U1 | ] [ 0 0 0 ] !> X = [-----] = [---------] [----------] V1**T \&. !> [ X21 ] [ | U2 ] [ 0 0 0 ] !> [ 0 S 0 ] !> [ 0 0 I2] !> !> X11 is P-by-Q\&. The unitary matrices U1, U2, and V1 are P-by-P, !> (M-P)-by-(M-P), and Q-by-Q, respectively\&. C and S are R-by-R !> nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which !> R = MIN(P,M-P,Q,M-Q)\&. I1 is a K1-by-K1 identity matrix and I2 is a !> K2-by-K2 identity matrix, where K1 = MAX(Q+P-M,0), K2 = MAX(Q-P,0)\&. !> !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIJOBU1\fP .PP .nf !> JOBU1 is CHARACTER !> = 'Y': U1 is computed; !> otherwise: U1 is not computed\&. !> .fi .PP .br \fIJOBU2\fP .PP .nf !> JOBU2 is CHARACTER !> = 'Y': U2 is computed; !> otherwise: U2 is not computed\&. !> .fi .PP .br \fIJOBV1T\fP .PP .nf !> JOBV1T is CHARACTER !> = 'Y': V1T is computed; !> otherwise: V1T is not computed\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> The number of rows in X\&. !> .fi .PP .br \fIP\fP .PP .nf !> P is INTEGER !> The number of rows in X11\&. 0 <= P <= M\&. !> .fi .PP .br \fIQ\fP .PP .nf !> Q is INTEGER !> The number of columns in X11 and X21\&. 0 <= Q <= M\&. !> .fi .PP .br \fIX11\fP .PP .nf !> X11 is COMPLEX array, dimension (LDX11,Q) !> On entry, part of the unitary matrix whose CSD is desired\&. !> .fi .PP .br \fILDX11\fP .PP .nf !> LDX11 is INTEGER !> The leading dimension of X11\&. LDX11 >= MAX(1,P)\&. !> .fi .PP .br \fIX21\fP .PP .nf !> X21 is COMPLEX array, dimension (LDX21,Q) !> On entry, part of the unitary matrix whose CSD is desired\&. !> .fi .PP .br \fILDX21\fP .PP .nf !> LDX21 is INTEGER !> The leading dimension of X21\&. LDX21 >= MAX(1,M-P)\&. !> .fi .PP .br \fITHETA\fP .PP .nf !> THETA is REAL array, dimension (R), in which R = !> MIN(P,M-P,Q,M-Q)\&. !> C = DIAG( COS(THETA(1)), \&.\&.\&. , COS(THETA(R)) ) and !> S = DIAG( SIN(THETA(1)), \&.\&.\&. , SIN(THETA(R)) )\&. !> .fi .PP .br \fIU1\fP .PP .nf !> U1 is COMPLEX array, dimension (P) !> If JOBU1 = 'Y', U1 contains the P-by-P unitary matrix U1\&. !> .fi .PP .br \fILDU1\fP .PP .nf !> LDU1 is INTEGER !> The leading dimension of U1\&. If JOBU1 = 'Y', LDU1 >= !> MAX(1,P)\&. !> .fi .PP .br \fIU2\fP .PP .nf !> U2 is COMPLEX array, dimension (M-P) !> If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) unitary !> matrix U2\&. !> .fi .PP .br \fILDU2\fP .PP .nf !> LDU2 is INTEGER !> The leading dimension of U2\&. If JOBU2 = 'Y', LDU2 >= !> MAX(1,M-P)\&. !> .fi .PP .br \fIV1T\fP .PP .nf !> V1T is COMPLEX array, dimension (Q) !> If JOBV1T = 'Y', V1T contains the Q-by-Q matrix unitary !> matrix V1**T\&. !> .fi .PP .br \fILDV1T\fP .PP .nf !> LDV1T is INTEGER !> The leading dimension of V1T\&. If JOBV1T = 'Y', LDV1T >= !> MAX(1,Q)\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is COMPLEX array, dimension (MAX(1,LWORK)) !> On exit, if INFO = 0, WORK(1) returns the optimal LWORK\&. !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. !> !> If LWORK = -1, then a workspace query is assumed; the routine !> only calculates the optimal size of the WORK and RWORK !> arrays, returns this value as the first entry of the WORK !> and RWORK array, respectively, and no error message related !> to LWORK or LRWORK is issued by XERBLA\&. !> .fi .PP .br \fIRWORK\fP .PP .nf !> RWORK is REAL array, dimension (MAX(1,LRWORK)) !> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK\&. !> If INFO > 0 on exit, RWORK(2:R) contains the values PHI(1), !> \&.\&.\&., PHI(R-1) that, together with THETA(1), \&.\&.\&., THETA(R), !> define the matrix in intermediate bidiagonal-block form !> remaining after nonconvergence\&. INFO specifies the number !> of nonzero PHI's\&. !> .fi .PP .br \fILRWORK\fP .PP .nf !> LRWORK is INTEGER !> The dimension of the array RWORK\&. !> !> If LRWORK=-1, then a workspace query is assumed; the routine !> only calculates the optimal size of the WORK and RWORK !> arrays, returns this value as the first entry of the WORK !> and RWORK array, respectively, and no error message related !> to LWORK or LRWORK is issued by XERBLA\&. !> .fi .PP .br \fIIWORK\fP .PP .nf !> IWORK is INTEGER array, dimension (M-MIN(P,M-P,Q,M-Q)) !> .fi .PP .br \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> > 0: CBBCSD did not converge\&. See the description of WORK !> above for details\&. !> .fi .PP .RE .PP \fBReferences:\fP .RS 4 [1] Brian D\&. Sutton\&. Computing the complete CS decomposition\&. Numer\&. Algorithms, 50(1):33-65, 2009\&. .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP .PP Definition at line \fB253\fP of file \fBcuncsd2by1\&.f\fP\&. .SS "subroutine dorcsd2by1 (character jobu1, character jobu2, character jobv1t, integer m, integer p, integer q, double precision, dimension(ldx11,*) x11, integer ldx11, double precision, dimension(ldx21,*) x21, integer ldx21, double precision, dimension(*) theta, double precision, dimension(ldu1,*) u1, integer ldu1, double precision, dimension(ldu2,*) u2, integer ldu2, double precision, dimension(ldv1t,*) v1t, integer ldv1t, double precision, dimension(*) work, integer lwork, integer, dimension(*) iwork, integer info)" .PP \fBDORCSD2BY1\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> DORCSD2BY1 computes the CS decomposition of an M-by-Q matrix X with !> orthonormal columns that has been partitioned into a 2-by-1 block !> structure: !> !> [ I1 0 0 ] !> [ 0 C 0 ] !> [ X11 ] [ U1 | ] [ 0 0 0 ] !> X = [-----] = [---------] [----------] V1**T \&. !> [ X21 ] [ | U2 ] [ 0 0 0 ] !> [ 0 S 0 ] !> [ 0 0 I2] !> !> X11 is P-by-Q\&. The orthogonal matrices U1, U2, and V1 are P-by-P, !> (M-P)-by-(M-P), and Q-by-Q, respectively\&. C and S are R-by-R !> nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which !> R = MIN(P,M-P,Q,M-Q)\&. I1 is a K1-by-K1 identity matrix and I2 is a !> K2-by-K2 identity matrix, where K1 = MAX(Q+P-M,0), K2 = MAX(Q-P,0)\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIJOBU1\fP .PP .nf !> JOBU1 is CHARACTER !> = 'Y': U1 is computed; !> otherwise: U1 is not computed\&. !> .fi .PP .br \fIJOBU2\fP .PP .nf !> JOBU2 is CHARACTER !> = 'Y': U2 is computed; !> otherwise: U2 is not computed\&. !> .fi .PP .br \fIJOBV1T\fP .PP .nf !> JOBV1T is CHARACTER !> = 'Y': V1T is computed; !> otherwise: V1T is not computed\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> The number of rows in X\&. !> .fi .PP .br \fIP\fP .PP .nf !> P is INTEGER !> The number of rows in X11\&. 0 <= P <= M\&. !> .fi .PP .br \fIQ\fP .PP .nf !> Q is INTEGER !> The number of columns in X11 and X21\&. 0 <= Q <= M\&. !> .fi .PP .br \fIX11\fP .PP .nf !> X11 is DOUBLE PRECISION array, dimension (LDX11,Q) !> On entry, part of the orthogonal matrix whose CSD is desired\&. !> .fi .PP .br \fILDX11\fP .PP .nf !> LDX11 is INTEGER !> The leading dimension of X11\&. LDX11 >= MAX(1,P)\&. !> .fi .PP .br \fIX21\fP .PP .nf !> X21 is DOUBLE PRECISION array, dimension (LDX21,Q) !> On entry, part of the orthogonal matrix whose CSD is desired\&. !> .fi .PP .br \fILDX21\fP .PP .nf !> LDX21 is INTEGER !> The leading dimension of X21\&. LDX21 >= MAX(1,M-P)\&. !> .fi .PP .br \fITHETA\fP .PP .nf !> THETA is DOUBLE PRECISION array, dimension (R), in which R = !> MIN(P,M-P,Q,M-Q)\&. !> C = DIAG( COS(THETA(1)), \&.\&.\&. , COS(THETA(R)) ) and !> S = DIAG( SIN(THETA(1)), \&.\&.\&. , SIN(THETA(R)) )\&. !> .fi .PP .br \fIU1\fP .PP .nf !> U1 is DOUBLE PRECISION array, dimension (P) !> If JOBU1 = 'Y', U1 contains the P-by-P orthogonal matrix U1\&. !> .fi .PP .br \fILDU1\fP .PP .nf !> LDU1 is INTEGER !> The leading dimension of U1\&. If JOBU1 = 'Y', LDU1 >= !> MAX(1,P)\&. !> .fi .PP .br \fIU2\fP .PP .nf !> U2 is DOUBLE PRECISION array, dimension (M-P) !> If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) orthogonal !> matrix U2\&. !> .fi .PP .br \fILDU2\fP .PP .nf !> LDU2 is INTEGER !> The leading dimension of U2\&. If JOBU2 = 'Y', LDU2 >= !> MAX(1,M-P)\&. !> .fi .PP .br \fIV1T\fP .PP .nf !> V1T is DOUBLE PRECISION array, dimension (Q) !> If JOBV1T = 'Y', V1T contains the Q-by-Q matrix orthogonal !> matrix V1**T\&. !> .fi .PP .br \fILDV1T\fP .PP .nf !> LDV1T is INTEGER !> The leading dimension of V1T\&. If JOBV1T = 'Y', LDV1T >= !> MAX(1,Q)\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) !> On exit, if INFO = 0, WORK(1) returns the optimal LWORK\&. !> If INFO > 0 on exit, WORK(2:R) contains the values PHI(1), !> \&.\&.\&., PHI(R-1) that, together with THETA(1), \&.\&.\&., THETA(R), !> define the matrix in intermediate bidiagonal-block form !> remaining after nonconvergence\&. INFO specifies the number !> of nonzero PHI's\&. !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. !> !> If LWORK = -1, then a workspace query is assumed; the routine !> only calculates the optimal size of the WORK array, returns !> this value as the first entry of the work array, and no error !> message related to LWORK is issued by XERBLA\&. !> .fi .PP .br \fIIWORK\fP .PP .nf !> IWORK is INTEGER array, dimension (M-MIN(P,M-P,Q,M-Q)) !> .fi .PP .br \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> > 0: DBBCSD did not converge\&. See the description of WORK !> above for details\&. !> .fi .PP .RE .PP \fBReferences:\fP .RS 4 [1] Brian D\&. Sutton\&. Computing the complete CS decomposition\&. Numer\&. Algorithms, 50(1):33-65, 2009\&. .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP .PP Definition at line \fB230\fP of file \fBdorcsd2by1\&.f\fP\&. .SS "subroutine sorcsd2by1 (character jobu1, character jobu2, character jobv1t, integer m, integer p, integer q, real, dimension(ldx11,*) x11, integer ldx11, real, dimension(ldx21,*) x21, integer ldx21, real, dimension(*) theta, real, dimension(ldu1,*) u1, integer ldu1, real, dimension(ldu2,*) u2, integer ldu2, real, dimension(ldv1t,*) v1t, integer ldv1t, real, dimension(*) work, integer lwork, integer, dimension(*) iwork, integer info)" .PP \fBSORCSD2BY1\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> SORCSD2BY1 computes the CS decomposition of an M-by-Q matrix X with !> orthonormal columns that has been partitioned into a 2-by-1 block !> structure: !> !> [ I1 0 0 ] !> [ 0 C 0 ] !> [ X11 ] [ U1 | ] [ 0 0 0 ] !> X = [-----] = [---------] [----------] V1**T \&. !> [ X21 ] [ | U2 ] [ 0 0 0 ] !> [ 0 S 0 ] !> [ 0 0 I2] !> !> X11 is P-by-Q\&. The orthogonal matrices U1, U2, and V1 are P-by-P, !> (M-P)-by-(M-P), and Q-by-Q, respectively\&. C and S are R-by-R !> nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which !> R = MIN(P,M-P,Q,M-Q)\&. I1 is a K1-by-K1 identity matrix and I2 is a !> K2-by-K2 identity matrix, where K1 = MAX(Q+P-M,0), K2 = MAX(Q-P,0)\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIJOBU1\fP .PP .nf !> JOBU1 is CHARACTER !> = 'Y': U1 is computed; !> otherwise: U1 is not computed\&. !> .fi .PP .br \fIJOBU2\fP .PP .nf !> JOBU2 is CHARACTER !> = 'Y': U2 is computed; !> otherwise: U2 is not computed\&. !> .fi .PP .br \fIJOBV1T\fP .PP .nf !> JOBV1T is CHARACTER !> = 'Y': V1T is computed; !> otherwise: V1T is not computed\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> The number of rows in X\&. !> .fi .PP .br \fIP\fP .PP .nf !> P is INTEGER !> The number of rows in X11\&. 0 <= P <= M\&. !> .fi .PP .br \fIQ\fP .PP .nf !> Q is INTEGER !> The number of columns in X11 and X21\&. 0 <= Q <= M\&. !> .fi .PP .br \fIX11\fP .PP .nf !> X11 is REAL array, dimension (LDX11,Q) !> On entry, part of the orthogonal matrix whose CSD is desired\&. !> .fi .PP .br \fILDX11\fP .PP .nf !> LDX11 is INTEGER !> The leading dimension of X11\&. LDX11 >= MAX(1,P)\&. !> .fi .PP .br \fIX21\fP .PP .nf !> X21 is REAL array, dimension (LDX21,Q) !> On entry, part of the orthogonal matrix whose CSD is desired\&. !> .fi .PP .br \fILDX21\fP .PP .nf !> LDX21 is INTEGER !> The leading dimension of X21\&. LDX21 >= MAX(1,M-P)\&. !> .fi .PP .br \fITHETA\fP .PP .nf !> THETA is REAL array, dimension (R), in which R = !> MIN(P,M-P,Q,M-Q)\&. !> C = DIAG( COS(THETA(1)), \&.\&.\&. , COS(THETA(R)) ) and !> S = DIAG( SIN(THETA(1)), \&.\&.\&. , SIN(THETA(R)) )\&. !> .fi .PP .br \fIU1\fP .PP .nf !> U1 is REAL array, dimension (P) !> If JOBU1 = 'Y', U1 contains the P-by-P orthogonal matrix U1\&. !> .fi .PP .br \fILDU1\fP .PP .nf !> LDU1 is INTEGER !> The leading dimension of U1\&. If JOBU1 = 'Y', LDU1 >= !> MAX(1,P)\&. !> .fi .PP .br \fIU2\fP .PP .nf !> U2 is REAL array, dimension (M-P) !> If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) orthogonal !> matrix U2\&. !> .fi .PP .br \fILDU2\fP .PP .nf !> LDU2 is INTEGER !> The leading dimension of U2\&. If JOBU2 = 'Y', LDU2 >= !> MAX(1,M-P)\&. !> .fi .PP .br \fIV1T\fP .PP .nf !> V1T is REAL array, dimension (Q) !> If JOBV1T = 'Y', V1T contains the Q-by-Q matrix orthogonal !> matrix V1**T\&. !> .fi .PP .br \fILDV1T\fP .PP .nf !> LDV1T is INTEGER !> The leading dimension of V1T\&. If JOBV1T = 'Y', LDV1T >= !> MAX(1,Q)\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is REAL array, dimension (MAX(1,LWORK)) !> On exit, if INFO = 0, WORK(1) returns the optimal LWORK\&. !> If INFO > 0 on exit, WORK(2:R) contains the values PHI(1), !> \&.\&.\&., PHI(R-1) that, together with THETA(1), \&.\&.\&., THETA(R), !> define the matrix in intermediate bidiagonal-block form !> remaining after nonconvergence\&. INFO specifies the number !> of nonzero PHI's\&. !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. !> !> If LWORK = -1, then a workspace query is assumed; the routine !> only calculates the optimal size of the WORK array, returns !> this value as the first entry of the work array, and no error !> message related to LWORK is issued by XERBLA\&. !> .fi .PP .br \fIIWORK\fP .PP .nf !> IWORK is INTEGER array, dimension (M-MIN(P,M-P,Q,M-Q)) !> .fi .PP .br \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> > 0: SBBCSD did not converge\&. See the description of WORK !> above for details\&. !> .fi .PP .RE .PP \fBReferences:\fP .RS 4 [1] Brian D\&. Sutton\&. Computing the complete CS decomposition\&. Numer\&. Algorithms, 50(1):33-65, 2009\&. .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP .PP Definition at line \fB230\fP of file \fBsorcsd2by1\&.f\fP\&. .SS "subroutine zuncsd2by1 (character jobu1, character jobu2, character jobv1t, integer m, integer p, integer q, complex*16, dimension(ldx11,*) x11, integer ldx11, complex*16, dimension(ldx21,*) x21, integer ldx21, double precision, dimension(*) theta, complex*16, dimension(ldu1,*) u1, integer ldu1, complex*16, dimension(ldu2,*) u2, integer ldu2, complex*16, dimension(ldv1t,*) v1t, integer ldv1t, complex*16, dimension(*) work, integer lwork, double precision, dimension(*) rwork, integer lrwork, integer, dimension(*) iwork, integer info)" .PP \fBZUNCSD2BY1\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> ZUNCSD2BY1 computes the CS decomposition of an M-by-Q matrix X with !> orthonormal columns that has been partitioned into a 2-by-1 block !> structure: !> !> [ I1 0 0 ] !> [ 0 C 0 ] !> [ X11 ] [ U1 | ] [ 0 0 0 ] !> X = [-----] = [---------] [----------] V1**T \&. !> [ X21 ] [ | U2 ] [ 0 0 0 ] !> [ 0 S 0 ] !> [ 0 0 I2] !> !> X11 is P-by-Q\&. The unitary matrices U1, U2, and V1 are P-by-P, !> (M-P)-by-(M-P), and Q-by-Q, respectively\&. C and S are R-by-R !> nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which !> R = MIN(P,M-P,Q,M-Q)\&. I1 is a K1-by-K1 identity matrix and I2 is a !> K2-by-K2 identity matrix, where K1 = MAX(Q+P-M,0), K2 = MAX(Q-P,0)\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIJOBU1\fP .PP .nf !> JOBU1 is CHARACTER !> = 'Y': U1 is computed; !> otherwise: U1 is not computed\&. !> .fi .PP .br \fIJOBU2\fP .PP .nf !> JOBU2 is CHARACTER !> = 'Y': U2 is computed; !> otherwise: U2 is not computed\&. !> .fi .PP .br \fIJOBV1T\fP .PP .nf !> JOBV1T is CHARACTER !> = 'Y': V1T is computed; !> otherwise: V1T is not computed\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> The number of rows in X\&. !> .fi .PP .br \fIP\fP .PP .nf !> P is INTEGER !> The number of rows in X11\&. 0 <= P <= M\&. !> .fi .PP .br \fIQ\fP .PP .nf !> Q is INTEGER !> The number of columns in X11 and X21\&. 0 <= Q <= M\&. !> .fi .PP .br \fIX11\fP .PP .nf !> X11 is COMPLEX*16 array, dimension (LDX11,Q) !> On entry, part of the unitary matrix whose CSD is desired\&. !> .fi .PP .br \fILDX11\fP .PP .nf !> LDX11 is INTEGER !> The leading dimension of X11\&. LDX11 >= MAX(1,P)\&. !> .fi .PP .br \fIX21\fP .PP .nf !> X21 is COMPLEX*16 array, dimension (LDX21,Q) !> On entry, part of the unitary matrix whose CSD is desired\&. !> .fi .PP .br \fILDX21\fP .PP .nf !> LDX21 is INTEGER !> The leading dimension of X21\&. LDX21 >= MAX(1,M-P)\&. !> .fi .PP .br \fITHETA\fP .PP .nf !> THETA is DOUBLE PRECISION array, dimension (R), in which R = !> MIN(P,M-P,Q,M-Q)\&. !> C = DIAG( COS(THETA(1)), \&.\&.\&. , COS(THETA(R)) ) and !> S = DIAG( SIN(THETA(1)), \&.\&.\&. , SIN(THETA(R)) )\&. !> .fi .PP .br \fIU1\fP .PP .nf !> U1 is COMPLEX*16 array, dimension (P) !> If JOBU1 = 'Y', U1 contains the P-by-P unitary matrix U1\&. !> .fi .PP .br \fILDU1\fP .PP .nf !> LDU1 is INTEGER !> The leading dimension of U1\&. If JOBU1 = 'Y', LDU1 >= !> MAX(1,P)\&. !> .fi .PP .br \fIU2\fP .PP .nf !> U2 is COMPLEX*16 array, dimension (M-P) !> If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) unitary !> matrix U2\&. !> .fi .PP .br \fILDU2\fP .PP .nf !> LDU2 is INTEGER !> The leading dimension of U2\&. If JOBU2 = 'Y', LDU2 >= !> MAX(1,M-P)\&. !> .fi .PP .br \fIV1T\fP .PP .nf !> V1T is COMPLEX*16 array, dimension (Q) !> If JOBV1T = 'Y', V1T contains the Q-by-Q matrix unitary !> matrix V1**T\&. !> .fi .PP .br \fILDV1T\fP .PP .nf !> LDV1T is INTEGER !> The leading dimension of V1T\&. If JOBV1T = 'Y', LDV1T >= !> MAX(1,Q)\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) !> On exit, if INFO = 0, WORK(1) returns the optimal LWORK\&. !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. !> !> If LWORK = -1, then a workspace query is assumed; the routine !> only calculates the optimal size of the WORK and RWORK !> arrays, returns this value as the first entry of the WORK !> and RWORK array, respectively, and no error message related !> to LWORK or LRWORK is issued by XERBLA\&. !> .fi .PP .br \fIRWORK\fP .PP .nf !> RWORK is DOUBLE PRECISION array, dimension (MAX(1,LRWORK)) !> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK\&. !> If INFO > 0 on exit, RWORK(2:R) contains the values PHI(1), !> \&.\&.\&., PHI(R-1) that, together with THETA(1), \&.\&.\&., THETA(R), !> define the matrix in intermediate bidiagonal-block form !> remaining after nonconvergence\&. INFO specifies the number !> of nonzero PHI's\&. !> .fi .PP .br \fILRWORK\fP .PP .nf !> LRWORK is INTEGER !> The dimension of the array RWORK\&. !> !> If LRWORK=-1, then a workspace query is assumed; the routine !> only calculates the optimal size of the WORK and RWORK !> arrays, returns this value as the first entry of the WORK !> and RWORK array, respectively, and no error message related !> to LWORK or LRWORK is issued by XERBLA\&. !> .fi .PP .br \fIIWORK\fP .PP .nf !> IWORK is INTEGER array, dimension (M-MIN(P,M-P,Q,M-Q)) !> .fi .PP .br \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> > 0: ZBBCSD did not converge\&. See the description of WORK !> above for details\&. !> .fi .PP .RE .PP \fBReferences:\fP .RS 4 [1] Brian D\&. Sutton\&. Computing the complete CS decomposition\&. Numer\&. Algorithms, 50(1):33-65, 2009\&. .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP .PP Definition at line \fB252\fP of file \fBzuncsd2by1\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.