Subroutine */
| 35805 | } /* sormlq_ */ |
| 35806 | |
| 35807 | /* Subroutine */ int sormql_(char *side, char *trans, integer *m, integer *n, |
| 35808 | integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, |
| 35809 | real *work, integer *lwork, integer *info) |
| 35810 | { |
| 35811 | /* System generated locals */ |
| 35812 | address a__1[2]; |
| 35813 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3[2], i__4, |
| 35814 | i__5; |
| 35815 | char ch__1[2]; |
| 35816 | |
| 35817 | /* Local variables */ |
| 35818 | static integer i__; |
| 35819 | static real t[4160] /* was [65][64] */; |
| 35820 | static integer i1, i2, i3, ib, nb, mi, ni, nq, nw, iws; |
| 35821 | static logical left; |
| 35822 | extern logical lsame_(char *, char *); |
| 35823 | static integer nbmin, iinfo; |
| 35824 | extern /* Subroutine */ int sorm2l_(char *, char *, integer *, integer *, |
| 35825 | integer *, real *, integer *, real *, real *, integer *, real *, |
| 35826 | integer *), slarfb_(char *, char *, char *, char * |
| 35827 | , integer *, integer *, integer *, real *, integer *, real *, |
| 35828 | integer *, real *, integer *, real *, integer *), xerbla_(char *, integer *); |
| 35829 | extern integer ilaenv_(integer *, char *, char *, integer *, integer *, |
| 35830 | integer *, integer *, ftnlen, ftnlen); |
| 35831 | extern /* Subroutine */ int slarft_(char *, char *, integer *, integer *, |
| 35832 | real *, integer *, real *, real *, integer *); |
| 35833 | static logical notran; |
| 35834 | static integer ldwork, lwkopt; |
| 35835 | static logical lquery; |
| 35836 | |
| 35837 | |
| 35838 | /* |
| 35839 | -- LAPACK routine (version 3.2) -- |
| 35840 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 35841 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 35842 | November 2006 |
| 35843 | |
| 35844 | |
| 35845 | Purpose |
| 35846 | ======= |
| 35847 | |
| 35848 | SORMQL overwrites the general real M-by-N matrix C with |
| 35849 | |
| 35850 | SIDE = 'L' SIDE = 'R' |
| 35851 | TRANS = 'N': Q * C C * Q |
| 35852 | TRANS = 'T': Q**T * C C * Q**T |
| 35853 | |
| 35854 | where Q is a real orthogonal matrix defined as the product of k |
| 35855 | elementary reflectors |
| 35856 | |
| 35857 | Q = H(k) . . . H(2) H(1) |
| 35858 | |
| 35859 | as returned by SGEQLF. Q is of order M if SIDE = 'L' and of order N |
| 35860 | if SIDE = 'R'. |
| 35861 | |
| 35862 | Arguments |
| 35863 | ========= |
| 35864 |