Subroutine */
| 27168 | } /* dlasd6_ */ |
| 27169 | |
| 27170 | /* Subroutine */ int dlasd7_(integer *icompq, integer *nl, integer *nr, |
| 27171 | integer *sqre, integer *k, doublereal *d__, doublereal *z__, |
| 27172 | doublereal *zw, doublereal *vf, doublereal *vfw, doublereal *vl, |
| 27173 | doublereal *vlw, doublereal *alpha, doublereal *beta, doublereal * |
| 27174 | dsigma, integer *idx, integer *idxp, integer *idxq, integer *perm, |
| 27175 | integer *givptr, integer *givcol, integer *ldgcol, doublereal *givnum, |
| 27176 | integer *ldgnum, doublereal *c__, doublereal *s, integer *info) |
| 27177 | { |
| 27178 | /* System generated locals */ |
| 27179 | integer givcol_dim1, givcol_offset, givnum_dim1, givnum_offset, i__1; |
| 27180 | doublereal d__1, d__2; |
| 27181 | |
| 27182 | /* Local variables */ |
| 27183 | static integer i__, j, m, n, k2; |
| 27184 | static doublereal z1; |
| 27185 | static integer jp; |
| 27186 | static doublereal eps, tau, tol; |
| 27187 | static integer nlp1, nlp2, idxi, idxj; |
| 27188 | extern /* Subroutine */ int drot_(integer *, doublereal *, integer *, |
| 27189 | doublereal *, integer *, doublereal *, doublereal *); |
| 27190 | static integer idxjp; |
| 27191 | extern /* Subroutine */ int dcopy_(integer *, doublereal *, integer *, |
| 27192 | doublereal *, integer *); |
| 27193 | static integer jprev; |
| 27194 | |
| 27195 | extern /* Subroutine */ int dlamrg_(integer *, integer *, doublereal *, |
| 27196 | integer *, integer *, integer *), xerbla_(char *, integer *); |
| 27197 | static doublereal hlftol; |
| 27198 | |
| 27199 | |
| 27200 | /* |
| 27201 | -- LAPACK auxiliary routine (version 3.2) -- |
| 27202 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 27203 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 27204 | November 2006 |
| 27205 | |
| 27206 | |
| 27207 | Purpose |
| 27208 | ======= |
| 27209 | |
| 27210 | DLASD7 merges the two sets of singular values together into a single |
| 27211 | sorted set. Then it tries to deflate the size of the problem. There |
| 27212 | are two ways in which deflation can occur: when two or more singular |
| 27213 | values are close together or if there is a tiny entry in the Z |
| 27214 | vector. For each such occurrence the order of the related |
| 27215 | secular equation problem is reduced by one. |
| 27216 | |
| 27217 | DLASD7 is called from DLASD6. |
| 27218 | |
| 27219 | Arguments |
| 27220 | ========= |
| 27221 | |
| 27222 | ICOMPQ (input) INTEGER |
| 27223 | Specifies whether singular vectors are to be computed |
| 27224 | in compact form, as follows: |
| 27225 | = 0: Compute singular values only. |
| 27226 | = 1: Compute singular vectors of upper |
| 27227 | bidiagonal matrix in compact form. |