Subroutine */
| 11540 | } /* zlahr2_ */ |
| 11541 | |
| 11542 | /* Subroutine */ int zlals0_(integer *icompq, integer *nl, integer *nr, |
| 11543 | integer *sqre, integer *nrhs, doublecomplex *b, integer *ldb, |
| 11544 | doublecomplex *bx, integer *ldbx, integer *perm, integer *givptr, |
| 11545 | integer *givcol, integer *ldgcol, doublereal *givnum, integer *ldgnum, |
| 11546 | doublereal *poles, doublereal *difl, doublereal *difr, doublereal * |
| 11547 | z__, integer *k, doublereal *c__, doublereal *s, doublereal *rwork, |
| 11548 | integer *info) |
| 11549 | { |
| 11550 | /* System generated locals */ |
| 11551 | integer givcol_dim1, givcol_offset, difr_dim1, difr_offset, givnum_dim1, |
| 11552 | givnum_offset, poles_dim1, poles_offset, b_dim1, b_offset, |
| 11553 | bx_dim1, bx_offset, i__1, i__2, i__3, i__4, i__5; |
| 11554 | doublereal d__1; |
| 11555 | doublecomplex z__1; |
| 11556 | |
| 11557 | /* Local variables */ |
| 11558 | static integer i__, j, m, n; |
| 11559 | static doublereal dj; |
| 11560 | static integer nlp1, jcol; |
| 11561 | static doublereal temp; |
| 11562 | static integer jrow; |
| 11563 | extern doublereal dnrm2_(integer *, doublereal *, integer *); |
| 11564 | static doublereal diflj, difrj, dsigj; |
| 11565 | extern /* Subroutine */ int dgemv_(char *, integer *, integer *, |
| 11566 | doublereal *, doublereal *, integer *, doublereal *, integer *, |
| 11567 | doublereal *, doublereal *, integer *), zdrot_(integer *, |
| 11568 | doublecomplex *, integer *, doublecomplex *, integer *, |
| 11569 | doublereal *, doublereal *); |
| 11570 | extern doublereal dlamc3_(doublereal *, doublereal *); |
| 11571 | extern /* Subroutine */ int zcopy_(integer *, doublecomplex *, integer *, |
| 11572 | doublecomplex *, integer *), xerbla_(char *, integer *); |
| 11573 | static doublereal dsigjp; |
| 11574 | extern /* Subroutine */ int zdscal_(integer *, doublereal *, |
| 11575 | doublecomplex *, integer *), zlascl_(char *, integer *, integer *, |
| 11576 | doublereal *, doublereal *, integer *, integer *, doublecomplex * |
| 11577 | , integer *, integer *), zlacpy_(char *, integer *, |
| 11578 | integer *, doublecomplex *, integer *, doublecomplex *, integer *); |
| 11579 | |
| 11580 | |
| 11581 | /* |
| 11582 | -- LAPACK routine (version 3.2) -- |
| 11583 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 11584 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 11585 | November 2006 |
| 11586 | |
| 11587 | |
| 11588 | Purpose |
| 11589 | ======= |
| 11590 | |
| 11591 | ZLALS0 applies back the multiplying factors of either the left or the |
| 11592 | right singular vector matrix of a diagonal matrix appended by a row |
| 11593 | to the right hand side matrix B in solving the least squares problem |
| 11594 | using the divide-and-conquer SVD approach. |
| 11595 | |
| 11596 | For the left singular vector matrix, three types of orthogonal |
| 11597 | matrices are involved: |
| 11598 | |
| 11599 | (1L) Givens rotations: the number of such rotations is GIVPTR; the |