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><csardi.gabor@gmail.com>
5
<emphasis> 334 Harvard street, Cambridge, MA 02139 USA</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>
22
<emphasis>*/</emphasis>
24
<emphasis role="strong">#include</emphasis> "igraph.h"
26
<emphasis role="strong">#include</emphasis> <math.h>
28
int <emphasis role="strong">main</emphasis>() {
31
<link linkend='igraph_vector_t'>igraph_vector_t</link> v, weights;
34
<link linkend='igraph_arpack_options_t'>igraph_arpack_options_t</link> options;
36
<emphasis role="strong"><link linkend='igraph_star'>igraph_star</link></emphasis>(&g, 100, IGRAPH_STAR_UNDIRECTED, 0);
38
<emphasis role="strong"><link linkend='igraph_arpack_options_init'>igraph_arpack_options_init</link></emphasis>(&options);
39
<emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&v, 0);
40
<emphasis role="strong"><link linkend='igraph_eigenvector_centrality'>igraph_eigenvector_centrality</link></emphasis>(&g, &v, &value, <emphasis>/*directed=*/</emphasis> 0,
41
<emphasis>/*scale=*/</emphasis>0, <emphasis>/*weights=*/</emphasis>0,
44
<emphasis role="strong">if</emphasis> (options.info != 0) {
45
<emphasis role="strong">return</emphasis> 1;
48
<emphasis role="strong">for</emphasis> (i=0; i<<emphasis role="strong"><link linkend='igraph_vector_size'>igraph_vector_size</link></emphasis>(&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]));
51
<emphasis role="strong">printf</emphasis>("\n");
53
<emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&g);
55
<emphasis>/* Special cases: check for empty graph */</emphasis>
56
<emphasis role="strong"><link linkend='igraph_empty'>igraph_empty</link></emphasis>(&g, 10, 0);
57
<emphasis role="strong"><link linkend='igraph_eigenvector_centrality'>igraph_eigenvector_centrality</link></emphasis>(&g, &v, &value, 0, 0, 0, &options);
58
<emphasis role="strong">if</emphasis> (value != 0.0) {
59
<emphasis role="strong">return</emphasis> 1;
61
<emphasis role="strong">for</emphasis> (i=0; i<<emphasis role="strong"><link linkend='igraph_vector_size'>igraph_vector_size</link></emphasis>(&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]));
64
<emphasis role="strong">printf</emphasis>("\n");
65
<emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&g);
67
<emphasis>/* Special cases: check for full graph, zero weights */</emphasis>
68
<emphasis role="strong"><link linkend='igraph_full'>igraph_full</link></emphasis>(&g, 10, 0, 0);
69
<emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&weights, 45);
70
<emphasis role="strong"><link linkend='igraph_vector_fill'>igraph_vector_fill</link></emphasis>(&weights, 0);
71
<emphasis role="strong"><link linkend='igraph_eigenvector_centrality'>igraph_eigenvector_centrality</link></emphasis>(&g, &v, &value, 0, 0, &weights, &options);
72
<emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&weights);
73
<emphasis role="strong">if</emphasis> (value != 0.0) {
74
<emphasis role="strong">return</emphasis> 2;
76
<emphasis role="strong">for</emphasis> (i=0; i<<emphasis role="strong"><link linkend='igraph_vector_size'>igraph_vector_size</link></emphasis>(&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]));
79
<emphasis role="strong">printf</emphasis>("\n");
80
<emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&g);
82
<emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&v);
84
<emphasis role="strong">return</emphasis> 0;