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