Subroutine */
| 34670 | } /* dorm2l_ */ |
| 34671 | |
| 34672 | /* Subroutine */ int dorm2r_(char *side, char *trans, integer *m, integer *n, |
| 34673 | integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * |
| 34674 | c__, integer *ldc, doublereal *work, integer *info) |
| 34675 | { |
| 34676 | /* System generated locals */ |
| 34677 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2; |
| 34678 | |
| 34679 | /* Local variables */ |
| 34680 | static integer i__, i1, i2, i3, ic, jc, mi, ni, nq; |
| 34681 | static doublereal aii; |
| 34682 | static logical left; |
| 34683 | extern /* Subroutine */ int dlarf_(char *, integer *, integer *, |
| 34684 | doublereal *, integer *, doublereal *, doublereal *, integer *, |
| 34685 | doublereal *); |
| 34686 | extern logical lsame_(char *, char *); |
| 34687 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 34688 | static logical notran; |
| 34689 | |
| 34690 | |
| 34691 | /* |
| 34692 | -- LAPACK routine (version 3.2) -- |
| 34693 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 34694 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 34695 | November 2006 |
| 34696 | |
| 34697 | |
| 34698 | Purpose |
| 34699 | ======= |
| 34700 | |
| 34701 | DORM2R overwrites the general real m by n matrix C with |
| 34702 | |
| 34703 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 34704 | |
| 34705 | Q'* C if SIDE = 'L' and TRANS = 'T', or |
| 34706 | |
| 34707 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 34708 | |
| 34709 | C * Q' if SIDE = 'R' and TRANS = 'T', |
| 34710 | |
| 34711 | where Q is a real orthogonal matrix defined as the product of k |
| 34712 | elementary reflectors |
| 34713 | |
| 34714 | Q = H(1) H(2) . . . H(k) |
| 34715 | |
| 34716 | as returned by DGEQRF. Q is of order m if SIDE = 'L' and of order n |
| 34717 | if SIDE = 'R'. |
| 34718 | |
| 34719 | Arguments |
| 34720 | ========= |
| 34721 | |
| 34722 | SIDE (input) CHARACTER*1 |
| 34723 | = 'L': apply Q or Q' from the Left |
| 34724 | = 'R': apply Q or Q' from the Right |
| 34725 | |
| 34726 | TRANS (input) CHARACTER*1 |
| 34727 | = 'N': apply Q (No transpose) |
| 34728 | = 'T': apply Q' (Transpose) |
| 34729 |