~ubuntu-branches/ubuntu/trusty/igraph/trusty-proposed

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Mathieu Malaterre
  • Date: 2013-05-27 14:01:54 UTC
  • mfrom: (4.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130527140154-oxwwmr0gj3kdy4ol
Tags: 0.6.5-2
Upload to sid

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) 2007-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> "igraph.h"
 
25
 
 
26
<emphasis role="strong">#include</emphasis> &lt;math.h&gt;
 
27
 
 
28
int <emphasis role="strong">main</emphasis>() {
 
29
  
 
30
  igraph_t g;
 
31
  <link linkend='igraph_vector_t'>igraph_vector_t</link> v, weights;
 
32
  long int i;
 
33
  igraph_real_t value;
 
34
  <link linkend='igraph_arpack_options_t'>igraph_arpack_options_t</link> options;
 
35
  
 
36
  <emphasis role="strong"><link linkend='igraph_star'>igraph_star</link></emphasis>(&amp;g, 100, IGRAPH_STAR_UNDIRECTED, 0);
 
37
 
 
38
  <emphasis role="strong"><link linkend='igraph_arpack_options_init'>igraph_arpack_options_init</link></emphasis>(&amp;options);
 
39
  <emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&amp;v, 0);
 
40
  <emphasis role="strong"><link linkend='igraph_eigenvector_centrality'>igraph_eigenvector_centrality</link></emphasis>(&amp;g, &amp;v, &amp;value, <emphasis>/*directed=*/</emphasis> 0, 
 
41
                                <emphasis>/*scale=*/</emphasis>0, <emphasis>/*weights=*/</emphasis>0, 
 
42
                                &amp;options);
 
43
 
 
44
  <emphasis role="strong">if</emphasis> (options.info != 0) {
 
45
    <emphasis role="strong">return</emphasis> 1;
 
46
  }
 
47
 
 
48
  <emphasis role="strong">for</emphasis> (i=0; i&lt;<emphasis role="strong"><link linkend='igraph_vector_size'>igraph_vector_size</link></emphasis>(&amp;v); i++) {
 
49
    <emphasis role="strong">printf</emphasis>(" %.3f", <emphasis role="strong">fabs</emphasis>(<emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(v)[i]));
 
50
  }
 
51
  <emphasis role="strong">printf</emphasis>("\n");
 
52
  
 
53
  <emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&amp;g);
 
54
 
 
55
  <emphasis>/* Special cases: check for empty graph */</emphasis>
 
56
  <emphasis role="strong"><link linkend='igraph_empty'>igraph_empty</link></emphasis>(&amp;g, 10, 0);
 
57
  <emphasis role="strong"><link linkend='igraph_eigenvector_centrality'>igraph_eigenvector_centrality</link></emphasis>(&amp;g, &amp;v, &amp;value, 0, 0, 0, &amp;options);
 
58
  <emphasis role="strong">if</emphasis> (value != 0.0) {
 
59
    <emphasis role="strong">return</emphasis> 1;
 
60
  }
 
61
  <emphasis role="strong">for</emphasis> (i=0; i&lt;<emphasis role="strong"><link linkend='igraph_vector_size'>igraph_vector_size</link></emphasis>(&amp;v); i++) {
 
62
    <emphasis role="strong">printf</emphasis>(" %.2f", <emphasis role="strong">fabs</emphasis>(<emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(v)[i]));
 
63
  }
 
64
  <emphasis role="strong">printf</emphasis>("\n");
 
65
  <emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&amp;g);
 
66
 
 
67
  <emphasis>/* Special cases: check for full graph, zero weights */</emphasis>
 
68
  <emphasis role="strong"><link linkend='igraph_full'>igraph_full</link></emphasis>(&amp;g, 10, 0, 0);
 
69
  <emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&amp;weights, 45);
 
70
  <emphasis role="strong"><link linkend='igraph_vector_fill'>igraph_vector_fill</link></emphasis>(&amp;weights, 0);
 
71
  <emphasis role="strong"><link linkend='igraph_eigenvector_centrality'>igraph_eigenvector_centrality</link></emphasis>(&amp;g, &amp;v, &amp;value, 0, 0, &amp;weights, &amp;options);
 
72
  <emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&amp;weights);
 
73
  <emphasis role="strong">if</emphasis> (value != 0.0) {
 
74
    <emphasis role="strong">return</emphasis> 2;
 
75
  }
 
76
  <emphasis role="strong">for</emphasis> (i=0; i&lt;<emphasis role="strong"><link linkend='igraph_vector_size'>igraph_vector_size</link></emphasis>(&amp;v); i++) {
 
77
    <emphasis role="strong">printf</emphasis>(" %.2f", <emphasis role="strong">fabs</emphasis>(<emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(v)[i]));
 
78
  }
 
79
  <emphasis role="strong">printf</emphasis>("\n");
 
80
  <emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&amp;g);
 
81
 
 
82
  <emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&amp;v);
 
83
 
 
84
  <emphasis role="strong">return</emphasis> 0;
 
85
}
 
86
</programlisting>