Visible to Intel only — GUID: GUID-3355A415-C965-4C2E-B330-A40039FCAD6D
Visible to Intel only — GUID: GUID-3355A415-C965-4C2E-B330-A40039FCAD6D
?orbdb1/?unbdb1
Simultaneously bidiagonalizes the blocks of a tall and skinny matrix with orthonormal columns.
Syntax
call sorbdb1( m, p, q, x11, ldx11, x21, ldx21, theta, phi, taup1, taup2, tauq1, work, lwork, info )
call dorbdb1( m, p, q, x11, ldx11, x21, ldx21, theta, phi, taup1, taup2, tauq1, work, lwork, info )
call cunbdb1( m, p, q, x11, ldx11, x21, ldx21, theta, phi, taup1, taup2, tauq1, work, lwork, info )
call zunbdb1( m, p, q, x11, ldx11, x21, ldx21, theta, phi, taup1, taup2, tauq1, work, lwork, info )
Include Files
- mkl.fi, lapack.f90
Description
The routines ?orbdb1/?unbdb1 simultaneously bidiagonalize the blocks of a tall and skinny matrix X with orthonormal columns:
The size of x11 is p by q, and x12 is (m - p) by q. q must not be larger than p, m-p, or m-q.
q≤ min(p, m - p, m - q) |
?orbdb1/?unbdb1 |
p≤ min(q, m - p, m - q) |
?orbdb2/?unbdb2 |
m - p≤ min(p, q, m - q) |
?orbdb3/?unbdb3 |
m - q≤ min(p, q, m - p) |
?orbdb4/?unbdb4 |
The orthogonal/unitary matrices p1, p2, and q1 are p-by-p, (m-p)-by-(m-p), (m-q)-by-(m-q), respectively.
p1, p2, and q1 are represented as products of elementary reflectors. See the description of ?orcsd2by1/?uncsd2by1 for details on generating p1, p2, and q1 using ?orgqr and ?orglq.
The upper-bidiagonal matrices b11 and b12 of size q by q 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 theta with a sine or cosine of phi. See [Sutton09] or the description of ?orcsd/?uncsd for details.
Input Parameters
- m
-
INTEGER. The number of rows in x11 plus the number of rows in x21.
- p
-
INTEGER. The number of rows in x11. 0 ≤p≤m.
- q
-
INTEGER. The number of columns in x11 and x21. 0 ≤q≤ min(p,m-p,m-q).
- x11
-
REAL for sorbdb1
DOUBLE PRECISION for dorbdb1
COMPLEX for cunbdb1
DOUBLE COMPLEX for zunbdb1
Array, DIMENSION (ldx11,q).
On entry, the top block of the orthogonal/unitary matrix to be reduced.
- ldx11
-
INTEGER. The leading dimension of the array X11. ldx11≥p.
- x21
-
REAL for sorbdb1
DOUBLE PRECISION for dorbdb1
COMPLEX for cunbdb1
DOUBLE COMPLEX for zunbdb1
Array, DIMENSION (ldx21,q).
On entry, the bottom block of the orthogonal/unitary matrix to be reduced.
- ldx21
-
INTEGER. The leading dimension of the array X21. ldx21≥m-p.
- work
-
REAL for sorbdb1
DOUBLE PRECISION for dorbdb1
COMPLEX for cunbdb1
DOUBLE COMPLEX for zunbdb1
Workspace array, DIMENSION (lwork).
- lwork
-
INTEGER. The size of the work array. 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.
Output Parameters
- x11
-
The columns of tril(x11) specify reflectors for p1 and the rows of triu(x11,1) specify reflectors for q1, where tril(A) denotes the lower triangle of A, and triu(A) denotes the upper triangle of A.
- x21
-
On exit, the columns of tril(x21) specify the reflectors for p2
- theta
-
REAL for sorbdb1
DOUBLE PRECISION for dorbdb1
COMPLEX for cunbdb1
DOUBLE COMPLEX for zunbdb1
Array, DIMENSION (q). The entries of bidiagonal blocks b11 and b21 can be computed from the angles theta and phi. See the Description section for details.
- phi
-
REAL for sorbdb1
DOUBLE PRECISION for dorbdb1
COMPLEX for cunbdb1
DOUBLE COMPLEX for zunbdb1
Array, DIMENSION (q-1). The entries of bidiagonal blocks b11 and b21 can be computed from the angles theta and phi. See the Description section for details.
- taup1
-
REAL for sorbdb1
DOUBLE PRECISION for dorbdb1
COMPLEX for cunbdb1
DOUBLE COMPLEX for zunbdb1
Array, DIMENSION (p).
Scalar factors of the elementary reflectors that define p1. - taup2
-
REAL for sorbdb1
DOUBLE PRECISION for dorbdb1
COMPLEX for cunbdb1
DOUBLE COMPLEX for zunbdb1
Array, DIMENSION (m-p).
Scalar factors of the elementary reflectors that define p2. - tauq1
-
REAL for sorbdb1
DOUBLE PRECISION for dorbdb1
COMPLEX for cunbdb1
DOUBLE COMPLEX for zunbdb1
Array, DIMENSION (q).
Scalar factors of the elementary reflectors that define q1. - info
-
INTEGER.
= 0: successful exit
< 0: if info = -i, the i-th argument has an illegal value.