Subroutine */
| 27813 | } /* zunm2l_ */ |
| 27814 | |
| 27815 | /* Subroutine */ int zunm2r_(char *side, char *trans, integer *m, integer *n, |
| 27816 | integer *k, doublecomplex *a, integer *lda, doublecomplex *tau, |
| 27817 | doublecomplex *c__, integer *ldc, doublecomplex *work, integer *info) |
| 27818 | { |
| 27819 | /* System generated locals */ |
| 27820 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3; |
| 27821 | doublecomplex z__1; |
| 27822 | |
| 27823 | /* Local variables */ |
| 27824 | static integer i__, i1, i2, i3, ic, jc, mi, ni, nq; |
| 27825 | static doublecomplex aii; |
| 27826 | static logical left; |
| 27827 | static doublecomplex taui; |
| 27828 | extern logical lsame_(char *, char *); |
| 27829 | extern /* Subroutine */ int zlarf_(char *, integer *, integer *, |
| 27830 | doublecomplex *, integer *, doublecomplex *, doublecomplex *, |
| 27831 | integer *, doublecomplex *), xerbla_(char *, integer *); |
| 27832 | static logical notran; |
| 27833 | |
| 27834 | |
| 27835 | /* |
| 27836 | -- LAPACK routine (version 3.2) -- |
| 27837 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 27838 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 27839 | November 2006 |
| 27840 | |
| 27841 | |
| 27842 | Purpose |
| 27843 | ======= |
| 27844 | |
| 27845 | ZUNM2R overwrites the general complex m-by-n matrix C with |
| 27846 | |
| 27847 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 27848 | |
| 27849 | Q'* C if SIDE = 'L' and TRANS = 'C', or |
| 27850 | |
| 27851 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 27852 | |
| 27853 | C * Q' if SIDE = 'R' and TRANS = 'C', |
| 27854 | |
| 27855 | where Q is a complex unitary matrix defined as the product of k |
| 27856 | elementary reflectors |
| 27857 | |
| 27858 | Q = H(1) H(2) . . . H(k) |
| 27859 | |
| 27860 | as returned by ZGEQRF. Q is of order m if SIDE = 'L' and of order n |
| 27861 | if SIDE = 'R'. |
| 27862 | |
| 27863 | Arguments |
| 27864 | ========= |
| 27865 | |
| 27866 | SIDE (input) CHARACTER*1 |
| 27867 | = 'L': apply Q or Q' from the Left |
| 27868 | = 'R': apply Q or Q' from the Right |
| 27869 | |
| 27870 | TRANS (input) CHARACTER*1 |
| 27871 | = 'N': apply Q (No transpose) |
| 27872 | = 'C': apply Q' (Conjugate transpose) |