1
<programlisting linenumbering="numbered"><emphasis>/* -*- mode: C -*- */</emphasis>
2
<emphasis>/* </emphasis>
3
<emphasis> IGraph library.</emphasis>
4
<emphasis> Copyright (C) 2006-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> <sys/time.h>
27
<emphasis role="strong">#include</emphasis> <sys/resource.h>
29
float <emphasis role="strong">timer</emphasis> ()
31
<emphasis role="strong">struct</emphasis> rusage r;
33
<emphasis role="strong">getrusage</emphasis>(0, &r);
34
<emphasis role="strong">return</emphasis> (float)(r.ru_utime.tv_sec+r.ru_utime.tv_usec/(float)1000000);
37
int <emphasis role="strong">main</emphasis>() {
41
<link linkend='igraph_vector_t'>igraph_vector_t</link> capacity;
43
igraph_integer_t source, target;
47
<emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&capacity, 0);
49
<emphasis>/***************/</emphasis>
50
infile=<emphasis role="strong">fopen</emphasis>("ak-4102.max", "r");
51
<emphasis role="strong"><link linkend='igraph_read_graph_dimacs'>igraph_read_graph_dimacs</link></emphasis>(&g, infile, 0, 0, &source, &target, &capacity,
53
<emphasis role="strong">fclose</emphasis>(infile);
55
t=<emphasis role="strong">timer</emphasis>();
56
<emphasis role="strong"><link linkend='igraph_maxflow_value'>igraph_maxflow_value</link></emphasis>(&g, &flow, source, target, &capacity);
57
t=<emphasis role="strong">timer</emphasis>()-t;
58
<emphasis>/* printf("4102: %g (time %.10f)\n", flow, t); */</emphasis>
59
<emphasis role="strong">if</emphasis> (flow != 8207) {
60
<emphasis role="strong">return</emphasis> 1;
62
<emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&g);
63
<emphasis>/***************/</emphasis>
65
<emphasis>/* /\***************\/ */</emphasis>
66
<emphasis>/* infile=fopen("ak-8198.max", "r"); */</emphasis>
67
<emphasis>/* igraph_read_graph_dimacs(&g, infile, 0, 0, &source, &target, &capacity, */</emphasis>
68
<emphasis>/* IGRAPH_DIRECTED); */</emphasis>
69
<emphasis>/* fclose(infile); */</emphasis>
71
<emphasis>/* t=timer(); */</emphasis>
72
<emphasis>/* igraph_maxflow_value(&g, &flow, source, target, &capacity); */</emphasis>
73
<emphasis>/* t=timer()-t; */</emphasis>
74
<emphasis>/* printf("8198: %g (time %.10f)\n", flow, t); */</emphasis>
75
<emphasis>/* igraph_destroy(&g); */</emphasis>
76
<emphasis>/* /\***************\/ */</emphasis>
78
<emphasis>/* /\***************\/ */</emphasis>
79
<emphasis>/* infile=fopen("ak-16390.max", "r"); */</emphasis>
80
<emphasis>/* igraph_read_graph_dimacs(&g, infile, 0, 0, &source, &target, &capacity, */</emphasis>
81
<emphasis>/* IGRAPH_DIRECTED); */</emphasis>
82
<emphasis>/* fclose(infile); */</emphasis>
84
<emphasis>/* t=timer(); */</emphasis>
85
<emphasis>/* igraph_maxflow_value(&g, &flow, source, target, &capacity); */</emphasis>
86
<emphasis>/* t=timer()-t; */</emphasis>
87
<emphasis>/* printf("16390: %g (time %.10f)\n", flow, t); */</emphasis>
88
<emphasis>/* igraph_destroy(&g); */</emphasis>
89
<emphasis>/* /\***************\/ */</emphasis>
91
<emphasis>/* /\***************\/ */</emphasis>
92
<emphasis>/* infile=fopen("ak-32774.max", "r"); */</emphasis>
93
<emphasis>/* igraph_read_graph_dimacs(&g, infile, 0, 0, &source, &target, &capacity, */</emphasis>
94
<emphasis>/* IGRAPH_DIRECTED); */</emphasis>
95
<emphasis>/* fclose(infile); */</emphasis>
97
<emphasis>/* t=timer(); */</emphasis>
98
<emphasis>/* igraph_maxflow_value(&g, &flow, source, target, &capacity); */</emphasis>
99
<emphasis>/* t=timer()-t; */</emphasis>
100
<emphasis>/* printf("32774: %g (time %.10f)\n", flow, t); */</emphasis>
101
<emphasis>/* igraph_destroy(&g); */</emphasis>
102
<emphasis>/* /\***************\/ */</emphasis>
104
<emphasis>/* /\***************\/ */</emphasis>
105
<emphasis>/* infile=fopen("ak-65542.max", "r"); */</emphasis>
106
<emphasis>/* igraph_read_graph_dimacs(&g, infile, 0, 0, &source, &target, &capacity, */</emphasis>
107
<emphasis>/* IGRAPH_DIRECTED); */</emphasis>
108
<emphasis>/* fclose(infile); */</emphasis>
110
<emphasis>/* t=timer(); */</emphasis>
111
<emphasis>/* igraph_maxflow_value(&g, &flow, source, target, &capacity); */</emphasis>
112
<emphasis>/* t=timer()-t; */</emphasis>
113
<emphasis>/* printf("65542: %g (time %.10f)\n", flow, t); */</emphasis>
114
<emphasis>/* igraph_destroy(&g); */</emphasis>
115
<emphasis>/* /\***************\/ */</emphasis>
117
<emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&capacity);
119
<emphasis role="strong">return</emphasis> 0;