gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Improvements in groups.dox - Apply the graph renamings. - Apply the current map renamings.
0 1 0
default
1 file changed with 25 insertions and 27 deletions:
↑ Collapse diff ↑
Show white space 1536 line context
1 1
/* -*- C++ -*-
2 2
 *
3 3
 * This file is a part of LEMON, a generic C++ optimization library
4 4
 *
5 5
 * Copyright (C) 2003-2008
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 7
 * (Egervary Research Group on Combinatorial Optimization, EGRES).
8 8
 *
9 9
 * Permission to use, modify and distribute this software is granted
10 10
 * provided that this copyright notice appears in all copies. For
11 11
 * precise terms see the accompanying LICENSE file.
12 12
 *
13 13
 * This software is provided "AS IS" with no warranty of any kind,
14 14
 * express or implied, and with no claim as to its suitability for any
15 15
 * purpose.
16 16
 *
17 17
 */
18 18

	
19 19
/**
20 20
@defgroup datas Data Structures
21 21
This group describes the several data structures implemented in LEMON.
22 22
*/
23 23

	
24 24
/**
25 25
@defgroup graphs Graph Structures
26 26
@ingroup datas
27 27
\brief Graph structures implemented in LEMON.
28 28

	
29 29
The implementation of combinatorial algorithms heavily relies on 
30 30
efficient graph implementations. LEMON offers data structures which are 
31 31
planned to be easily used in an experimental phase of implementation studies, 
32 32
and thereafter the program code can be made efficient by small modifications. 
33 33

	
34 34
The most efficient implementation of diverse applications require the
35 35
usage of different physical graph implementations. These differences
36 36
appear in the size of graph we require to handle, memory or time usage
37 37
limitations or in the set of operations through which the graph can be
38 38
accessed.  LEMON provides several physical graph structures to meet
39 39
the diverging requirements of the possible users.  In order to save on
40 40
running time or on memory usage, some structures may fail to provide
41
some graph features like edge or node deletion.
41
some graph features like arc/edge or node deletion.
42 42

	
43 43
Alteration of standard containers need a very limited number of 
44 44
operations, these together satisfy the everyday requirements. 
45 45
In the case of graph structures, different operations are needed which do 
46 46
not alter the physical graph, but gives another view. If some nodes or 
47
edges have to be hidden or the reverse oriented graph have to be used, then 
47
arcs have to be hidden or the reverse oriented graph have to be used, then
48 48
this is the case. It also may happen that in a flow implementation 
49 49
the residual graph can be accessed by another algorithm, or a node-set 
50 50
is to be shrunk for another algorithm. 
51 51
LEMON also provides a variety of graphs for these requirements called 
52 52
\ref graph_adaptors "graph adaptors". Adaptors cannot be used alone but only 
53 53
in conjunction with other graph representations. 
54 54

	
55 55
You are free to use the graph structure that fit your requirements
56 56
the best, most graph algorithms and auxiliary data structures can be used
57 57
with any graph structures. 
58 58
*/
59 59

	
60 60
/**
61 61
@defgroup semi_adaptors Semi-Adaptor Classes for Graphs
62 62
@ingroup graphs
63 63
\brief Graph types between real graphs and graph adaptors.
64 64

	
65 65
This group describes some graph types between real graphs and graph adaptors.
66 66
These classes wrap graphs to give new functionality as the adaptors do it. 
67 67
On the other hand they are not light-weight structures as the adaptors.
68 68
*/
69 69

	
70 70
/**
71 71
@defgroup maps Maps 
72 72
@ingroup datas
73 73
\brief Map structures implemented in LEMON.
74 74

	
75 75
This group describes the map structures implemented in LEMON.
76 76

	
77 77
LEMON provides several special purpose maps that e.g. combine
78 78
new maps from existing ones.
79 79
*/
80 80

	
81 81
/**
82 82
@defgroup graph_maps Graph Maps 
83 83
@ingroup maps
84
\brief Special Graph-Related Maps.
84
\brief Special graph-related maps.
85 85

	
86 86
This group describes maps that are specifically designed to assign
87
values to the nodes and edges of graphs.
87
values to the nodes and arcs of graphs.
88 88
*/
89 89

	
90 90

	
91 91
/**
92 92
\defgroup map_adaptors Map Adaptors
93 93
\ingroup maps
94 94
\brief Tools to create new maps from existing ones
95 95

	
96 96
This group describes map adaptors that are used to create "implicit"
97 97
maps from other maps.
98 98

	
99
Most of them are \ref lemon::concepts::ReadMap "ReadMap"s. They can
100
make arithmetic operations between one or two maps (negation, scaling,
101
addition, multiplication etc.) or e.g. convert a map to another one
102
of different Value type.
99
Most of them are \ref lemon::concepts::ReadMap "read-only maps".
100
They can make arithmetic and logical operations between one or two maps
101
(negation, shifting, addition, multiplication, logical 'and', 'or',
102
'not' etc.) or e.g. convert a map to another one of different Value type.
103 103

	
104 104
The typical usage of this classes is passing implicit maps to
105 105
algorithms.  If a function type algorithm is called then the function
106 106
type map adaptors can be used comfortable. For example let's see the
107
usage of map adaptors with the \c graphToEps() function:
107
usage of map adaptors with the \c digraphToEps() function.
108 108
\code
109 109
  Color nodeColor(int deg) {
110 110
    if (deg >= 2) {
111 111
      return Color(0.5, 0.0, 0.5);
112 112
    } else if (deg == 1) {
113 113
      return Color(1.0, 0.5, 1.0);
114 114
    } else {
115 115
      return Color(0.0, 0.0, 0.0);
116 116
    }
117 117
  }
118 118
  
119
  Graph::NodeMap<int> degree_map(graph);
119
  Digraph::NodeMap<int> degree_map(graph);
120 120
  
121
  graphToEps(graph, "graph.eps")
121
  digraphToEps(graph, "graph.eps")
122 122
    .coords(coords).scaleToA4().undirected()
123
    .nodeColors(composeMap(functorMap(nodeColor), degree_map)) 
123
    .nodeColors(composeMap(functorToMap(nodeColor), degree_map))
124 124
    .run();
125 125
\endcode 
126
The \c functorMap() function makes an \c int to \c Color map from the
126
The \c functorToMap() function makes an \c int to \c Color map from the
127 127
\e nodeColor() function. The \c composeMap() compose the \e degree_map
128
and the previous created map. The composed map is proper function to
129
get color of each node.
128
and the previously created map. The composed map is a proper function to
129
get the color of each node.
130 130

	
131 131
The usage with class type algorithms is little bit harder. In this
132 132
case the function type map adaptors can not be used, because the
133 133
function map adaptors give back temporary objects.
134 134
\code
135
  Graph graph;
135
  Digraph graph;
136 136
  
137
  typedef Graph::EdgeMap<double> DoubleEdgeMap;
138
  DoubleEdgeMap length(graph);
139
  DoubleEdgeMap speed(graph);
137
  typedef Digraph::ArcMap<double> DoubleArcMap;
138
  DoubleArcMap length(graph);
139
  DoubleArcMap speed(graph);
140 140
  
141
  typedef DivMap<DoubleEdgeMap, DoubleEdgeMap> TimeMap;
142
  
141
  typedef DivMap<DoubleArcMap, DoubleArcMap> TimeMap;
143 142
  TimeMap time(length, speed);
144 143
  
145
  Dijkstra<Graph, TimeMap> dijkstra(graph, time);
144
  Dijkstra<Digraph, TimeMap> dijkstra(graph, time);
146 145
  dijkstra.run(source, target);
147 146
\endcode
148

	
149
We have a length map and a maximum speed map on a graph. The minimum
150
time to pass the edge can be calculated as the division of the two
151
maps which can be done implicitly with the \c DivMap template
147
We have a length map and a maximum speed map on the arcs of a digraph.
148
The minimum time to pass the arc can be calculated as the division of
149
the two maps which can be done implicitly with the \c DivMap template
152 150
class. We use the implicit minimum time map as the length map of the
153 151
\c Dijkstra algorithm.
154 152
*/
155 153

	
156 154
/**
157 155
@defgroup matrices Matrices 
158 156
@ingroup datas
159 157
\brief Two dimensional data storages implemented in LEMON.
160 158

	
161 159
This group describes two dimensional data storages implemented in LEMON.
162 160
*/
163 161

	
164 162
/**
165 163
@defgroup paths Path Structures
166 164
@ingroup datas
167 165
\brief Path structures implemented in LEMON.
168 166

	
169 167
This group describes the path structures implemented in LEMON.
170 168

	
171 169
LEMON provides flexible data structures to work with paths.
172 170
All of them have similar interfaces and they can be copied easily with
173 171
assignment operators and copy constructors. This makes it easy and
174 172
efficient to have e.g. the Dijkstra algorithm to store its result in
175 173
any kind of path structure.
176 174

	
177 175
\sa lemon::concepts::Path
178 176

	
179 177
*/
180 178

	
181 179
/**
182 180
@defgroup auxdat Auxiliary Data Structures
183 181
@ingroup datas
184 182
\brief Auxiliary data structures implemented in LEMON.
185 183

	
186 184
This group describes some data structures implemented in LEMON in
187 185
order to make it easier to implement combinatorial algorithms.
188 186
*/
189 187

	
190 188

	
191 189
/**
192 190
@defgroup algs Algorithms
193 191
\brief This group describes the several algorithms
194 192
implemented in LEMON.
195 193

	
196 194
This group describes the several algorithms
197 195
implemented in LEMON.
198 196
*/
199 197

	
200 198
/**
201 199
@defgroup search Graph Search
202 200
@ingroup algs
203 201
\brief Common graph search algorithms.
204 202

	
205 203
This group describes the common graph search algorithms like 
206 204
Breadth-first search (Bfs) and Depth-first search (Dfs).
207 205
*/
208 206

	
209 207
/**
210 208
@defgroup shortest_path Shortest Path algorithms
211 209
@ingroup algs
212 210
\brief Algorithms for finding shortest paths.
213 211

	
214 212
This group describes the algorithms for finding shortest paths in graphs.
215 213
*/
216 214

	
217 215
/** 
218 216
@defgroup max_flow Maximum Flow algorithms 
219 217
@ingroup algs 
220 218
\brief Algorithms for finding maximum flows.
221 219

	
222 220
This group describes the algorithms for finding maximum flows and
223 221
feasible circulations.
224 222

	
225 223
The maximum flow problem is to find a flow between a single source and
226 224
a single target that is maximum. Formally, there is a \f$G=(V,A)\f$
227 225
directed graph, an \f$c_a:A\rightarrow\mathbf{R}^+_0\f$ capacity
228 226
function and given \f$s, t \in V\f$ source and target node. The
229 227
maximum flow is the \f$f_a\f$ solution of the next optimization problem:
230 228

	
231 229
\f[ 0 \le f_a \le c_a \f]
232 230
\f[ \sum_{v\in\delta^{-}(u)}f_{vu}=\sum_{v\in\delta^{+}(u)}f_{uv} \qquad \forall u \in V \setminus \{s,t\}\f]
233 231
\f[ \max \sum_{v\in\delta^{+}(s)}f_{uv} - \sum_{v\in\delta^{-}(s)}f_{vu}\f]
234 232

	
235 233
LEMON contains several algorithms for solving maximum flow problems:
236 234
- \ref lemon::EdmondsKarp "Edmonds-Karp" 
237 235
- \ref lemon::Preflow "Goldberg's Preflow algorithm"
238 236
- \ref lemon::DinitzSleatorTarjan "Dinitz's blocking flow algorithm with dynamic trees"
239 237
- \ref lemon::GoldbergTarjan "Preflow algorithm with dynamic trees"
240 238

	
241 239
In most cases the \ref lemon::Preflow "Preflow" algorithm provides the
242 240
fastest method to compute the maximum flow. All impelementations
243 241
provides functions to query the minimum cut, which is the dual linear
244 242
programming problem of the maximum flow.
245 243

	
246 244
*/
247 245

	
248 246
/**
249 247
@defgroup min_cost_flow Minimum Cost Flow algorithms
250 248
@ingroup algs
251 249

	
252 250
\brief Algorithms for finding minimum cost flows and circulations.
253 251

	
254 252
This group describes the algorithms for finding minimum cost flows and
255 253
circulations.  
256 254
*/
257 255

	
258 256
/**
259 257
@defgroup min_cut Minimum Cut algorithms 
260 258
@ingroup algs 
261 259

	
262 260
\brief Algorithms for finding minimum cut in graphs.
263 261

	
264 262
This group describes the algorithms for finding minimum cut in graphs.
265 263

	
266 264
The minimum cut problem is to find a non-empty and non-complete
267 265
\f$X\f$ subset of the vertices with minimum overall capacity on
268 266
outgoing arcs. Formally, there is \f$G=(V,A)\f$ directed graph, an
269 267
\f$c_a:A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum
270 268
cut is the \f$X\f$ solution of the next optimization problem:
271 269

	
272 270
\f[ \min_{X \subset V, X\not\in \{\emptyset, V\}}\sum_{uv\in A, u\in X, v\not\in X}c_{uv}\f]
273 271

	
274 272
LEMON contains several algorithms related to minimum cut problems:
275 273

	
276 274
- \ref lemon::HaoOrlin "Hao-Orlin algorithm" to calculate minimum cut
277 275
  in directed graphs  
278 276
- \ref lemon::NagamochiIbaraki "Nagamochi-Ibaraki algorithm" to
279 277
  calculate minimum cut in undirected graphs
280 278
- \ref lemon::GomoryHuTree "Gomory-Hu tree computation" to calculate all
281 279
  pairs minimum cut in undirected graphs
282 280

	
283 281
If you want to find minimum cut just between two distinict nodes,
284 282
please see the \ref max_flow "Maximum Flow page".
285 283

	
286 284
*/
287 285

	
288 286
/**
289 287
@defgroup graph_prop Connectivity and other graph properties
290 288
@ingroup algs
291 289
\brief Algorithms for discovering the graph properties
292 290

	
293 291
This group describes the algorithms for discovering the graph properties
294 292
like connectivity, bipartiteness, euler property, simplicity etc.
295 293

	
296 294
\image html edge_biconnected_components.png
297 295
\image latex edge_biconnected_components.eps "bi-edge-connected components" width=\textwidth
298 296
*/
299 297

	
300 298
/**
301 299
@defgroup planar Planarity embedding and drawing
302 300
@ingroup algs
303 301
\brief Algorithms for planarity checking, embedding and drawing
304 302

	
305 303
This group describes the algorithms for planarity checking, embedding and drawing.
306 304

	
307 305
\image html planar.png
308 306
\image latex planar.eps "Plane graph" width=\textwidth
309 307
*/
310 308

	
311 309
/**
312 310
@defgroup matching Matching algorithms 
313 311
@ingroup algs
314 312
\brief Algorithms for finding matchings in graphs and bipartite graphs.
315 313

	
316 314
This group contains algorithm objects and functions to calculate
317 315
matchings in graphs and bipartite graphs. The general matching problem is
318
finding a subset of the edges which does not shares common endpoints.
316
finding a subset of the arcs which does not shares common endpoints.
319 317
 
320 318
There are several different algorithms for calculate matchings in
321 319
graphs.  The matching problems in bipartite graphs are generally
322 320
easier than in general graphs. The goal of the matching optimization
323 321
can be the finding maximum cardinality, maximum weight or minimum cost
324 322
matching. The search can be constrained to find perfect or
325 323
maximum cardinality matching.
326 324

	
327 325
Lemon contains the next algorithms:
328 326
- \ref lemon::MaxBipartiteMatching "MaxBipartiteMatching" Hopcroft-Karp 
329 327
  augmenting path algorithm for calculate maximum cardinality matching in 
330 328
  bipartite graphs
331 329
- \ref lemon::PrBipartiteMatching "PrBipartiteMatching" Push-Relabel 
332 330
  algorithm for calculate maximum cardinality matching in bipartite graphs 
333 331
- \ref lemon::MaxWeightedBipartiteMatching "MaxWeightedBipartiteMatching" 
334 332
  Successive shortest path algorithm for calculate maximum weighted matching 
335 333
  and maximum weighted bipartite matching in bipartite graph
336 334
- \ref lemon::MinCostMaxBipartiteMatching "MinCostMaxBipartiteMatching" 
337 335
  Successive shortest path algorithm for calculate minimum cost maximum 
338 336
  matching in bipartite graph
339 337
- \ref lemon::MaxMatching "MaxMatching" Edmond's blossom shrinking algorithm
340 338
  for calculate maximum cardinality matching in general graph
341 339
- \ref lemon::MaxWeightedMatching "MaxWeightedMatching" Edmond's blossom
342 340
  shrinking algorithm for calculate maximum weighted matching in general
343 341
  graph
344 342
- \ref lemon::MaxWeightedPerfectMatching "MaxWeightedPerfectMatching"
345 343
  Edmond's blossom shrinking algorithm for calculate maximum weighted
346 344
  perfect matching in general graph
347 345

	
348 346
\image html bipartite_matching.png
349 347
\image latex bipartite_matching.eps "Bipartite Matching" width=\textwidth
350 348

	
351 349
*/
352 350

	
353 351
/**
354 352
@defgroup spantree Minimum Spanning Tree algorithms
355 353
@ingroup algs
356 354
\brief Algorithms for finding a minimum cost spanning tree in a graph.
357 355

	
358 356
This group describes the algorithms for finding a minimum cost spanning
359 357
tree in a graph
360 358
*/
361 359

	
362 360

	
363 361
/**
364 362
@defgroup auxalg Auxiliary algorithms
365 363
@ingroup algs
366 364
\brief Auxiliary algorithms implemented in LEMON.
367 365

	
368 366
This group describes some algorithms implemented in LEMON
369 367
in order to make it easier to implement complex algorithms.
370 368
*/
371 369

	
372 370
/**
373 371
@defgroup approx Approximation algorithms
374 372
\brief Approximation algorithms.
375 373

	
376 374
This group describes the approximation and heuristic algorithms
377 375
implemented in LEMON.
378 376
*/
379 377

	
380 378
/**
381 379
@defgroup gen_opt_group General Optimization Tools
382 380
\brief This group describes some general optimization frameworks
383 381
implemented in LEMON.
384 382

	
385 383
This group describes some general optimization frameworks
386 384
implemented in LEMON.
387 385

	
388 386
*/
389 387

	
390 388
/**
391 389
@defgroup lp_group Lp and Mip solvers
392 390
@ingroup gen_opt_group
393 391
\brief Lp and Mip solver interfaces for LEMON.
394 392

	
395 393
This group describes Lp and Mip solver interfaces for LEMON. The
396 394
various LP solvers could be used in the same manner with this
397 395
interface.
398 396

	
399 397
*/
400 398

	
401 399
/** 
402 400
@defgroup lp_utils Tools for Lp and Mip solvers 
403 401
@ingroup lp_group
404 402
\brief Helper tools to the Lp and Mip solvers.
405 403

	
406 404
This group adds some helper tools to general optimization framework
407 405
implemented in LEMON.
408 406
*/
409 407

	
410 408
/**
411 409
@defgroup metah Metaheuristics
412 410
@ingroup gen_opt_group
413 411
\brief Metaheuristics for LEMON library.
414 412

	
415 413
This group describes some metaheuristic optimization tools.
416 414
*/
417 415

	
418 416
/**
419 417
@defgroup utils Tools and Utilities 
420 418
\brief Tools and utilities for programming in LEMON
421 419

	
422 420
Tools and utilities for programming in LEMON.
423 421
*/
424 422

	
425 423
/**
426 424
@defgroup gutils Basic Graph Utilities
427 425
@ingroup utils
428 426
\brief Simple basic graph utilities.
429 427

	
430 428
This group describes some simple basic graph utilities.
431 429
*/
432 430

	
433 431
/**
434 432
@defgroup misc Miscellaneous Tools
435 433
@ingroup utils
436 434
\brief Tools for development, debugging and testing.
437 435

	
438 436
This group describes several useful tools for development,
439 437
debugging and testing.
440 438
*/
441 439

	
442 440
/**
443 441
@defgroup timecount Time measuring and Counting
444 442
@ingroup misc
445 443
\brief Simple tools for measuring the performance of algorithms.
446 444

	
447 445
This group describes simple tools for measuring the performance
448 446
of algorithms.
449 447
*/
450 448

	
451 449
/**
452 450
@defgroup graphbits Tools for Graph Implementation
453 451
@ingroup utils
454 452
\brief Tools to make it easier to create graphs.
455 453

	
456 454
This group describes the tools that makes it easier to create graphs and
457 455
the maps that dynamically update with the graph changes.
458 456
*/
459 457

	
460 458
/**
461 459
@defgroup exceptions Exceptions
462 460
@ingroup utils
463 461
\brief Exceptions defined in LEMON.
464 462

	
465 463
This group describes the exceptions defined in LEMON.
466 464
*/
467 465

	
468 466
/**
469 467
@defgroup io_group Input-Output
470 468
\brief Graph Input-Output methods
471 469

	
472 470
This group describes the tools for importing and exporting graphs 
473 471
and graph related data. Now it supports the LEMON format, the
474 472
\c DIMACS format and the encapsulated postscript (EPS) format.
475 473
*/
476 474

	
477 475
/**
478 476
@defgroup lemon_io Lemon Input-Output
479 477
@ingroup io_group
480 478
\brief Reading and writing LEMON format
481 479

	
482 480
This group describes methods for reading and writing LEMON format. 
483 481
You can find more about this format on the \ref graph-io-page "Graph Input-Output"
484 482
tutorial pages.
485 483
*/
486 484

	
487 485
/**
488 486
@defgroup section_io Section readers and writers
489 487
@ingroup lemon_io
490 488
\brief Section readers and writers for LEMON Input-Output.
491 489

	
492 490
This group describes section reader and writer classes that can be 
493 491
attached to \ref LemonReader and \ref LemonWriter.
494 492
*/
495 493

	
496 494
/**
497 495
@defgroup item_io Item readers and writers
498 496
@ingroup lemon_io
499 497
\brief Item readers and writers for LEMON Input-Output.
500 498

	
501 499
This group describes reader and writer classes for various data types
502 500
(e.g. map or attribute values). These classes can be attached to
503 501
\ref LemonReader and \ref LemonWriter.
504 502
*/
505 503

	
506 504
/**
507 505
@defgroup eps_io Postscript exporting
508 506
@ingroup io_group
509 507
\brief General \c EPS drawer and graph exporter
510 508

	
511 509
This group describes general \c EPS drawing methods and special
512 510
graph exporting tools. 
513 511
*/
514 512

	
515 513

	
516 514
/**
517 515
@defgroup concept Concepts
518 516
\brief Skeleton classes and concept checking classes
519 517

	
520 518
This group describes the data/algorithm skeletons and concept checking
521 519
classes implemented in LEMON.
522 520

	
523 521
The purpose of the classes in this group is fourfold.
524 522
 
525 523
- These classes contain the documentations of the concepts. In order
526 524
  to avoid document multiplications, an implementation of a concept
527 525
  simply refers to the corresponding concept class.
528 526

	
529 527
- These classes declare every functions, <tt>typedef</tt>s etc. an
530 528
  implementation of the concepts should provide, however completely
531 529
  without implementations and real data structures behind the
532 530
  interface. On the other hand they should provide nothing else. All
533 531
  the algorithms working on a data structure meeting a certain concept
534 532
  should compile with these classes. (Though it will not run properly,
535 533
  of course.) In this way it is easily to check if an algorithm
536 534
  doesn't use any extra feature of a certain implementation.
537 535

	
538 536
- The concept descriptor classes also provide a <em>checker class</em>
539 537
  that makes it possible to check whether a certain implementation of a
540 538
  concept indeed provides all the required features.
541 539

	
542 540
- Finally, They can serve as a skeleton of a new implementation of a concept.
543 541

	
544 542
*/
545 543

	
546 544

	
547 545
/**
548 546
@defgroup graph_concepts Graph Structure Concepts
549 547
@ingroup concept
550 548
\brief Skeleton and concept checking classes for graph structures
551 549

	
552 550
This group describes the skeletons and concept checking classes of LEMON's
553 551
graph structures and helper classes used to implement these.
554 552
*/
555 553

	
556 554
/* --- Unused group
557 555
@defgroup experimental Experimental Structures and Algorithms
558 556
This group describes some Experimental structures and algorithms.
559 557
The stuff here is subject to change.
560 558
*/
561 559

	
562 560
/**
563 561
\anchor demoprograms
564 562

	
565 563
@defgroup demos Demo programs
566 564

	
567 565
Some demo programs are listed here. Their full source codes can be found in
568 566
the \c demo subdirectory of the source tree.
569 567

	
570 568
It order to compile them, use <tt>--enable-demo</tt> configure option when
571 569
build the library.
572 570
*/
573 571

	
574 572
/**
575 573
@defgroup tools Standalone utility applications
576 574

	
577 575
Some utility applications are listed here. 
578 576

	
579 577
The standard compilation procedure (<tt>./configure;make</tt>) will compile
580 578
them, as well. 
581 579
*/
582 580

	
0 comments (0 inline)