Subroutine */
| 27687 | } /* cunm2l_ */ |
| 27688 | |
| 27689 | /* Subroutine */ int cunm2r_(char *side, char *trans, integer *m, integer *n, |
| 27690 | integer *k, complex *a, integer *lda, complex *tau, complex *c__, |
| 27691 | integer *ldc, complex *work, integer *info) |
| 27692 | { |
| 27693 | /* System generated locals */ |
| 27694 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3; |
| 27695 | complex q__1; |
| 27696 | |
| 27697 | /* Local variables */ |
| 27698 | static integer i__, i1, i2, i3, ic, jc, mi, ni, nq; |
| 27699 | static complex aii; |
| 27700 | static logical left; |
| 27701 | static complex taui; |
| 27702 | extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * |
| 27703 | , integer *, complex *, complex *, integer *, complex *); |
| 27704 | extern logical lsame_(char *, char *); |
| 27705 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 27706 | static logical notran; |
| 27707 | |
| 27708 | |
| 27709 | /* |
| 27710 | -- LAPACK routine (version 3.2) -- |
| 27711 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 27712 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 27713 | November 2006 |
| 27714 | |
| 27715 | |
| 27716 | Purpose |
| 27717 | ======= |
| 27718 | |
| 27719 | CUNM2R overwrites the general complex m-by-n matrix C with |
| 27720 | |
| 27721 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 27722 | |
| 27723 | Q'* C if SIDE = 'L' and TRANS = 'C', or |
| 27724 | |
| 27725 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 27726 | |
| 27727 | C * Q' if SIDE = 'R' and TRANS = 'C', |
| 27728 | |
| 27729 | where Q is a complex unitary matrix defined as the product of k |
| 27730 | elementary reflectors |
| 27731 | |
| 27732 | Q = H(1) H(2) . . . H(k) |
| 27733 | |
| 27734 | as returned by CGEQRF. Q is of order m if SIDE = 'L' and of order n |
| 27735 | if SIDE = 'R'. |
| 27736 | |
| 27737 | Arguments |
| 27738 | ========= |
| 27739 | |
| 27740 | SIDE (input) CHARACTER*1 |
| 27741 | = 'L': apply Q or Q' from the Left |
| 27742 | = 'R': apply Q or Q' from the Right |
| 27743 | |
| 27744 | TRANS (input) CHARACTER*1 |
| 27745 | = 'N': apply Q (No transpose) |
| 27746 | = 'C': apply Q' (Conjugate transpose) |