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

« back to all changes in this revision

Viewing changes to examples/simple/igraph_scg_grouping.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) 2011-2012  Gabor Csardi </emphasis>&lt;csardi.gabor@gmail.com&gt;
5
 
<emphasis>   334 Harvard st, Cambridge, MA, 02138 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
 
<emphasis role="strong">#define</emphasis> <emphasis role="strong">SIZE</emphasis> (1000)
27
 
 
28
 
int <emphasis role="strong">main</emphasis>() {
29
 
 
30
 
  igraph_matrix_t M, M2;
31
 
  <link linkend='igraph_vector_t'>igraph_vector_t</link> lambda;
32
 
  igraph_matrix_t V;
33
 
  <link linkend='igraph_vector_t'>igraph_vector_t</link> groups;
34
 
  <link linkend='igraph_vector_t'>igraph_vector_t</link> ivec;
35
 
  int i, j;
36
 
  int n;
37
 
 
38
 
  <emphasis role="strong"><link linkend='igraph_rng_seed'>igraph_rng_seed</link></emphasis>(<emphasis role="strong"><link linkend='igraph_rng_default'>igraph_rng_default</link></emphasis>(), 42);
39
 
 
40
 
  <emphasis>/* Symmetric matrix, exponentially distributed elements */</emphasis>
41
 
 
42
 
  <emphasis role="strong"><link linkend='igraph_matrix_init'>igraph_matrix_init</link></emphasis>(&amp;M, SIZE, SIZE);
43
 
  n=<emphasis role="strong"><link linkend='igraph_matrix_nrow'>igraph_matrix_nrow</link></emphasis>(&amp;M);
44
 
  <emphasis role="strong">for</emphasis> (i=0; i&lt;n; i++) {
45
 
    <emphasis role="strong">for</emphasis> (j=0; j&lt;n; j++) {
46
 
      <emphasis role="strong"><link linkend='MATRIX'>MATRIX</link></emphasis>(M, i, j) = <emphasis role="strong">igraph_rng_get_exp</emphasis>(<emphasis role="strong"><link linkend='igraph_rng_default'>igraph_rng_default</link></emphasis>(), 1);
47
 
    }
48
 
  }
49
 
  <emphasis role="strong"><link linkend='igraph_matrix_init'>igraph_matrix_init</link></emphasis>(&amp;M2, n, n);
50
 
  <emphasis role="strong"><link linkend='igraph_matrix_update'>igraph_matrix_update</link></emphasis>(&amp;M2, &amp;M);
51
 
  <emphasis role="strong"><link linkend='igraph_matrix_transpose'>igraph_matrix_transpose</link></emphasis>(&amp;M2);
52
 
  <emphasis role="strong"><link linkend='igraph_matrix_add'>igraph_matrix_add</link></emphasis>(&amp;M, &amp;M2);
53
 
  <emphasis role="strong"><link linkend='igraph_matrix_scale'>igraph_matrix_scale</link></emphasis>(&amp;M, 0.5);
54
 
  <emphasis role="strong"><link linkend='igraph_matrix_destroy'>igraph_matrix_destroy</link></emphasis>(&amp;M2);
55
 
 
56
 
  <emphasis>/* Get first (most positive) two eigenvectors */</emphasis>
57
 
 
58
 
  <emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&amp;lambda, 0);
59
 
  <emphasis role="strong"><link linkend='igraph_matrix_init'>igraph_matrix_init</link></emphasis>(&amp;V, 0, 0);
60
 
  <emphasis role="strong"><link linkend='igraph_lapack_dsyevr'>igraph_lapack_dsyevr</link></emphasis>(&amp;M, IGRAPH_LAPACK_DSYEV_SELECT, <emphasis>/*vl=*/</emphasis> 0, <emphasis>/*vu=*/</emphasis> 0, 
61
 
                       <emphasis>/*vestimate=*/</emphasis> 0, <emphasis>/*il=*/</emphasis> n-1, <emphasis>/*iu=*/</emphasis> n, 
62
 
                       <emphasis>/*abstol=*/</emphasis> 0.0, <emphasis>/*values=*/</emphasis> &amp;lambda, <emphasis>/*vectors=*/</emphasis> &amp;V, 
63
 
                       <emphasis>/*support=*/</emphasis> 0);
64
 
  
65
 
  <emphasis>/* Grouping */</emphasis>
66
 
  
67
 
  <emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&amp;groups, 0);
68
 
  <emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&amp;ivec, 2);
69
 
  <emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(ivec)[0] = 2; <emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(ivec)[1] = 3;  
70
 
  <emphasis role="strong"><link linkend='igraph_scg_grouping'>igraph_scg_grouping</link></emphasis>(&amp;V, &amp;groups, <emphasis>/*invervals=*/</emphasis> 0, 
71
 
                      <emphasis>/*intervals_vector=*/</emphasis> &amp;ivec, IGRAPH_SCG_SYMMETRIC, 
72
 
                      IGRAPH_SCG_OPTIMUM, <emphasis>/*p=*/</emphasis> 0, <emphasis>/*maxiter=*/</emphasis> 100);
73
 
  
74
 
  <emphasis role="strong">igraph_vector_print</emphasis>(&amp;groups);
75
 
 
76
 
  <emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&amp;ivec);
77
 
  <emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&amp;groups);
78
 
  <emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&amp;lambda);
79
 
  <emphasis role="strong"><link linkend='igraph_matrix_destroy'>igraph_matrix_destroy</link></emphasis>(&amp;V);
80
 
  <emphasis role="strong"><link linkend='igraph_matrix_destroy'>igraph_matrix_destroy</link></emphasis>(&amp;M);
81
 
 
82
 
  <emphasis role="strong">return</emphasis> 0;
83
 
}
84
 
</programlisting>