.TH "unbdb1" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME unbdb1 \- {un,or}bdb1: step in uncsd2by1 .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "subroutine \fBcunbdb1\fP (m, p, q, x11, ldx11, x21, ldx21, theta, phi, taup1, taup2, tauq1, work, lwork, info)" .br .RI "\fBCUNBDB1\fP " .ti -1c .RI "subroutine \fBdorbdb1\fP (m, p, q, x11, ldx11, x21, ldx21, theta, phi, taup1, taup2, tauq1, work, lwork, info)" .br .RI "\fBDORBDB1\fP " .ti -1c .RI "subroutine \fBsorbdb1\fP (m, p, q, x11, ldx11, x21, ldx21, theta, phi, taup1, taup2, tauq1, work, lwork, info)" .br .RI "\fBSORBDB1\fP " .ti -1c .RI "subroutine \fBzunbdb1\fP (m, p, q, x11, ldx11, x21, ldx21, theta, phi, taup1, taup2, tauq1, work, lwork, info)" .br .RI "\fBZUNBDB1\fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "subroutine cunbdb1 (integer m, integer p, integer q, complex, dimension(ldx11,*) x11, integer ldx11, complex, dimension(ldx21,*) x21, integer ldx21, real, dimension(*) theta, real, dimension(*) phi, complex, dimension(*) taup1, complex, dimension(*) taup2, complex, dimension(*) tauq1, complex, dimension(*) work, integer lwork, integer info)" .PP \fBCUNBDB1\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> CUNBDB1 simultaneously bidiagonalizes the blocks of a tall and skinny !> matrix X with orthonormal columns: !> !> [ B11 ] !> [ X11 ] [ P1 | ] [ 0 ] !> [-----] = [---------] [-----] Q1**T \&. !> [ X21 ] [ | P2 ] [ B21 ] !> [ 0 ] !> !> X11 is P-by-Q, and X21 is (M-P)-by-Q\&. Q must be no larger than P, !> M-P, or M-Q\&. Routines CUNBDB2, CUNBDB3, and CUNBDB4 handle cases in !> which Q is not the minimum dimension\&. !> !> The unitary matrices P1, P2, and Q1 are P-by-P, (M-P)-by-(M-P), !> and (M-Q)-by-(M-Q), respectively\&. They are represented implicitly by !> Householder vectors\&. !> !> B11 and B12 are Q-by-Q bidiagonal matrices represented implicitly by !> angles THETA, PHI\&. !> !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIM\fP .PP .nf !> M is INTEGER !> The number of rows X11 plus the number of rows in X21\&. !> .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 <= !> MIN(P,M-P,M-Q)\&. !> .fi .PP .br \fIX11\fP .PP .nf !> X11 is COMPLEX array, dimension (LDX11,Q) !> On entry, the top block of the matrix X to be reduced\&. On !> exit, the columns of tril(X11) specify reflectors for P1 and !> the rows of triu(X11,1) specify reflectors for Q1\&. !> .fi .PP .br \fILDX11\fP .PP .nf !> LDX11 is INTEGER !> The leading dimension of X11\&. LDX11 >= P\&. !> .fi .PP .br \fIX21\fP .PP .nf !> X21 is COMPLEX array, dimension (LDX21,Q) !> On entry, the bottom block of the matrix X to be reduced\&. On !> exit, the columns of tril(X21) specify reflectors for P2\&. !> .fi .PP .br \fILDX21\fP .PP .nf !> LDX21 is INTEGER !> The leading dimension of X21\&. LDX21 >= M-P\&. !> .fi .PP .br \fITHETA\fP .PP .nf !> THETA is REAL array, dimension (Q) !> The entries of the bidiagonal blocks B11, B21 are defined by !> THETA and PHI\&. See Further Details\&. !> .fi .PP .br \fIPHI\fP .PP .nf !> PHI is REAL array, dimension (Q-1) !> The entries of the bidiagonal blocks B11, B21 are defined by !> THETA and PHI\&. See Further Details\&. !> .fi .PP .br \fITAUP1\fP .PP .nf !> TAUP1 is COMPLEX array, dimension (P) !> The scalar factors of the elementary reflectors that define !> P1\&. !> .fi .PP .br \fITAUP2\fP .PP .nf !> TAUP2 is COMPLEX array, dimension (M-P) !> The scalar factors of the elementary reflectors that define !> P2\&. !> .fi .PP .br \fITAUQ1\fP .PP .nf !> TAUQ1 is COMPLEX array, dimension (Q) !> The scalar factors of the elementary reflectors that define !> Q1\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is COMPLEX array, dimension (LWORK) !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. LWORK >= M-Q\&. !> !> 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 \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> .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 \fBFurther Details:\fP .RS 4 .PP .nf !> !> The upper-bidiagonal blocks B11, B21 are represented implicitly by !> angles THETA(1), \&.\&.\&., THETA(Q) and PHI(1), \&.\&.\&., PHI(Q-1)\&. Every entry !> in each bidiagonal band is a product of a sine or cosine of a THETA !> with a sine or cosine of a PHI\&. See [1] or CUNCSD for details\&. !> !> P1, P2, and Q1 are represented as products of elementary reflectors\&. !> See CUNCSD2BY1 for details on generating P1, P2, and Q1 using CUNGQR !> and CUNGLQ\&. !> .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 .PP Definition at line \fB200\fP of file \fBcunbdb1\&.f\fP\&. .SS "subroutine dorbdb1 (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(*) phi, double precision, dimension(*) taup1, double precision, dimension(*) taup2, double precision, dimension(*) tauq1, double precision, dimension(*) work, integer lwork, integer info)" .PP \fBDORBDB1\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> DORBDB1 simultaneously bidiagonalizes the blocks of a tall and skinny !> matrix X with orthonormal columns: !> !> [ B11 ] !> [ X11 ] [ P1 | ] [ 0 ] !> [-----] = [---------] [-----] Q1**T \&. !> [ X21 ] [ | P2 ] [ B21 ] !> [ 0 ] !> !> X11 is P-by-Q, and X21 is (M-P)-by-Q\&. Q must be no larger than P, !> M-P, or M-Q\&. Routines DORBDB2, DORBDB3, and DORBDB4 handle cases in !> which Q is not the minimum dimension\&. !> !> The orthogonal matrices P1, P2, and Q1 are P-by-P, (M-P)-by-(M-P), !> and (M-Q)-by-(M-Q), respectively\&. They are represented implicitly by !> Householder vectors\&. !> !> B11 and B12 are Q-by-Q bidiagonal matrices represented implicitly by !> angles THETA, PHI\&. !> !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIM\fP .PP .nf !> M is INTEGER !> The number of rows X11 plus the number of rows in X21\&. !> .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 <= !> MIN(P,M-P,M-Q)\&. !> .fi .PP .br \fIX11\fP .PP .nf !> X11 is DOUBLE PRECISION array, dimension (LDX11,Q) !> On entry, the top block of the matrix X to be reduced\&. On !> exit, the columns of tril(X11) specify reflectors for P1 and !> the rows of triu(X11,1) specify reflectors for Q1\&. !> .fi .PP .br \fILDX11\fP .PP .nf !> LDX11 is INTEGER !> The leading dimension of X11\&. LDX11 >= P\&. !> .fi .PP .br \fIX21\fP .PP .nf !> X21 is DOUBLE PRECISION array, dimension (LDX21,Q) !> On entry, the bottom block of the matrix X to be reduced\&. On !> exit, the columns of tril(X21) specify reflectors for P2\&. !> .fi .PP .br \fILDX21\fP .PP .nf !> LDX21 is INTEGER !> The leading dimension of X21\&. LDX21 >= M-P\&. !> .fi .PP .br \fITHETA\fP .PP .nf !> THETA is DOUBLE PRECISION array, dimension (Q) !> The entries of the bidiagonal blocks B11, B21 are defined by !> THETA and PHI\&. See Further Details\&. !> .fi .PP .br \fIPHI\fP .PP .nf !> PHI is DOUBLE PRECISION array, dimension (Q-1) !> The entries of the bidiagonal blocks B11, B21 are defined by !> THETA and PHI\&. See Further Details\&. !> .fi .PP .br \fITAUP1\fP .PP .nf !> TAUP1 is DOUBLE PRECISION array, dimension (P) !> The scalar factors of the elementary reflectors that define !> P1\&. !> .fi .PP .br \fITAUP2\fP .PP .nf !> TAUP2 is DOUBLE PRECISION array, dimension (M-P) !> The scalar factors of the elementary reflectors that define !> P2\&. !> .fi .PP .br \fITAUQ1\fP .PP .nf !> TAUQ1 is DOUBLE PRECISION array, dimension (Q) !> The scalar factors of the elementary reflectors that define !> Q1\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is DOUBLE PRECISION array, dimension (LWORK) !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. LWORK >= M-Q\&. !> !> 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 \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> .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 \fBFurther Details:\fP .RS 4 .PP .nf !> !> The upper-bidiagonal blocks B11, B21 are represented implicitly by !> angles THETA(1), \&.\&.\&., THETA(Q) and PHI(1), \&.\&.\&., PHI(Q-1)\&. Every entry !> in each bidiagonal band is a product of a sine or cosine of a THETA !> with a sine or cosine of a PHI\&. See [1] or DORCSD for details\&. !> !> P1, P2, and Q1 are represented as products of elementary reflectors\&. !> See DORCSD2BY1 for details on generating P1, P2, and Q1 using DORGQR !> and DORGLQ\&. !> .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 .PP Definition at line \fB201\fP of file \fBdorbdb1\&.f\fP\&. .SS "subroutine sorbdb1 (integer m, integer p, integer q, real, dimension(ldx11,*) x11, integer ldx11, real, dimension(ldx21,*) x21, integer ldx21, real, dimension(*) theta, real, dimension(*) phi, real, dimension(*) taup1, real, dimension(*) taup2, real, dimension(*) tauq1, real, dimension(*) work, integer lwork, integer info)" .PP \fBSORBDB1\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> SORBDB1 simultaneously bidiagonalizes the blocks of a tall and skinny !> matrix X with orthonormal columns: !> !> [ B11 ] !> [ X11 ] [ P1 | ] [ 0 ] !> [-----] = [---------] [-----] Q1**T \&. !> [ X21 ] [ | P2 ] [ B21 ] !> [ 0 ] !> !> X11 is P-by-Q, and X21 is (M-P)-by-Q\&. Q must be no larger than P, !> M-P, or M-Q\&. Routines SORBDB2, SORBDB3, and SORBDB4 handle cases in !> which Q is not the minimum dimension\&. !> !> The orthogonal matrices P1, P2, and Q1 are P-by-P, (M-P)-by-(M-P), !> and (M-Q)-by-(M-Q), respectively\&. They are represented implicitly by !> Householder vectors\&. !> !> B11 and B12 are Q-by-Q bidiagonal matrices represented implicitly by !> angles THETA, PHI\&. !> !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIM\fP .PP .nf !> M is INTEGER !> The number of rows X11 plus the number of rows in X21\&. !> .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 <= !> MIN(P,M-P,M-Q)\&. !> .fi .PP .br \fIX11\fP .PP .nf !> X11 is REAL array, dimension (LDX11,Q) !> On entry, the top block of the matrix X to be reduced\&. On !> exit, the columns of tril(X11) specify reflectors for P1 and !> the rows of triu(X11,1) specify reflectors for Q1\&. !> .fi .PP .br \fILDX11\fP .PP .nf !> LDX11 is INTEGER !> The leading dimension of X11\&. LDX11 >= P\&. !> .fi .PP .br \fIX21\fP .PP .nf !> X21 is REAL array, dimension (LDX21,Q) !> On entry, the bottom block of the matrix X to be reduced\&. On !> exit, the columns of tril(X21) specify reflectors for P2\&. !> .fi .PP .br \fILDX21\fP .PP .nf !> LDX21 is INTEGER !> The leading dimension of X21\&. LDX21 >= M-P\&. !> .fi .PP .br \fITHETA\fP .PP .nf !> THETA is REAL array, dimension (Q) !> The entries of the bidiagonal blocks B11, B21 are defined by !> THETA and PHI\&. See Further Details\&. !> .fi .PP .br \fIPHI\fP .PP .nf !> PHI is REAL array, dimension (Q-1) !> The entries of the bidiagonal blocks B11, B21 are defined by !> THETA and PHI\&. See Further Details\&. !> .fi .PP .br \fITAUP1\fP .PP .nf !> TAUP1 is REAL array, dimension (P) !> The scalar factors of the elementary reflectors that define !> P1\&. !> .fi .PP .br \fITAUP2\fP .PP .nf !> TAUP2 is REAL array, dimension (M-P) !> The scalar factors of the elementary reflectors that define !> P2\&. !> .fi .PP .br \fITAUQ1\fP .PP .nf !> TAUQ1 is REAL array, dimension (Q) !> The scalar factors of the elementary reflectors that define !> Q1\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is REAL array, dimension (LWORK) !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. LWORK >= M-Q\&. !> !> 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 \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> .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 \fBFurther Details:\fP .RS 4 .PP .nf !> !> The upper-bidiagonal blocks B11, B21 are represented implicitly by !> angles THETA(1), \&.\&.\&., THETA(Q) and PHI(1), \&.\&.\&., PHI(Q-1)\&. Every entry !> in each bidiagonal band is a product of a sine or cosine of a THETA !> with a sine or cosine of a PHI\&. See [1] or SORCSD for details\&. !> !> P1, P2, and Q1 are represented as products of elementary reflectors\&. !> See SORCSD2BY1 for details on generating P1, P2, and Q1 using SORGQR !> and SORGLQ\&. !> .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 .PP Definition at line \fB201\fP of file \fBsorbdb1\&.f\fP\&. .SS "subroutine zunbdb1 (integer m, integer p, integer q, complex*16, dimension(ldx11,*) x11, integer ldx11, complex*16, dimension(ldx21,*) x21, integer ldx21, double precision, dimension(*) theta, double precision, dimension(*) phi, complex*16, dimension(*) taup1, complex*16, dimension(*) taup2, complex*16, dimension(*) tauq1, complex*16, dimension(*) work, integer lwork, integer info)" .PP \fBZUNBDB1\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> ZUNBDB1 simultaneously bidiagonalizes the blocks of a tall and skinny !> matrix X with orthonormal columns: !> !> [ B11 ] !> [ X11 ] [ P1 | ] [ 0 ] !> [-----] = [---------] [-----] Q1**T \&. !> [ X21 ] [ | P2 ] [ B21 ] !> [ 0 ] !> !> X11 is P-by-Q, and X21 is (M-P)-by-Q\&. Q must be no larger than P, !> M-P, or M-Q\&. Routines ZUNBDB2, ZUNBDB3, and ZUNBDB4 handle cases in !> which Q is not the minimum dimension\&. !> !> The unitary matrices P1, P2, and Q1 are P-by-P, (M-P)-by-(M-P), !> and (M-Q)-by-(M-Q), respectively\&. They are represented implicitly by !> Householder vectors\&. !> !> B11 and B12 are Q-by-Q bidiagonal matrices represented implicitly by !> angles THETA, PHI\&. !> !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIM\fP .PP .nf !> M is INTEGER !> The number of rows X11 plus the number of rows in X21\&. !> .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 <= !> MIN(P,M-P,M-Q)\&. !> .fi .PP .br \fIX11\fP .PP .nf !> X11 is COMPLEX*16 array, dimension (LDX11,Q) !> On entry, the top block of the matrix X to be reduced\&. On !> exit, the columns of tril(X11) specify reflectors for P1 and !> the rows of triu(X11,1) specify reflectors for Q1\&. !> .fi .PP .br \fILDX11\fP .PP .nf !> LDX11 is INTEGER !> The leading dimension of X11\&. LDX11 >= P\&. !> .fi .PP .br \fIX21\fP .PP .nf !> X21 is COMPLEX*16 array, dimension (LDX21,Q) !> On entry, the bottom block of the matrix X to be reduced\&. On !> exit, the columns of tril(X21) specify reflectors for P2\&. !> .fi .PP .br \fILDX21\fP .PP .nf !> LDX21 is INTEGER !> The leading dimension of X21\&. LDX21 >= M-P\&. !> .fi .PP .br \fITHETA\fP .PP .nf !> THETA is DOUBLE PRECISION array, dimension (Q) !> The entries of the bidiagonal blocks B11, B21 are defined by !> THETA and PHI\&. See Further Details\&. !> .fi .PP .br \fIPHI\fP .PP .nf !> PHI is DOUBLE PRECISION array, dimension (Q-1) !> The entries of the bidiagonal blocks B11, B21 are defined by !> THETA and PHI\&. See Further Details\&. !> .fi .PP .br \fITAUP1\fP .PP .nf !> TAUP1 is COMPLEX*16 array, dimension (P) !> The scalar factors of the elementary reflectors that define !> P1\&. !> .fi .PP .br \fITAUP2\fP .PP .nf !> TAUP2 is COMPLEX*16 array, dimension (M-P) !> The scalar factors of the elementary reflectors that define !> P2\&. !> .fi .PP .br \fITAUQ1\fP .PP .nf !> TAUQ1 is COMPLEX*16 array, dimension (Q) !> The scalar factors of the elementary reflectors that define !> Q1\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is COMPLEX*16 array, dimension (LWORK) !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. LWORK >= M-Q\&. !> !> 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 \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> .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 \fBFurther Details:\fP .RS 4 .PP .nf !> !> The upper-bidiagonal blocks B11, B21 are represented implicitly by !> angles THETA(1), \&.\&.\&., THETA(Q) and PHI(1), \&.\&.\&., PHI(Q-1)\&. Every entry !> in each bidiagonal band is a product of a sine or cosine of a THETA !> with a sine or cosine of a PHI\&. See [1] or ZUNCSD for details\&. !> !> P1, P2, and Q1 are represented as products of elementary reflectors\&. !> See ZUNCSD2BY1 for details on generating P1, P2, and Q1 using ZUNGQR !> and ZUNGLQ\&. !> .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 .PP Definition at line \fB201\fP of file \fBzunbdb1\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.