Subroutine */
| 24541 | } /* slasd1_ */ |
| 24542 | |
| 24543 | /* Subroutine */ int slasd2_(integer *nl, integer *nr, integer *sqre, integer |
| 24544 | *k, real *d__, real *z__, real *alpha, real *beta, real *u, integer * |
| 24545 | ldu, real *vt, integer *ldvt, real *dsigma, real *u2, integer *ldu2, |
| 24546 | real *vt2, integer *ldvt2, integer *idxp, integer *idx, integer *idxc, |
| 24547 | integer *idxq, integer *coltyp, integer *info) |
| 24548 | { |
| 24549 | /* System generated locals */ |
| 24550 | integer u_dim1, u_offset, u2_dim1, u2_offset, vt_dim1, vt_offset, |
| 24551 | vt2_dim1, vt2_offset, i__1; |
| 24552 | real r__1, r__2; |
| 24553 | |
| 24554 | /* Local variables */ |
| 24555 | static real c__; |
| 24556 | static integer i__, j, m, n; |
| 24557 | static real s; |
| 24558 | static integer k2; |
| 24559 | static real z1; |
| 24560 | static integer ct, jp; |
| 24561 | static real eps, tau, tol; |
| 24562 | static integer psm[4], nlp1, nlp2, idxi, idxj, ctot[4]; |
| 24563 | extern /* Subroutine */ int srot_(integer *, real *, integer *, real *, |
| 24564 | integer *, real *, real *); |
| 24565 | static integer idxjp, jprev; |
| 24566 | extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, |
| 24567 | integer *); |
| 24568 | extern doublereal slapy2_(real *, real *), slamch_(char *); |
| 24569 | extern /* Subroutine */ int xerbla_(char *, integer *), slamrg_( |
| 24570 | integer *, integer *, real *, integer *, integer *, integer *); |
| 24571 | static real hlftol; |
| 24572 | extern /* Subroutine */ int slacpy_(char *, integer *, integer *, real *, |
| 24573 | integer *, real *, integer *), slaset_(char *, integer *, |
| 24574 | integer *, real *, real *, real *, integer *); |
| 24575 | |
| 24576 | |
| 24577 | /* |
| 24578 | -- LAPACK auxiliary routine (version 3.2) -- |
| 24579 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 24580 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 24581 | November 2006 |
| 24582 | |
| 24583 | |
| 24584 | Purpose |
| 24585 | ======= |
| 24586 | |
| 24587 | SLASD2 merges the two sets of singular values together into a single |
| 24588 | sorted set. Then it tries to deflate the size of the problem. |
| 24589 | There are two ways in which deflation can occur: when two or more |
| 24590 | singular values are close together or if there is a tiny entry in the |
| 24591 | Z vector. For each such occurrence the order of the related secular |
| 24592 | equation problem is reduced by one. |
| 24593 | |
| 24594 | SLASD2 is called from SLASD1. |
| 24595 | |
| 24596 | Arguments |
| 24597 | ========= |
| 24598 | |
| 24599 | NL (input) INTEGER |
| 24600 | The row dimension of the upper block. NL >= 1. |