Subroutine */
| 35432 | } /* dormhr_ */ |
| 35433 | |
| 35434 | /* Subroutine */ int dorml2_(char *side, char *trans, integer *m, integer *n, |
| 35435 | integer *k, doublereal *a, integer *lda, doublereal *tau, doublereal * |
| 35436 | c__, integer *ldc, doublereal *work, integer *info) |
| 35437 | { |
| 35438 | /* System generated locals */ |
| 35439 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2; |
| 35440 | |
| 35441 | /* Local variables */ |
| 35442 | static integer i__, i1, i2, i3, ic, jc, mi, ni, nq; |
| 35443 | static doublereal aii; |
| 35444 | static logical left; |
| 35445 | extern /* Subroutine */ int dlarf_(char *, integer *, integer *, |
| 35446 | doublereal *, integer *, doublereal *, doublereal *, integer *, |
| 35447 | doublereal *); |
| 35448 | extern logical lsame_(char *, char *); |
| 35449 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 35450 | static logical notran; |
| 35451 | |
| 35452 | |
| 35453 | /* |
| 35454 | -- LAPACK routine (version 3.2) -- |
| 35455 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 35456 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 35457 | November 2006 |
| 35458 | |
| 35459 | |
| 35460 | Purpose |
| 35461 | ======= |
| 35462 | |
| 35463 | DORML2 overwrites the general real m by n matrix C with |
| 35464 | |
| 35465 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 35466 | |
| 35467 | Q'* C if SIDE = 'L' and TRANS = 'T', or |
| 35468 | |
| 35469 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 35470 | |
| 35471 | C * Q' if SIDE = 'R' and TRANS = 'T', |
| 35472 | |
| 35473 | where Q is a real orthogonal matrix defined as the product of k |
| 35474 | elementary reflectors |
| 35475 | |
| 35476 | Q = H(k) . . . H(2) H(1) |
| 35477 | |
| 35478 | as returned by DGELQF. Q is of order m if SIDE = 'L' and of order n |
| 35479 | if SIDE = 'R'. |
| 35480 | |
| 35481 | Arguments |
| 35482 | ========= |
| 35483 | |
| 35484 | SIDE (input) CHARACTER*1 |
| 35485 | = 'L': apply Q or Q' from the Left |
| 35486 | = 'R': apply Q or Q' from the Right |
| 35487 | |
| 35488 | TRANS (input) CHARACTER*1 |
| 35489 | = 'N': apply Q (No transpose) |
| 35490 | = 'T': apply Q' (Transpose) |
| 35491 |