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

« back to all changes in this revision

Viewing changes to BTF/MATLAB/td.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
 
 
2
 
randn ('state', 0) ;
3
 
rand ('state', 0) ;
4
 
figure (1)
5
 
clf
6
 
 
7
 
for trials = 1:1000
8
 
    m = fix (100 * rand (1)) ;
9
 
    n = fix (100 * rand (1)) ;
10
 
    d = 0.1 * rand (1) ;
11
 
    A = sprandn (m,n,d) ;
12
 
 
13
 
    subplot (1,3,1) ;
14
 
    spy (A) ;
15
 
 
16
 
    pp = dmperm (A) ;
17
 
 
18
 
    sprnk = sum (pp > 0) ;
19
 
 
20
 
    % finish pp
21
 
 
22
 
    if (all (pp) ~= 0)
23
 
        % spy (A (pp,:))
24
 
    else
25
 
        % spy (0)
26
 
    end
27
 
 
28
 
    fprintf ('sprnk: %d  m %d n %d\n', sprnk, m, n) ;
29
 
 
30
 
    [p,q,r,s] = dmperm (A) ;
31
 
    C = A (p,q) ;
32
 
 
33
 
    subplot (1,3,2) ;
34
 
    hold off
35
 
    spy (C)
36
 
    hold on
37
 
 
38
 
    nk = length (r) - 1 ;
39
 
 
40
 
    for k = 1:nk
41
 
        r1 = r(k) ;
42
 
        r2 = r(k+1) ;
43
 
        c1 = s(k)  ;
44
 
        c2 = s(k+1) ;
45
 
        plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
46
 
    end
47
 
 
48
 
    [p2,q2,cp,rp] = dp (A,A') ;
49
 
    cp
50
 
    rp
51
 
 
52
 
    if (any (sort (p2) ~= 1:m))
53
 
        error ('p2!') ;
54
 
    end
55
 
 
56
 
    if (any (sort (q2) ~= 1:n))
57
 
        error ('q2!') ;
58
 
    end
59
 
 
60
 
    if (cp (5) ~= n+1)
61
 
        error ('cp!') ;
62
 
    end
63
 
 
64
 
    if (rp (5) ~= m+1)
65
 
        error ('rp!') ;
66
 
    end
67
 
 
68
 
    C = A (p2,q2) ;
69
 
 
70
 
    subplot (1,3,3) ;
71
 
    hold off
72
 
    spy (C) ;
73
 
    hold on
74
 
 
75
 
    r1 = rp(1) ;
76
 
    r2 = rp(2) ;
77
 
    c1 = cp(1)  ;
78
 
    c2 = cp(2) ;
79
 
    fprintf ('k %d rows %d to %d cols %d to %d\n', k, r1, r2, c1, c2) ;
80
 
    plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
81
 
 
82
 
    r1 = rp(1) ;
83
 
    r2 = rp(2) ;
84
 
    c1 = cp(2) ;
85
 
    c2 = cp(3) ;
86
 
    fprintf ('k %d rows %d to %d cols %d to %d\n', k, r1, r2, c1, c2) ;
87
 
    plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
88
 
 
89
 
    B = C (r1:r2-1, c1:c2-1) ;
90
 
    if (nnz (diag (B)) ~= size (B,1))
91
 
        error ('C1 diag!') ;
92
 
    end
93
 
 
94
 
    r1 = rp(2) ;
95
 
    r2 = rp(3) ;
96
 
    c1 = cp(3) ;
97
 
    c2 = cp(4) ;
98
 
    fprintf ('k %d rows %d to %d cols %d to %d\n', k, r1, r2, c1, c2) ;
99
 
    plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
100
 
 
101
 
    B = C (r1:r2-1, c1:c2-1) ;
102
 
    if (nnz (diag (B)) ~= size (B,1))
103
 
        error ('C2 diag!') ;
104
 
    end
105
 
 
106
 
    r1 = rp(3) ;
107
 
    r2 = rp(4) ;
108
 
    c1 = cp(4) ;
109
 
    c2 = cp(5) ;
110
 
    fprintf ('k %d rows %d to %d cols %d to %d\n', k, r1, r2, c1, c2) ;
111
 
    plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
112
 
 
113
 
    B = C (r1:r2-1, c1:c2-1) ;
114
 
    if (nnz (diag (B)) ~= size (B,1))
115
 
        error ('C3 diag!') ;
116
 
    end
117
 
 
118
 
    r1 = rp(4) ;
119
 
    r2 = rp(5) ;
120
 
    c1 = cp(4) ;
121
 
    c2 = cp(5) ;
122
 
    fprintf ('k %d rows %d to %d cols %d to %d\n', k, r1, r2, c1, c2) ;
123
 
    plot ([c1 c2 c2 c1 c1]-.5, [r1 r1 r2 r2 r1]-.5, 'g') ;
124
 
 
125
 
    drawnow
126
 
    % pause
127
 
 
128
 
end