Subroutine */
| 27568 | } /* slasd7_ */ |
| 27569 | |
| 27570 | /* Subroutine */ int slasd8_(integer *icompq, integer *k, real *d__, real * |
| 27571 | z__, real *vf, real *vl, real *difl, real *difr, integer *lddifr, |
| 27572 | real *dsigma, real *work, integer *info) |
| 27573 | { |
| 27574 | /* System generated locals */ |
| 27575 | integer difr_dim1, difr_offset, i__1, i__2; |
| 27576 | real r__1, r__2; |
| 27577 | |
| 27578 | /* Local variables */ |
| 27579 | static integer i__, j; |
| 27580 | static real dj, rho; |
| 27581 | static integer iwk1, iwk2, iwk3; |
| 27582 | static real temp; |
| 27583 | extern doublereal sdot_(integer *, real *, integer *, real *, integer *); |
| 27584 | static integer iwk2i, iwk3i; |
| 27585 | extern doublereal snrm2_(integer *, real *, integer *); |
| 27586 | static real diflj, difrj, dsigj; |
| 27587 | extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, |
| 27588 | integer *); |
| 27589 | extern doublereal slamc3_(real *, real *); |
| 27590 | extern /* Subroutine */ int slasd4_(integer *, integer *, real *, real *, |
| 27591 | real *, real *, real *, real *, integer *), xerbla_(char *, |
| 27592 | integer *); |
| 27593 | static real dsigjp; |
| 27594 | extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, |
| 27595 | real *, integer *, integer *, real *, integer *, integer *), slaset_(char *, integer *, integer *, real *, real *, |
| 27596 | real *, integer *); |
| 27597 | |
| 27598 | |
| 27599 | /* |
| 27600 | -- LAPACK auxiliary routine (version 3.2.2) -- |
| 27601 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 27602 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 27603 | June 2010 |
| 27604 | |
| 27605 | |
| 27606 | Purpose |
| 27607 | ======= |
| 27608 | |
| 27609 | SLASD8 finds the square roots of the roots of the secular equation, |
| 27610 | as defined by the values in DSIGMA and Z. It makes the appropriate |
| 27611 | calls to SLASD4, and stores, for each element in D, the distance |
| 27612 | to its two nearest poles (elements in DSIGMA). It also updates |
| 27613 | the arrays VF and VL, the first and last components of all the |
| 27614 | right singular vectors of the original bidiagonal matrix. |
| 27615 | |
| 27616 | SLASD8 is called from SLASD6. |
| 27617 | |
| 27618 | Arguments |
| 27619 | ========= |
| 27620 | |
| 27621 | ICOMPQ (input) INTEGER |
| 27622 | Specifies whether singular vectors are to be computed in |
| 27623 | factored form in the calling routine: |
| 27624 | = 0: Compute singular values only. |
| 27625 | = 1: Compute singular vectors in factored form as well. |
| 27626 | |
| 27627 | K (input) INTEGER |