Subroutine */
| 27601 | } /* zungqr_ */ |
| 27602 | |
| 27603 | /* Subroutine */ int zunm2l_(char *side, char *trans, integer *m, integer *n, |
| 27604 | integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, |
| 27605 | doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info) |
| 27606 | { |
| 27607 | /* System generated locals */ |
| 27608 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3; |
| 27609 | doublecomplex z__1; |
| 27610 | |
| 27611 | /* Local variables */ |
| 27612 | static integer i__, i1, i2, i3, mi, ni, nq; |
| 27613 | static doublecomplex aii; |
| 27614 | static logical left; |
| 27615 | static doublecomplex taui; |
| 27616 | extern logical lsame_(char *, char *); |
| 27617 | extern /* Subroutine */ int zlarf_(char *, integer *, integer *, |
| 27618 | doublecomplex *, integer *, doublecomplex *, doublecomplex *, |
| 27619 | integer *, doublecomplex *), xerbla_(char *, integer *); |
| 27620 | static logical notran; |
| 27621 | |
| 27622 | |
| 27623 | /* |
| 27624 | -- LAPACK routine (version 3.2) -- |
| 27625 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 27626 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 27627 | November 2006 |
| 27628 | |
| 27629 | |
| 27630 | Purpose |
| 27631 | ======= |
| 27632 | |
| 27633 | ZUNM2L overwrites the general complex m-by-n matrix C with |
| 27634 | |
| 27635 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 27636 | |
| 27637 | Q'* C if SIDE = 'L' and TRANS = 'C', or |
| 27638 | |
| 27639 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 27640 | |
| 27641 | C * Q' if SIDE = 'R' and TRANS = 'C', |
| 27642 | |
| 27643 | where Q is a complex unitary matrix defined as the product of k |
| 27644 | elementary reflectors |
| 27645 | |
| 27646 | Q = H(k) . . . H(2) H(1) |
| 27647 | |
| 27648 | as returned by ZGEQLF. Q is of order m if SIDE = 'L' and of order n |
| 27649 | if SIDE = 'R'. |
| 27650 | |
| 27651 | Arguments |
| 27652 | ========= |
| 27653 | |
| 27654 | SIDE (input) CHARACTER*1 |
| 27655 | = 'L': apply Q or Q' from the Left |
| 27656 | = 'R': apply Q or Q' from the Right |
| 27657 | |
| 27658 | TRANS (input) CHARACTER*1 |
| 27659 | = 'N': apply Q (No transpose) |
| 27660 | = 'C': apply Q' (Conjugate transpose) |