Subroutine */
| 35297 | } /* sormhr_ */ |
| 35298 | |
| 35299 | /* Subroutine */ int sorml2_(char *side, char *trans, integer *m, integer *n, |
| 35300 | integer *k, real *a, integer *lda, real *tau, real *c__, integer *ldc, |
| 35301 | real *work, integer *info) |
| 35302 | { |
| 35303 | /* System generated locals */ |
| 35304 | integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2; |
| 35305 | |
| 35306 | /* Local variables */ |
| 35307 | static integer i__, i1, i2, i3, ic, jc, mi, ni, nq; |
| 35308 | static real aii; |
| 35309 | static logical left; |
| 35310 | extern logical lsame_(char *, char *); |
| 35311 | extern /* Subroutine */ int slarf_(char *, integer *, integer *, real *, |
| 35312 | integer *, real *, real *, integer *, real *), xerbla_( |
| 35313 | char *, integer *); |
| 35314 | static logical notran; |
| 35315 | |
| 35316 | |
| 35317 | /* |
| 35318 | -- LAPACK routine (version 3.2) -- |
| 35319 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 35320 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 35321 | November 2006 |
| 35322 | |
| 35323 | |
| 35324 | Purpose |
| 35325 | ======= |
| 35326 | |
| 35327 | SORML2 overwrites the general real m by n matrix C with |
| 35328 | |
| 35329 | Q * C if SIDE = 'L' and TRANS = 'N', or |
| 35330 | |
| 35331 | Q'* C if SIDE = 'L' and TRANS = 'T', or |
| 35332 | |
| 35333 | C * Q if SIDE = 'R' and TRANS = 'N', or |
| 35334 | |
| 35335 | C * Q' if SIDE = 'R' and TRANS = 'T', |
| 35336 | |
| 35337 | where Q is a real orthogonal matrix defined as the product of k |
| 35338 | elementary reflectors |
| 35339 | |
| 35340 | Q = H(k) . . . H(2) H(1) |
| 35341 | |
| 35342 | as returned by SGELQF. Q is of order m if SIDE = 'L' and of order n |
| 35343 | if SIDE = 'R'. |
| 35344 | |
| 35345 | Arguments |
| 35346 | ========= |
| 35347 | |
| 35348 | SIDE (input) CHARACTER*1 |
| 35349 | = 'L': apply Q or Q' from the Left |
| 35350 | = 'R': apply Q or Q' from the Right |
| 35351 | |
| 35352 | TRANS (input) CHARACTER*1 |
| 35353 | = 'N': apply Q (No transpose) |
| 35354 | = 'T': apply Q' (Transpose) |
| 35355 | |
| 35356 | M (input) INTEGER |