~ubuntu-branches/ubuntu/wily/igraph/wily-proposed

« back to all changes in this revision

Viewing changes to examples/simple/cohesive_blocks.c.xml

  • Committer: Package Import Robot
  • Author(s): Tamás Nepusz, Andreas Tille, Tamas Nepusz
  • Date: 2014-08-29 08:39:02 UTC
  • mfrom: (7.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20140829083902-y4k2iu2mlizkq0o0
Tags: 0.7.1-2
[ Andreas Tille ]
* Move packagiong from SVN to Git

[ Tamas Nepusz ]
* Remove debian/patches/link_f2c.patch; f2c linkage not needed if
  BLAS, LAPACK and ARPACK are all linked dynamically
  Closes: #702882
* debian/patches/remove_unused_test_target.patch added to make
  dh_auto_test work
* debian/patches/fix_failing_tests.patch added to fix some failing
  test cases 
* debian/patches/cppflags_restore.patch added to fix incorrect
  handling of CPPFLAGS in the configure script
* debian/patches/drl_spelling_fix.patch added to fix a spelling
  error in the source and silence a lintian warning

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<programlisting linenumbering="numbered"><emphasis>/* -*- mode: C -*-  */</emphasis>
2
 
<emphasis>/* </emphasis>
3
 
<emphasis>   IGraph library.</emphasis>
4
 
<emphasis>   Copyright (C) 2010-2012  Gabor Csardi </emphasis>&lt;csardi.gabor@gmail.com&gt;
5
 
<emphasis>   334 Harvard street, Cambridge, MA 02139 USA</emphasis>
6
 
<emphasis>   </emphasis>
7
 
<emphasis>   This program is free software; you can redistribute it and/or modify</emphasis>
8
 
<emphasis>   it under the terms of the GNU General Public License as published by</emphasis>
9
 
<emphasis>   the Free Software Foundation; either version 2 of the License, or</emphasis>
10
 
<emphasis>   (at your option) any later version.</emphasis>
11
 
<emphasis>   </emphasis>
12
 
<emphasis>   This program is distributed in the hope that it will be useful,</emphasis>
13
 
<emphasis>   but WITHOUT ANY WARRANTY; without even the implied warranty of</emphasis>
14
 
<emphasis>   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</emphasis>
15
 
<emphasis>   GNU General Public License for more details.</emphasis>
16
 
<emphasis>   </emphasis>
17
 
<emphasis>   You should have received a copy of the GNU General Public License</emphasis>
18
 
<emphasis>   along with this program; if not, write to the Free Software</emphasis>
19
 
<emphasis>   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA </emphasis>
20
 
<emphasis>   02110-1301 USA</emphasis>
21
 
 
22
 
<emphasis>*/</emphasis>
23
 
 
24
 
<emphasis role="strong">#include</emphasis> &lt;igraph.h&gt;
25
 
 
26
 
int <emphasis role="strong">doit</emphasis>(igraph_t *g) {
27
 
 
28
 
  igraph_vector_ptr_t blocks;
29
 
  <link linkend='igraph_vector_t'>igraph_vector_t</link> cohesion;
30
 
  <link linkend='igraph_vector_t'>igraph_vector_t</link> parent;
31
 
  igraph_t block_tree;
32
 
  long int i;
33
 
 
34
 
  <emphasis role="strong"><link linkend='igraph_vector_ptr_init'>igraph_vector_ptr_init</link></emphasis>(&amp;blocks, 0);
35
 
  <emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&amp;cohesion, 0);
36
 
  <emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&amp;parent, 0);
37
 
 
38
 
  <emphasis role="strong"><link linkend='igraph_cohesive_blocks'>igraph_cohesive_blocks</link></emphasis>(g, &amp;blocks, &amp;cohesion, &amp;parent, 
39
 
                         &amp;block_tree);
40
 
  
41
 
  <emphasis role="strong">printf</emphasis>("Blocks:\n");
42
 
  <emphasis role="strong">for</emphasis> (i=0; i&lt;<emphasis role="strong"><link linkend='igraph_vector_ptr_size'>igraph_vector_ptr_size</link></emphasis>(&amp;blocks); i++) {
43
 
    <link linkend='igraph_vector_t'>igraph_vector_t</link> *sg=<emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(blocks)[i];
44
 
    <emphasis role="strong">printf</emphasis>("  "); <emphasis role="strong">igraph_vector_print</emphasis>(sg);
45
 
    <emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(sg);
46
 
    <emphasis role="strong"><link linkend='igraph_free'>igraph_free</link></emphasis>(sg);
47
 
  }
48
 
  <emphasis role="strong">printf</emphasis>("Cohesion:\n  ");  <emphasis role="strong">igraph_vector_print</emphasis>(&amp;cohesion);
49
 
  <emphasis role="strong">printf</emphasis>("Parents:\n  ");   <emphasis role="strong">igraph_vector_print</emphasis>(&amp;parent);
50
 
  <emphasis role="strong">printf</emphasis>("Block graph:\n"); <emphasis role="strong"><link linkend='igraph_write_graph_edgelist'>igraph_write_graph_edgelist</link></emphasis>(&amp;block_tree, stdout);
51
 
 
52
 
  <emphasis role="strong"><link linkend='igraph_vector_ptr_destroy'>igraph_vector_ptr_destroy</link></emphasis>(&amp;blocks);
53
 
  <emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&amp;cohesion);
54
 
  <emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&amp;parent);
55
 
  <emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&amp;block_tree);
56
 
 
57
 
  <emphasis role="strong">return</emphasis> 0;
58
 
}
59
 
 
60
 
int <emphasis role="strong">main</emphasis>() {
61
 
  
62
 
  igraph_t g;
63
 
  int ret;
64
 
 
65
 
  <emphasis>/* --------------------------------------------------------*/</emphasis>
66
 
  <emphasis>/* The graph from the Moody-White paper                    */</emphasis>
67
 
 
68
 
  <emphasis role="strong"><link linkend='igraph_small'>igraph_small</link></emphasis>(&amp;g, 23, IGRAPH_UNDIRECTED,
69
 
               0,1, 0,2, 0,3, 0,4, 0,5,
70
 
               1,2, 1,3, 1,4, 1,6,
71
 
               2,3, 2,5, 2,6,
72
 
               3,4, 3,5, 3,6,
73
 
               4,5, 4,6, 4,20,
74
 
               5,6, 
75
 
               6,7, 6,10, 6,13, 6,18,
76
 
               7,8, 7,10, 7,13,
77
 
               8,9,
78
 
               9,11, 9,12,
79
 
               10,11, 10,13,
80
 
               11,15,
81
 
               12,15,
82
 
               13,14,
83
 
               14,15,
84
 
               16,17, 16,18, 16,19,
85
 
               17,19, 17,20,
86
 
               18,19, 18,21, 18,22,
87
 
               19,20,
88
 
               20,21, 20,22,
89
 
               21,22,
90
 
               -1);
91
 
  
92
 
  <emphasis role="strong">if</emphasis> ( (ret=<emphasis role="strong">doit</emphasis>(&amp;g)) ) { <emphasis role="strong">return</emphasis> ret; }
93
 
  <emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&amp;g);
94
 
  <emphasis role="strong">printf</emphasis>("--\n");
95
 
 
96
 
  <emphasis>/* --------------------------------------------------------*/</emphasis>
97
 
  <emphasis>/* A tricky graph, where the separators themselves         */</emphasis>
98
 
  <emphasis>/* form a block. But recently we don't include this        */</emphasis>
99
 
  <emphasis>/* block in the results.                                   */</emphasis>
100
 
 
101
 
  <emphasis role="strong"><link linkend='igraph_small'>igraph_small</link></emphasis>(&amp;g, 8, IGRAPH_UNDIRECTED,
102
 
               0,1,0,4,0,5, 1,2,1,4,1,5,1,6, 2,3,2,5,2,6,2,7,
103
 
               3,6,3,7, 4,5, 5,6, 6,7, 
104
 
               -1);
105
 
  
106
 
  <emphasis role="strong">if</emphasis> ( (ret=<emphasis role="strong">doit</emphasis>(&amp;g)) ) { <emphasis role="strong">return</emphasis> ret; }
107
 
  <emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&amp;g);
108
 
  <emphasis role="strong">printf</emphasis>("--\n");  
109
 
 
110
 
  <emphasis>/* --------------------------------------------------------*/</emphasis>
111
 
  <emphasis>/* The science camp graph from </emphasis>http://intersci.ss.uci.edu/<emphasis> */</emphasis>
112
 
  <emphasis>/* wiki/index.php/Cohesive_blocking                        */</emphasis>
113
 
 
114
 
  <emphasis role="strong"><link linkend='igraph_small'>igraph_small</link></emphasis>(&amp;g, 18, IGRAPH_UNDIRECTED, 
115
 
               0,1,0,2,0,3, 
116
 
               1,2,1,3,1,16,1,17, 
117
 
               2,3, 
118
 
               3,17, 
119
 
               4,5,4,6,4,7,4,8,
120
 
               5,6,5,7, 
121
 
               6,7,6,8,
122
 
               7,8,7,16,
123
 
               8,9,8,10,
124
 
               9,11,9,12,9,13,9,14,
125
 
               10,11,10,12,10,13,
126
 
               11,14,
127
 
               12,13,12,14,12,15,
128
 
               15,16,15,17,
129
 
               16,17,
130
 
               -1);
131
 
               
132
 
  <emphasis role="strong">if</emphasis> ( (ret=<emphasis role="strong">doit</emphasis>(&amp;g)) ) { <emphasis role="strong">return</emphasis> ret; }
133
 
  <emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&amp;g);
134
 
  <emphasis role="strong">printf</emphasis>("--\n");  
135
 
 
136
 
  <emphasis>/* --------------------------------------------------------*/</emphasis>
137
 
  <emphasis>/* Zachary karate-club                                     */</emphasis>
138
 
  
139
 
  <emphasis role="strong"><link linkend='igraph_small'>igraph_small</link></emphasis>(&amp;g, 34, IGRAPH_UNDIRECTED,
140
 
               0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,11,0,12,0,13,
141
 
               0,17,0,19,0,21,0,31,
142
 
               1,2,1,3,1,7,1,13,1,17,1,19,1,21,1,30,
143
 
               2,3,2,7,2,27,2,28,2,32,2,9,2,8,2,13,
144
 
               3,7,3,12,3,13,
145
 
               4,6,4,10,
146
 
               5,6,5,10,5,16,
147
 
               6,16,
148
 
               8,30,8,32,8,33,
149
 
               9,33,
150
 
               13,33,
151
 
               14,32,14,33,
152
 
               15,32,15,33,
153
 
               18,32,18,33,
154
 
               19,33,
155
 
               20,32,20,33,
156
 
               22,32,22,33,
157
 
               23,25,23,27,23,32,23,33,23,29,
158
 
               24,25,24,27,24,31,
159
 
               25,31,
160
 
               26,29,26,33,
161
 
               27,33,
162
 
               28,31,28,33,
163
 
               29,32,29,33,
164
 
               30,32,30,33,
165
 
               31,32,31,33,
166
 
               32,33,
167
 
               -1);
168
 
 
169
 
  <emphasis role="strong">if</emphasis> ( (ret=<emphasis role="strong">doit</emphasis>(&amp;g)) ) { <emphasis role="strong">return</emphasis> ret; }
170
 
  <emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&amp;g);
171
 
  <emphasis role="strong">printf</emphasis>("--\n");  
172
 
  
173
 
  <emphasis role="strong">return</emphasis> 0;
174
 
}
175
 
</programlisting>