Subroutine */
| 29595 | } /* cunmqr_ */ |
| 29596 | |
| 29597 | /* Subroutine */ int cunmtr_(char *side, char *uplo, char *trans, integer *m, |
| 29598 | integer *n, complex *a, integer *lda, complex *tau, complex *c__, |
| 29599 | integer *ldc, complex *work, integer *lwork, integer *info) |
| 29600 | { |
| 29601 | /* System generated locals */ |
| 29602 | address a__1[2]; |
| 29603 | integer a_dim1, a_offset, c_dim1, c_offset, i__1[2], i__2, i__3; |
| 29604 | char ch__1[2]; |
| 29605 | |
| 29606 | /* Local variables */ |
| 29607 | static integer i1, i2, nb, mi, ni, nq, nw; |
| 29608 | static logical left; |
| 29609 | extern logical lsame_(char *, char *); |
| 29610 | static integer iinfo; |
| 29611 | static logical upper; |
| 29612 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 29613 | extern integer ilaenv_(integer *, char *, char *, integer *, integer *, |
| 29614 | integer *, integer *, ftnlen, ftnlen); |
| 29615 | extern /* Subroutine */ int cunmql_(char *, char *, integer *, integer *, |
| 29616 | integer *, complex *, integer *, complex *, complex *, integer *, |
| 29617 | complex *, integer *, integer *), cunmqr_(char *, |
| 29618 | char *, integer *, integer *, integer *, complex *, integer *, |
| 29619 | complex *, complex *, integer *, complex *, integer *, integer *); |
| 29620 | static integer lwkopt; |
| 29621 | static logical lquery; |
| 29622 | |
| 29623 | |
| 29624 | /* |
| 29625 | -- LAPACK routine (version 3.2) -- |
| 29626 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 29627 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 29628 | November 2006 |
| 29629 | |
| 29630 | |
| 29631 | Purpose |
| 29632 | ======= |
| 29633 | |
| 29634 | CUNMTR overwrites the general complex M-by-N matrix C with |
| 29635 | |
| 29636 | SIDE = 'L' SIDE = 'R' |
| 29637 | TRANS = 'N': Q * C C * Q |
| 29638 | TRANS = 'C': Q**H * C C * Q**H |
| 29639 | |
| 29640 | where Q is a complex unitary matrix of order nq, with nq = m if |
| 29641 | SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of |
| 29642 | nq-1 elementary reflectors, as returned by CHETRD: |
| 29643 | |
| 29644 | if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); |
| 29645 | |
| 29646 | if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). |
| 29647 | |
| 29648 | Arguments |
| 29649 | ========= |
| 29650 | |
| 29651 | SIDE (input) CHARACTER*1 |
| 29652 | = 'L': apply Q or Q**H from the Left; |
| 29653 | = 'R': apply Q or Q**H from the Right. |
| 29654 |