Subroutine */
| 28029 | } /* zunm2r_ */ |
| 28030 | |
| 28031 | /* Subroutine */ int zunmbr_(char *vect, char *side, char *trans, integer *m, |
| 28032 | integer *n, integer *k, doublecomplex *a, integer *lda, doublecomplex |
| 28033 | *tau, doublecomplex *c__, integer *ldc, doublecomplex *work, integer * |
| 28034 | lwork, integer *info) |
| 28035 | { |
| 28036 | /* System generated locals */ |
| 28037 | address a__1[2]; |
| 28038 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3[2]; |
| 28039 | char ch__1[2]; |
| 28040 | |
| 28041 | /* Local variables */ |
| 28042 | static integer i1, i2, nb, mi, ni, nq, nw; |
| 28043 | static logical left; |
| 28044 | extern logical lsame_(char *, char *); |
| 28045 | static integer iinfo; |
| 28046 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 28047 | extern integer ilaenv_(integer *, char *, char *, integer *, integer *, |
| 28048 | integer *, integer *, ftnlen, ftnlen); |
| 28049 | static logical notran, applyq; |
| 28050 | static char transt[1]; |
| 28051 | static integer lwkopt; |
| 28052 | static logical lquery; |
| 28053 | extern /* Subroutine */ int zunmlq_(char *, char *, integer *, integer *, |
| 28054 | integer *, doublecomplex *, integer *, doublecomplex *, |
| 28055 | doublecomplex *, integer *, doublecomplex *, integer *, integer *), zunmqr_(char *, char *, integer *, integer *, |
| 28056 | integer *, doublecomplex *, integer *, doublecomplex *, |
| 28057 | doublecomplex *, integer *, doublecomplex *, integer *, integer *); |
| 28058 | |
| 28059 | |
| 28060 | /* |
| 28061 | -- LAPACK routine (version 3.2) -- |
| 28062 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 28063 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 28064 | November 2006 |
| 28065 | |
| 28066 | |
| 28067 | Purpose |
| 28068 | ======= |
| 28069 | |
| 28070 | If VECT = 'Q', ZUNMBR overwrites the general complex M-by-N matrix C |
| 28071 | with |
| 28072 | SIDE = 'L' SIDE = 'R' |
| 28073 | TRANS = 'N': Q * C C * Q |
| 28074 | TRANS = 'C': Q**H * C C * Q**H |
| 28075 | |
| 28076 | If VECT = 'P', ZUNMBR overwrites the general complex M-by-N matrix C |
| 28077 | with |
| 28078 | SIDE = 'L' SIDE = 'R' |
| 28079 | TRANS = 'N': P * C C * P |
| 28080 | TRANS = 'C': P**H * C C * P**H |
| 28081 | |
| 28082 | Here Q and P**H are the unitary matrices determined by ZGEBRD when |
| 28083 | reducing a complex matrix A to bidiagonal form: A = Q * B * P**H. Q |
| 28084 | and P**H are defined as products of elementary reflectors H(i) and |
| 28085 | G(i) respectively. |
| 28086 | |
| 28087 | Let nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Thus nq is the |
| 28088 | order of the unitary matrix Q or P**H that is applied. |