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