1function test12 2%TEST12 test cs_qr and compare with svd 3% 4% Example: 5% test12 6% See also: testall 7 8% Copyright 2006-2012, Timothy A. Davis, http://www.suitesparse.com 9 10fprintf ('test 12\n') ; 11rand ('state',0) ; 12% A = rand (3,4) 13 14for trial = 1:100 15 m = fix (100 * rand (1)) ; 16 n = fix (100 * rand (1)) ; 17 d = .1 * rand (1) ; 18 A = sprandn (m,n,d) ; 19 if (m < n) 20 continue ; 21 end 22 if (m == 0 | n == 0) %#ok 23 continue ; 24 end 25 26 for cmplex = 0:double(~ispc) 27 if (cmplex) 28 A = A + 1i * sprand (A) ; 29 end 30 31 fprintf ('m %d n %d nnz %d\n', m, n, nnz(A)) ; 32 [V,Beta,p,R] = cs_qr (A) ; 33 34 s1 = svd (full (A)) ; 35 s2 = svd (full (R)) ; 36 s2 = s2 (1:length(s1)) ; 37 err = norm (s1-s2) ; 38 if (length (s1) > 1) 39 err = err / s1 (1) ; 40 end 41 fprintf ('err %g\n', err) ; 42 if (err > 1e-12) 43 error ('!') ; 44 end 45 end 46end 47