Subroutine */
| 26421 | } /* zung2r_ */ |
| 26422 | |
| 26423 | /* Subroutine */ int zungbr_(char *vect, integer *m, integer *n, integer *k, |
| 26424 | doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex * |
| 26425 | work, integer *lwork, integer *info) |
| 26426 | { |
| 26427 | /* System generated locals */ |
| 26428 | integer a_dim1, a_offset, i__1, i__2, i__3; |
| 26429 | |
| 26430 | /* Local variables */ |
| 26431 | static integer i__, j, nb, mn; |
| 26432 | extern logical lsame_(char *, char *); |
| 26433 | static integer iinfo; |
| 26434 | static logical wantq; |
| 26435 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 26436 | extern integer ilaenv_(integer *, char *, char *, integer *, integer *, |
| 26437 | integer *, integer *, ftnlen, ftnlen); |
| 26438 | static integer lwkopt; |
| 26439 | static logical lquery; |
| 26440 | extern /* Subroutine */ int zunglq_(integer *, integer *, integer *, |
| 26441 | doublecomplex *, integer *, doublecomplex *, doublecomplex *, |
| 26442 | integer *, integer *), zungqr_(integer *, integer *, integer *, |
| 26443 | doublecomplex *, integer *, doublecomplex *, doublecomplex *, |
| 26444 | integer *, integer *); |
| 26445 | |
| 26446 | |
| 26447 | /* |
| 26448 | -- LAPACK routine (version 3.2) -- |
| 26449 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 26450 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 26451 | November 2006 |
| 26452 | |
| 26453 | |
| 26454 | Purpose |
| 26455 | ======= |
| 26456 | |
| 26457 | ZUNGBR generates one of the complex unitary matrices Q or P**H |
| 26458 | determined by ZGEBRD when reducing a complex matrix A to bidiagonal |
| 26459 | form: A = Q * B * P**H. Q and P**H are defined as products of |
| 26460 | elementary reflectors H(i) or G(i) respectively. |
| 26461 | |
| 26462 | If VECT = 'Q', A is assumed to have been an M-by-K matrix, and Q |
| 26463 | is of order M: |
| 26464 | if m >= k, Q = H(1) H(2) . . . H(k) and ZUNGBR returns the first n |
| 26465 | columns of Q, where m >= n >= k; |
| 26466 | if m < k, Q = H(1) H(2) . . . H(m-1) and ZUNGBR returns Q as an |
| 26467 | M-by-M matrix. |
| 26468 | |
| 26469 | If VECT = 'P', A is assumed to have been a K-by-N matrix, and P**H |
| 26470 | is of order N: |
| 26471 | if k < n, P**H = G(k) . . . G(2) G(1) and ZUNGBR returns the first m |
| 26472 | rows of P**H, where n >= m >= k; |
| 26473 | if k >= n, P**H = G(n-1) . . . G(2) G(1) and ZUNGBR returns P**H as |
| 26474 | an N-by-N matrix. |
| 26475 | |
| 26476 | Arguments |
| 26477 | ========= |
| 26478 | |
| 26479 | VECT (input) CHARACTER*1 |
| 26480 | Specifies whether the matrix Q or the matrix P**H is |