|  | 
   
 |   |  |   
  
    | SRC/zunbdb2.f(3) | LAPACK | SRC/zunbdb2.f(3) |  
 subroutine zunbdb2 (m, p, q, x11, ldx11, x21, ldx21, theta,
    phi, taup1, taup2, tauq1, work, lwork, info)
  ZUNBDB2
 
 ZUNBDB2 Purpose: 
ZUNBDB2 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. P must be no larger than M-P,
 Q, or M-Q. Routines ZUNBDB1, ZUNBDB3, and ZUNBDB4 handle cases in
 which P 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 P-by-P bidiagonal matrices represented implicitly by
 angles THETA, PHI.
 Parameters M
M is INTEGER
 The number of rows X11 plus the number of rows in X21.
 P 
P is INTEGER
 The number of rows in X11. 0 <= P <= min(M-P,Q,M-Q).
 Q 
Q is INTEGER
 The number of columns in X11 and X21. 0 <= Q <= M.
 X11 
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.
 LDX11 
LDX11 is INTEGER
 The leading dimension of X11. LDX11 >= P.
 X21 
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.
 LDX21 
LDX21 is INTEGER
 The leading dimension of X21. LDX21 >= M-P.
 THETA 
THETA is DOUBLE PRECISION array, dimension (Q)
 The entries of the bidiagonal blocks B11, B21 are defined by
 THETA and PHI. See Further Details.
 PHI 
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.
 TAUP1 
TAUP1 is COMPLEX*16 array, dimension (P-1)
 The scalar factors of the elementary reflectors that define
 P1.
 TAUP2 
TAUP2 is COMPLEX*16 array, dimension (Q)
 The scalar factors of the elementary reflectors that define
 P2.
 TAUQ1 
TAUQ1 is COMPLEX*16 array, dimension (Q)
 The scalar factors of the elementary reflectors that define
 Q1.
 WORK 
WORK is COMPLEX*16 array, dimension (LWORK)
 LWORK 
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.
 INFO 
INFO is INTEGER
 = 0:  successful exit.
 < 0:  if INFO = -i, the i-th argument had an illegal value.
 Author Univ. of Tennessee
 Univ. of California Berkeley Univ. of Colorado Denver NAG Ltd.Further Details: 
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.
 References: [1] Brian D. Sutton. Computing the complete CS
  decomposition. Numer. Algorithms, 50(1):33-65, 2009. Definition at line 199 of file zunbdb2.f. Generated automatically by Doxygen for LAPACK from the source
    code. 
  Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
 |