Subroutine */
| 15448 | } /* dlals0_ */ |
| 15449 | |
| 15450 | /* Subroutine */ int dlalsa_(integer *icompq, integer *smlsiz, integer *n, |
| 15451 | integer *nrhs, doublereal *b, integer *ldb, doublereal *bx, integer * |
| 15452 | ldbx, doublereal *u, integer *ldu, doublereal *vt, integer *k, |
| 15453 | doublereal *difl, doublereal *difr, doublereal *z__, doublereal * |
| 15454 | poles, integer *givptr, integer *givcol, integer *ldgcol, integer * |
| 15455 | perm, doublereal *givnum, doublereal *c__, doublereal *s, doublereal * |
| 15456 | work, integer *iwork, integer *info) |
| 15457 | { |
| 15458 | /* System generated locals */ |
| 15459 | integer givcol_dim1, givcol_offset, perm_dim1, perm_offset, b_dim1, |
| 15460 | b_offset, bx_dim1, bx_offset, difl_dim1, difl_offset, difr_dim1, |
| 15461 | difr_offset, givnum_dim1, givnum_offset, poles_dim1, poles_offset, |
| 15462 | u_dim1, u_offset, vt_dim1, vt_offset, z_dim1, z_offset, i__1, |
| 15463 | i__2; |
| 15464 | |
| 15465 | /* Local variables */ |
| 15466 | static integer i__, j, i1, ic, lf, nd, ll, nl, nr, im1, nlf, nrf, lvl, |
| 15467 | ndb1, nlp1, lvl2, nrp1, nlvl, sqre; |
| 15468 | extern /* Subroutine */ int dgemm_(char *, char *, integer *, integer *, |
| 15469 | integer *, doublereal *, doublereal *, integer *, doublereal *, |
| 15470 | integer *, doublereal *, doublereal *, integer *); |
| 15471 | static integer inode, ndiml, ndimr; |
| 15472 | extern /* Subroutine */ int dcopy_(integer *, doublereal *, integer *, |
| 15473 | doublereal *, integer *), dlals0_(integer *, integer *, integer *, |
| 15474 | integer *, integer *, doublereal *, integer *, doublereal *, |
| 15475 | integer *, integer *, integer *, integer *, integer *, doublereal |
| 15476 | *, integer *, doublereal *, doublereal *, doublereal *, |
| 15477 | doublereal *, integer *, doublereal *, doublereal *, doublereal *, |
| 15478 | integer *), dlasdt_(integer *, integer *, integer *, integer *, |
| 15479 | integer *, integer *, integer *), xerbla_(char *, integer *); |
| 15480 | |
| 15481 | |
| 15482 | /* |
| 15483 | -- LAPACK routine (version 3.2) -- |
| 15484 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 15485 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 15486 | November 2006 |
| 15487 | |
| 15488 | |
| 15489 | Purpose |
| 15490 | ======= |
| 15491 | |
| 15492 | DLALSA is an itermediate step in solving the least squares problem |
| 15493 | by computing the SVD of the coefficient matrix in compact form (The |
| 15494 | singular vectors are computed as products of simple orthorgonal |
| 15495 | matrices.). |
| 15496 | |
| 15497 | If ICOMPQ = 0, DLALSA applies the inverse of the left singular vector |
| 15498 | matrix of an upper bidiagonal matrix to the right hand side; and if |
| 15499 | ICOMPQ = 1, DLALSA applies the right singular vector matrix to the |
| 15500 | right hand side. The singular vector matrices were generated in |
| 15501 | compact form by DLALSA. |
| 15502 | |
| 15503 | Arguments |
| 15504 | ========= |
| 15505 | |
| 15506 | |
| 15507 | ICOMPQ (input) INTEGER |