Mercurial > jwe > octave
comparison scripts/sparse/svds.m @ 21116:ba3c66f4e1ca stable
svds.m: Modify BIST test for sigma=0 to reliably pass.
* svds.m: Only compare whatever was returned from svds to the correct values.
This may be fewer values then requested.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 20 Jan 2016 06:56:52 -0800 |
parents | df437a52bcaf |
children | c1df36373272 e169fe73b57e |
comparison
equal
deleted
inserted
replaced
21107:2d5d8887aa4d | 21116:ba3c66f4e1ca |
---|---|
275 %! | 275 %! |
276 %!testif HAVE_ARPACK, HAVE_UMFPACK | 276 %!testif HAVE_ARPACK, HAVE_UMFPACK |
277 %! [u2,s2,v2,flag] = svds (A,k,0,opts); | 277 %! [u2,s2,v2,flag] = svds (A,k,0,opts); |
278 %! s2 = diag (s2); | 278 %! s2 = diag (s2); |
279 %! assert (flag, !1); | 279 %! assert (flag, !1); |
280 %! tol = 10 * eps() * norm(s2, 1); | 280 %! tol = 100 * eps() * norm(s2, 1); |
281 %! assert (s2, s(k:-1:1), tol); | 281 %! assert (s2, s(length(s2):-1:1), tol); |
282 %! | 282 %! |
283 %!testif HAVE_ARPACK, HAVE_UMFPACK | 283 %!testif HAVE_ARPACK, HAVE_UMFPACK |
284 %! idx = floor (n/2); | 284 %! idx = floor (n/2); |
285 %! % Don't put sigma right on a singular value or there are convergence issues | 285 %! % Don't put sigma right on a singular value or there are convergence issues |
286 %! sigma = 0.99*s(idx) + 0.01*s(idx+1); | 286 %! sigma = 0.99*s(idx) + 0.01*s(idx+1); |