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