~logan/ubuntu/trusty/suitesparse/4.2.1-3ubuntu1

« back to all changes in this revision

Viewing changes to CHOLMOD/MATLAB/Test/test9.m

  • Committer: Bazaar Package Importer
  • Author(s): Christophe Prud'homme
  • Date: 2007-05-29 09:36:29 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20070529093629-zowquo0b7slkk6nc
Tags: 3.0.0-2
* suitesparse builds properly twice in a row
* Bug fix: "suitesparse - FTBFS: Broken build depens: libgfortran1-dev",
  thanks to Bastian Blank (Closes: #426349).
* Bug fix: "suitesparse_3.0.0-1: FTBFS: build-depends on
  libgfortran1-dev", thanks to Steve Langasek (Closes: #426354).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
function test9
2
 
% test9: test metis, etree, bisect, nesdis
 
2
%TEST9 test metis, etree, bisect, nesdis
 
3
% Example:
 
4
%   test9
 
5
% See also cholmod_test
 
6
 
 
7
% Copyright 2006-2007, Timothy A. Davis, University of Florida
 
8
 
3
9
fprintf ('=================================================================\n');
4
10
fprintf ('test9: test metis, etree, bisect, nesdis\n') ;
5
11
 
6
12
% Prob = UFget ('LPnetlib/lp_qap15') ;
7
 
Prob = UFget ('HB/bcsstk15')
 
13
Prob = UFget ('HB/bcsstk15')                                                %#ok
8
14
A = Prob.A ;
9
15
C = A'*A ;
10
16
R = A*A' ;
11
17
 
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)))
15
21
 
16
 
tic ; p1 = metis (C) ; toc
17
 
% [pa po] = etree2 (C (p1,p1)) ; sparse (po - (1:size(C,1)))
18
 
 
19
 
tic ; p2 = metis (C, 'sym') ; toc
20
 
% [pa po] = etree2 (C (p1,p1)) ; sparse (po - (1:size(C,1)))
21
 
 
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)))
 
24
 
 
25
tic ; p2 = metis (C, 'sym') ; toc                                           %#ok
 
26
% [pa po] = etree2 (C (p1,p1)) ; sparse (po - (1:size(C,1)))
 
27
 
 
28
tic ; p3 = metis (A, 'row') ; toc                                           %#ok
23
29
% [pa po] = etree2 (A (p1,:), 'row') ; sparse (po - (1:size(A,1)))
24
30
 
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)))
27
33
 
28
34
fprintf ('\nmetis(A):\n') ;
29
35
[m n] = size(A) ;
30
 
if (m == n && nnz (A-A') == 0)
31
 
    tic ; p5 = metis (A) ; toc
32
 
    % figure (1)
33
 
    % spy (A (p5,p5)) ;
34
 
    [ignore q] = etree (A(p5,p5)) ;
35
 
    p5post = p5 (q) ;
36
 
    % figure (2)
37
 
    % spy (A (p5post,p5post)) ;
38
 
    lnz0 = sum (symbfact (A (p5,p5)))
 
36
if (m == n)
 
37
    if (nnz (A-A') == 0)
 
38
        tic ; p5 = metis (A) ; toc
 
39
        % figure (1)
 
40
        % spy (A (p5,p5)) ;
 
41
        [ignore q] = etree (A(p5,p5)) ;
 
42
        p5post = p5 (q) ;                                                   %#ok
 
43
        % figure (2)
 
44
        % spy (A (p5post,p5post)) ;
 
45
        lnz0 = sum (symbfact (A (p5,p5)))                                   %#ok
 
46
    end
39
47
end
40
48
 
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)))
 
50
if (m == n)
 
51
    if (nnz (A-A') == 0)
 
52
        tic ; z0 = amd (A) ; toc                                            %#ok
 
53
        lnz = sum (symbfact (A (z0,z0)))                                    %#ok
 
54
    end
45
55
end
46
56
 
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
53
63
 
54
64
 
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
61
71
 
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)))
 
73
if (m == n)
 
74
    if (nnz (A-A') == 0)
 
75
        tic ; c5 = nesdis (A) ; toc                                         %#ok
 
76
        lnz1 = sum (symbfact (A (c5,c5)))                                   %#ok
 
77
    end
66
78
end
67
79
 
68
80
fprintf ('test9 passed\n') ;