Subroutine */
| 34469 | } /* dorgqr_ */ |
| 34470 | |
| 34471 | /* Subroutine */ int dorm2l_(char *side, char *trans, integer *m, integer *n, |
| 34472 | integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * |
| 34473 | c__, integer *ldc, doublereal *work, integer *info) |
| 34474 | { |
| 34475 | /* System generated locals */ |
| 34476 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2; |
| 34477 | |
| 34478 | /* Local variables */ |
| 34479 | static integer i__, i1, i2, i3, mi, ni, nq; |
| 34480 | static doublereal aii; |
| 34481 | static logical left; |
| 34482 | extern /* Subroutine */ int dlarf_(char *, integer *, integer *, |
| 34483 | doublereal *, integer *, doublereal *, doublereal *, integer *, |
| 34484 | doublereal *); |
| 34485 | extern logical lsame_(char *, char *); |
| 34486 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 34487 | static logical notran; |
| 34488 | |
| 34489 | |
| 34490 | /* |
| 34491 | -- LAPACK routine (version 3.2) -- |
| 34492 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 34493 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 34494 | November 2006 |
| 34495 | |
| 34496 | |
| 34497 | Purpose |
| 34498 | ======= |
| 34499 | |
| 34500 | DORM2L overwrites the general real m by n matrix C with |
| 34501 | |
| 34502 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 34503 | |
| 34504 | Q'* C if SIDE = 'L' and TRANS = 'T', or |
| 34505 | |
| 34506 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 34507 | |
| 34508 | C * Q' if SIDE = 'R' and TRANS = 'T', |
| 34509 | |
| 34510 | where Q is a real orthogonal matrix defined as the product of k |
| 34511 | elementary reflectors |
| 34512 | |
| 34513 | Q = H(k) . . . H(2) H(1) |
| 34514 | |
| 34515 | as returned by DGEQLF. Q is of order m if SIDE = 'L' and of order n |
| 34516 | if SIDE = 'R'. |
| 34517 | |
| 34518 | Arguments |
| 34519 | ========= |
| 34520 | |
| 34521 | SIDE (input) CHARACTER*1 |
| 34522 | = 'L': apply Q or Q' from the Left |
| 34523 | = 'R': apply Q or Q' from the Right |
| 34524 | |
| 34525 | TRANS (input) CHARACTER*1 |
| 34526 | = 'N': apply Q (No transpose) |
| 34527 | = 'T': apply Q' (Transpose) |
| 34528 |