Subroutine */
| 24101 | } /* dlascl_ */ |
| 24102 | |
| 24103 | /* Subroutine */ int dlasd0_(integer *n, integer *sqre, doublereal *d__, |
| 24104 | doublereal *e, doublereal *u, integer *ldu, doublereal *vt, integer * |
| 24105 | ldvt, integer *smlsiz, integer *iwork, doublereal *work, integer * |
| 24106 | info) |
| 24107 | { |
| 24108 | /* System generated locals */ |
| 24109 | integer u_dim1, u_offset, vt_dim1, vt_offset, i__1, i__2; |
| 24110 | |
| 24111 | /* Local variables */ |
| 24112 | static integer i__, j, m, i1, ic, lf, nd, ll, nl, nr, im1, ncc, nlf, nrf, |
| 24113 | iwk, lvl, ndb1, nlp1, nrp1; |
| 24114 | static doublereal beta; |
| 24115 | static integer idxq, nlvl; |
| 24116 | static doublereal alpha; |
| 24117 | static integer inode, ndiml, idxqc, ndimr, itemp, sqrei; |
| 24118 | extern /* Subroutine */ int dlasd1_(integer *, integer *, integer *, |
| 24119 | doublereal *, doublereal *, doublereal *, doublereal *, integer *, |
| 24120 | doublereal *, integer *, integer *, integer *, doublereal *, |
| 24121 | integer *), dlasdq_(char *, integer *, integer *, integer *, |
| 24122 | integer *, integer *, doublereal *, doublereal *, doublereal *, |
| 24123 | integer *, doublereal *, integer *, doublereal *, integer *, |
| 24124 | doublereal *, integer *), dlasdt_(integer *, integer *, |
| 24125 | integer *, integer *, integer *, integer *, integer *), xerbla_( |
| 24126 | char *, integer *); |
| 24127 | |
| 24128 | |
| 24129 | /* |
| 24130 | -- LAPACK auxiliary routine (version 3.2.2) -- |
| 24131 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 24132 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 24133 | June 2010 |
| 24134 | |
| 24135 | |
| 24136 | Purpose |
| 24137 | ======= |
| 24138 | |
| 24139 | Using a divide and conquer approach, DLASD0 computes the singular |
| 24140 | value decomposition (SVD) of a real upper bidiagonal N-by-M |
| 24141 | matrix B with diagonal D and offdiagonal E, where M = N + SQRE. |
| 24142 | The algorithm computes orthogonal matrices U and VT such that |
| 24143 | B = U * S * VT. The singular values S are overwritten on D. |
| 24144 | |
| 24145 | A related subroutine, DLASDA, computes only the singular values, |
| 24146 | and optionally, the singular vectors in compact form. |
| 24147 | |
| 24148 | Arguments |
| 24149 | ========= |
| 24150 | |
| 24151 | N (input) INTEGER |
| 24152 | On entry, the row dimension of the upper bidiagonal matrix. |
| 24153 | This is also the dimension of the main diagonal array D. |
| 24154 | |
| 24155 | SQRE (input) INTEGER |
| 24156 | Specifies the column dimension of the bidiagonal matrix. |
| 24157 | = 0: The bidiagonal matrix has column dimension M = N; |
| 24158 | = 1: The bidiagonal matrix has column dimension M = N+1; |
| 24159 | |
| 24160 | D (input/output) DOUBLE PRECISION array, dimension (N) |