| 42 |  |  | 
| 43 |  |  | 
| 44 |  | SVD (const DynamicRectMatrix<Real> &Arg) { | 
| 45 | – |  | 
| 45 |  | m = Arg.getNRow(); | 
| 46 |  | n = Arg.getNCol(); | 
| 47 |  | int nu = min(m,n); | 
| 51 |  | DynamicVector<Real> e(n); | 
| 52 |  | DynamicVector<Real> work(m); | 
| 53 |  | DynamicRectMatrix<Real> A(Arg); | 
| 54 | < | int wantu = 1;                                    /* boolean */ | 
| 55 | < | int wantv = 1;                                    /* boolean */ | 
| 54 | > |  | 
| 55 | > | int wantu = 1;    /* boolean */ | 
| 56 | > | int wantv = 1;    /* boolean */ | 
| 57 |  | int i=0, j=0, k=0; | 
| 58 |  |  | 
| 59 |  | // Reduce A to bidiagonal form, storing the diagonal elements | 
| 61 |  |  | 
| 62 |  | int nct = min(m-1,n); | 
| 63 |  | int nrt = max(0,min(n-2,m)); | 
| 64 | + |  | 
| 65 |  | for (k = 0; k < max(nct,nrt); k++) { | 
| 66 |  | if (k < nct) { | 
| 67 |  |  |