2
% test9: test metis, etree, bisect, nesdis
2
%TEST9 test metis, etree, bisect, nesdis
5
% See also cholmod_test
7
% Copyright 2006-2007, Timothy A. Davis, University of Florida
3
9
fprintf ('=================================================================\n');
4
10
fprintf ('test9: test metis, etree, bisect, nesdis\n') ;
6
12
% Prob = UFget ('LPnetlib/lp_qap15') ;
7
Prob = UFget ('HB/bcsstk15')
13
Prob = UFget ('HB/bcsstk15') %#ok
12
18
fprintf ('\nmetis:\n') ;
13
tic ; p0 = metis (R) ; toc
19
tic ; p0 = metis (R) ; toc %#ok
14
20
% [pa po] = etree2 (R (p0,p0)) ; sparse (po - (1:size(R,1)))
16
tic ; p1 = metis (C) ; toc
17
% [pa po] = etree2 (C (p1,p1)) ; sparse (po - (1:size(C,1)))
19
tic ; p2 = metis (C, 'sym') ; toc
20
% [pa po] = etree2 (C (p1,p1)) ; sparse (po - (1:size(C,1)))
22
tic ; p3 = metis (A, 'row') ; toc
22
tic ; p1 = metis (C) ; toc %#ok
23
% [pa po] = etree2 (C (p1,p1)) ; sparse (po - (1:size(C,1)))
25
tic ; p2 = metis (C, 'sym') ; toc %#ok
26
% [pa po] = etree2 (C (p1,p1)) ; sparse (po - (1:size(C,1)))
28
tic ; p3 = metis (A, 'row') ; toc %#ok
23
29
% [pa po] = etree2 (A (p1,:), 'row') ; sparse (po - (1:size(A,1)))
25
tic ; p4 = metis (A, 'col') ; toc
31
tic ; p4 = metis (A, 'col') ; toc %#ok
26
32
% [pa po] = etree2 (A (:,p1), 'col') ; sparse (po - (1:size(A,2)))
28
34
fprintf ('\nmetis(A):\n') ;
30
if (m == n && nnz (A-A') == 0)
31
tic ; p5 = metis (A) ; toc
34
[ignore q] = etree (A(p5,p5)) ;
37
% spy (A (p5post,p5post)) ;
38
lnz0 = sum (symbfact (A (p5,p5)))
38
tic ; p5 = metis (A) ; toc
41
[ignore q] = etree (A(p5,p5)) ;
42
p5post = p5 (q) ; %#ok
44
% spy (A (p5post,p5post)) ;
45
lnz0 = sum (symbfact (A (p5,p5))) %#ok
41
49
fprintf ('\namd:\n') ;
42
if (m == n && nnz (A-A') == 0)
43
tic ; z0 = amd (A) ; toc
44
lnz = sum (symbfact (A (z0,z0)))
52
tic ; z0 = amd (A) ; toc %#ok
53
lnz = sum (symbfact (A (z0,z0))) %#ok
47
57
fprintf ('\nbisect:\n') ;
48
tic ; s0 = bisect (R) ; toc
49
tic ; s1 = bisect (C) ; toc
50
tic ; s2 = bisect (C, 'sym') ; toc
51
tic ; s3 = bisect (A, 'row') ; toc
52
tic ; s4 = bisect (A, 'col') ; toc
58
tic ; s0 = bisect (R) ; toc %#ok
59
tic ; s1 = bisect (C) ; toc %#ok
60
tic ; s2 = bisect (C, 'sym') ; toc %#ok
61
tic ; s3 = bisect (A, 'row') ; toc %#ok
62
tic ; s4 = bisect (A, 'col') ; toc %#ok
55
65
fprintf ('\nnested dissection:\n') ;
56
tic ; [c0 cp0 cmem0] = nesdis (R) ; toc
57
tic ; [c1 cp1 cmem1] = nesdis (C) ; toc
58
tic ; [c2 cp2 cmem2] = nesdis (C, 'sym') ; toc
59
tic ; [c3 cp3 cmem3] = nesdis (A, 'row') ; toc
60
tic ; [c4 cp4 cmem4] = nesdis (A, 'col') ; toc
66
tic ; [c0 cp0 cmem0] = nesdis (R) ; toc %#ok
67
tic ; [c1 cp1 cmem1] = nesdis (C) ; toc %#ok
68
tic ; [c2 cp2 cmem2] = nesdis (C, 'sym') ; toc %#ok
69
tic ; [c3 cp3 cmem3] = nesdis (A, 'row') ; toc %#ok
70
tic ; [c4 cp4 cmem4] = nesdis (A, 'col') ; toc %#ok
62
72
fprintf ('\nnested_dissection(A):\n') ;
63
if (m == n && nnz (A-A') == 0)
64
tic ; c5 = nesdis (A) ; toc
65
lnz1 = sum (symbfact (A (c5,c5)))
75
tic ; c5 = nesdis (A) ; toc %#ok
76
lnz1 = sum (symbfact (A (c5,c5))) %#ok
68
80
fprintf ('test9 passed\n') ;