Subroutine */
| 28469 | } /* cunmhr_ */ |
| 28470 | |
| 28471 | /* Subroutine */ int cunml2_(char *side, char *trans, integer *m, integer *n, |
| 28472 | integer *k, complex *a, integer *lda, complex *tau, complex *c__, |
| 28473 | integer *ldc, complex *work, integer *info) |
| 28474 | { |
| 28475 | /* System generated locals */ |
| 28476 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3; |
| 28477 | complex q__1; |
| 28478 | |
| 28479 | /* Local variables */ |
| 28480 | static integer i__, i1, i2, i3, ic, jc, mi, ni, nq; |
| 28481 | static complex aii; |
| 28482 | static logical left; |
| 28483 | static complex taui; |
| 28484 | extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * |
| 28485 | , integer *, complex *, complex *, integer *, complex *); |
| 28486 | extern logical lsame_(char *, char *); |
| 28487 | extern /* Subroutine */ int clacgv_(integer *, complex *, integer *), |
| 28488 | xerbla_(char *, integer *); |
| 28489 | static logical notran; |
| 28490 | |
| 28491 | |
| 28492 | /* |
| 28493 | -- LAPACK routine (version 3.2) -- |
| 28494 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 28495 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 28496 | November 2006 |
| 28497 | |
| 28498 | |
| 28499 | Purpose |
| 28500 | ======= |
| 28501 | |
| 28502 | CUNML2 overwrites the general complex m-by-n matrix C with |
| 28503 | |
| 28504 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 28505 | |
| 28506 | Q'* C if SIDE = 'L' and TRANS = 'C', or |
| 28507 | |
| 28508 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 28509 | |
| 28510 | C * Q' if SIDE = 'R' and TRANS = 'C', |
| 28511 | |
| 28512 | where Q is a complex unitary matrix defined as the product of k |
| 28513 | elementary reflectors |
| 28514 | |
| 28515 | Q = H(k)' . . . H(2)' H(1)' |
| 28516 | |
| 28517 | as returned by CGELQF. Q is of order m if SIDE = 'L' and of order n |
| 28518 | if SIDE = 'R'. |
| 28519 | |
| 28520 | Arguments |
| 28521 | ========= |
| 28522 | |
| 28523 | SIDE (input) CHARACTER*1 |
| 28524 | = 'L': apply Q or Q' from the Left |
| 28525 | = 'R': apply Q or Q' from the Right |
| 28526 | |
| 28527 | TRANS (input) CHARACTER*1 |
| 28528 | = 'N': apply Q (No transpose) |