2
%TEST19 test cs_dmperm, cs_maxtransr, cs_dmspy, cs_scc, cspy
8
% Copyright 2006-2007, Timothy A. Davis.
9
% http://www.cise.ufl.edu/research/sparse
21
m = fix (100 * rand (1)) ;
22
n = fix (100 * rand (1)) ;
23
% d = 0.1 * rand (1) ;
24
d = rand (1) * 4 * max (m,n) / max (m*n,1) ;
26
S = sprandn (m,m,d) + speye (m) ;
29
A = A + 1i * sprand (A) ;
33
S = S + 1i * sprand (S) ;
41
sprnk = sum (pp > 0) ;
44
spr2 = sum (pp2 > 0) ;
49
pp2 = cs_maxtransr (A) ;
50
spr2 = sum (pp2 > 0) ;
55
[p,q,r,s] = dmperm (A) ;
62
fprintf ('sprnk: %d m %d n %d nb: %d\n', sprnk, m, n, nk) ;
74
plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
77
[p2,q2,rr2,ss2,cp,rp] = cs_dmperm (A) ;
80
if (length (rr2) ~= length (r))
81
error ('# fine blocks!') ;
85
if (rp (4) - 1 ~= sprnk)
91
if (any (sort (p2) ~= 1:m))
95
if (any (sort (q2) ~= 1:n))
109
subplot (2,3,3) ; cs_dmspy (A,0) ;
119
% plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
125
% plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
127
B = C (r1:r2-1, c1:c2-1) ;
128
if (nnz (diag (B)) ~= size (B,1))
136
% plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'r') ;
138
B = C (r1:r2-1, c1:c2-1) ;
139
if (nnz (diag (B)) ~= size (B,1))
147
% plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
149
B = C (r1:r2-1, c1:c2-1) ;
150
if (nnz (diag (B)) ~= size (B,1))
158
% plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
162
[p1,q1,r0,s0] = dmperm (S) ;
163
[p3,r3] = cs_scc (S) ;
164
if (length (r3) ~= length (r0))
165
error ('scc size!') ;
168
if (any (sort (p3) ~= 1:m))
169
error ('scc perm!') ;
183
plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
195
plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;