Subroutine */
| 28593 | } /* zunmhr_ */ |
| 28594 | |
| 28595 | /* Subroutine */ int zunml2_(char *side, char *trans, integer *m, integer *n, |
| 28596 | integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, |
| 28597 | doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info) |
| 28598 | { |
| 28599 | /* System generated locals */ |
| 28600 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3; |
| 28601 | doublecomplex z__1; |
| 28602 | |
| 28603 | /* Local variables */ |
| 28604 | static integer i__, i1, i2, i3, ic, jc, mi, ni, nq; |
| 28605 | static doublecomplex aii; |
| 28606 | static logical left; |
| 28607 | static doublecomplex taui; |
| 28608 | extern logical lsame_(char *, char *); |
| 28609 | extern /* Subroutine */ int zlarf_(char *, integer *, integer *, |
| 28610 | doublecomplex *, integer *, doublecomplex *, doublecomplex *, |
| 28611 | integer *, doublecomplex *), xerbla_(char *, integer *), zlacgv_(integer *, doublecomplex *, integer *); |
| 28612 | static logical notran; |
| 28613 | |
| 28614 | |
| 28615 | /* |
| 28616 | -- LAPACK routine (version 3.2) -- |
| 28617 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 28618 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 28619 | November 2006 |
| 28620 | |
| 28621 | |
| 28622 | Purpose |
| 28623 | ======= |
| 28624 | |
| 28625 | ZUNML2 overwrites the general complex m-by-n matrix C with |
| 28626 | |
| 28627 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 28628 | |
| 28629 | Q'* C if SIDE = 'L' and TRANS = 'C', or |
| 28630 | |
| 28631 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 28632 | |
| 28633 | C * Q' if SIDE = 'R' and TRANS = 'C', |
| 28634 | |
| 28635 | where Q is a complex unitary matrix defined as the product of k |
| 28636 | elementary reflectors |
| 28637 | |
| 28638 | Q = H(k)' . . . H(2)' H(1)' |
| 28639 | |
| 28640 | as returned by ZGELQF. Q is of order m if SIDE = 'L' and of order n |
| 28641 | if SIDE = 'R'. |
| 28642 | |
| 28643 | Arguments |
| 28644 | ========= |
| 28645 | |
| 28646 | SIDE (input) CHARACTER*1 |
| 28647 | = 'L': apply Q or Q' from the Left |
| 28648 | = 'R': apply Q or Q' from the Right |
| 28649 | |
| 28650 | TRANS (input) CHARACTER*1 |
| 28651 | = 'N': apply Q (No transpose) |
| 28652 | = 'C': apply Q' (Conjugate transpose) |