Subroutine */
| 27903 | } /* cunm2r_ */ |
| 27904 | |
| 27905 | /* Subroutine */ int cunmbr_(char *vect, char *side, char *trans, integer *m, |
| 27906 | integer *n, integer *k, complex *a, integer *lda, complex *tau, |
| 27907 | complex *c__, integer *ldc, complex *work, integer *lwork, integer * |
| 27908 | info) |
| 27909 | { |
| 27910 | /* System generated locals */ |
| 27911 | address a__1[2]; |
| 27912 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3[2]; |
| 27913 | char ch__1[2]; |
| 27914 | |
| 27915 | /* Local variables */ |
| 27916 | static integer i1, i2, nb, mi, ni, nq, nw; |
| 27917 | static logical left; |
| 27918 | extern logical lsame_(char *, char *); |
| 27919 | static integer iinfo; |
| 27920 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 27921 | extern integer ilaenv_(integer *, char *, char *, integer *, integer *, |
| 27922 | integer *, integer *, ftnlen, ftnlen); |
| 27923 | extern /* Subroutine */ int cunmlq_(char *, char *, integer *, integer *, |
| 27924 | integer *, complex *, integer *, complex *, complex *, integer *, |
| 27925 | complex *, integer *, integer *); |
| 27926 | static logical notran; |
| 27927 | extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *, |
| 27928 | integer *, complex *, integer *, complex *, complex *, integer *, |
| 27929 | complex *, integer *, integer *); |
| 27930 | static logical applyq; |
| 27931 | static char transt[1]; |
| 27932 | static integer lwkopt; |
| 27933 | static logical lquery; |
| 27934 | |
| 27935 | |
| 27936 | /* |
| 27937 | -- LAPACK routine (version 3.2) -- |
| 27938 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 27939 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 27940 | November 2006 |
| 27941 | |
| 27942 | |
| 27943 | Purpose |
| 27944 | ======= |
| 27945 | |
| 27946 | If VECT = 'Q', CUNMBR overwrites the general complex M-by-N matrix C |
| 27947 | with |
| 27948 | SIDE = 'L' SIDE = 'R' |
| 27949 | TRANS = 'N': Q * C C * Q |
| 27950 | TRANS = 'C': Q**H * C C * Q**H |
| 27951 | |
| 27952 | If VECT = 'P', CUNMBR overwrites the general complex M-by-N matrix C |
| 27953 | with |
| 27954 | SIDE = 'L' SIDE = 'R' |
| 27955 | TRANS = 'N': P * C C * P |
| 27956 | TRANS = 'C': P**H * C C * P**H |
| 27957 | |
| 27958 | Here Q and P**H are the unitary matrices determined by CGEBRD when |
| 27959 | reducing a complex matrix A to bidiagonal form: A = Q * B * P**H. Q |
| 27960 | and P**H are defined as products of elementary reflectors H(i) and |
| 27961 | G(i) respectively. |
| 27962 |