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 fprintf ('m %d n %d nnz %d\n', m, n, nnz(A)) ; 20 if (m < n) 21 continue ; 22 end 23 if (m == 0 | n == 0) %#ok 24 continue ; 25 end 26 % save A A 27 fprintf ('[ ') ; 28 [V,Beta,p,R] = cs_qr (A) ; 29 % [Q,R] = svd (full(A)) ; 30 fprintf (']\n') ; 31 32 s1 = svd (full (A)) ; 33 s2 = svd (full (R)) ; 34 s2 = s2 (1:length(s1)) ; 35 err = norm (s1-s2) ; 36 if (length (s1) > 1) 37 err = err / s1 (1) ; 38 end 39 fprintf ('err %g\n', err) ; 40 if (err > 1e-12) 41 error ('!') ; 42 end 43end 44