23 running time or on memory usage, some structures may fail to provide |
23 running time or on memory usage, some structures may fail to provide |
24 some graph features like edge or node deletion. |
24 some graph features like edge or node deletion. |
25 |
25 |
26 Alteration of standard containers need a very limited number of |
26 Alteration of standard containers need a very limited number of |
27 operations, these together satisfy the everyday requirements. |
27 operations, these together satisfy the everyday requirements. |
28 In the case of graph strutures, different operations are needed which do |
28 In the case of graph structures, different operations are needed which do |
29 not alter the physical graph, but gives another view. If some nodes or |
29 not alter the physical graph, but gives another view. If some nodes or |
30 edges have to be hidden or the reverse oriented graph have to be used, then |
30 edges have to be hidden or the reverse oriented graph have to be used, then |
31 this is the case. It also may happen that in a flow implemenation |
31 this is the case. It also may happen that in a flow implementation |
32 the residual graph can be accessed by another algorithm, or a node-set |
32 the residual graph can be accessed by another algorithm, or a node-set |
33 is to be shrunk for another algorithm. |
33 is to be shrunk for another algorithm. |
34 LEMON also provides a variety of graphs for these requirements called |
34 LEMON also provides a variety of graphs for these requirements called |
35 \ref graph_adaptors "graph adaptors". Adaptors cannot be used alone but only |
35 \ref graph_adaptors "graph adaptors". Adaptors cannot be used alone but only |
36 in conjunction with other graph representation. |
36 in conjunction with other graph representation. |
43 /** |
43 /** |
44 @defgroup semi_adaptors Semi-Adaptors Classes for Graphs |
44 @defgroup semi_adaptors Semi-Adaptors Classes for Graphs |
45 @ingroup graphs |
45 @ingroup graphs |
46 \brief Graph types between real graphs and graph adaptors. |
46 \brief Graph types between real graphs and graph adaptors. |
47 |
47 |
48 Graph types between real graphs and graph adaptors. These classes |
48 Graph types between real graphs and graph adaptors. These classes wrap |
49 wrap graphs to give new functionality as the adaptors do it. But the |
49 graphs to give new functionality as the adaptors do it. On the other |
50 other way they are not light-weigth structures as the adaptors. |
50 hand they are not light-weight structures as the adaptors. |
51 */ |
51 */ |
52 |
52 |
53 /** |
53 /** |
54 @defgroup maps Maps |
54 @defgroup maps Maps |
55 @ingroup datas |
55 @ingroup datas |
75 \brief Tools to create new maps from existing ones |
75 \brief Tools to create new maps from existing ones |
76 |
76 |
77 Map adaptors are used to create "implicit" maps from other maps. |
77 Map adaptors are used to create "implicit" maps from other maps. |
78 |
78 |
79 Most of them are \ref lemon::concept::ReadMap "ReadMap"s. They can |
79 Most of them are \ref lemon::concept::ReadMap "ReadMap"s. They can |
80 make arithmetic oprerations between one or two maps (negation, scaling, |
80 make arithmetic operations between one or two maps (negation, scaling, |
81 addition, multiplication etc.) or e.g. convert a map to another one |
81 addition, multiplication etc.) or e.g. convert a map to another one |
82 of different Value type. |
82 of different Value type. |
83 */ |
83 */ |
84 |
84 |
85 /** |
85 /** |
230 @defgroup io_group Input-Output |
230 @defgroup io_group Input-Output |
231 \brief Several Graph Input-Output methods |
231 \brief Several Graph Input-Output methods |
232 |
232 |
233 Here you can find tools for importing and exporting graphs |
233 Here you can find tools for importing and exporting graphs |
234 and graph related data. Now it supports the LEMON format, the |
234 and graph related data. Now it supports the LEMON format, the |
235 dimacs format and the encapsulated postscript format. |
235 \c DIMACS format and the encapsulated postscript format. |
236 */ |
236 */ |
237 |
237 |
238 /** |
238 /** |
239 @defgroup lemon_io Lemon Input-Output |
239 @defgroup lemon_io Lemon Input-Output |
240 @ingroup io_group |
240 @ingroup io_group |
266 */ |
266 */ |
267 |
267 |
268 /** |
268 /** |
269 @defgroup eps_io Postscript exporting |
269 @defgroup eps_io Postscript exporting |
270 @ingroup io_group |
270 @ingroup io_group |
271 \brief General EPS drawer and graph exporter |
271 \brief General \c EPS drawer and graph exporter |
272 |
272 |
273 This group contains general EPS drawing methods and special |
273 This group contains general \c EPS drawing methods and special |
274 graph exporting tools. |
274 graph exporting tools. |
275 */ |
275 */ |
276 |
276 |
277 /** |
277 /** |
278 @defgroup exceptions Exceptions |
278 @defgroup exceptions Exceptions |
284 \brief Skeleton classes and concept checking classes |
284 \brief Skeleton classes and concept checking classes |
285 |
285 |
286 This group describes the data/algorithm skeletons and concept checking |
286 This group describes the data/algorithm skeletons and concept checking |
287 classes implemented in LEMON. |
287 classes implemented in LEMON. |
288 |
288 |
289 One aim of these classes is to make it easier to check if a certain |
289 The purpose of the classes in this group is fourfold. |
290 class or template function is correctly implemented. |
290 |
291 |
291 - These classes contain the documentations of the concepts. In order |
292 The other (sometimes even more important) aim is to document the concepts. |
292 to avoid document multiplications, an implementation of a concept |
|
293 simply refers to the corresponding concept class. |
|
294 |
|
295 - These classes declare every functions, <tt>typedef<tt>s etc. an |
|
296 implementation of the concepts should provide, however completely |
|
297 without implementations and real data structures behind the |
|
298 interface. On the other hand they should provide nothing else. All |
|
299 the algorithms working on a data structure meeting a certain concept |
|
300 should compile with these classes. (Though it will not run properly, |
|
301 of course.) In this way it is easily to check if an algorithm |
|
302 doesn't use any extra feature of a certain implementation. |
|
303 |
|
304 - The concept descriptor classes also provide a <em>checker class<em> |
|
305 that makes it possible check whether a certain implementation of a |
|
306 concept indeed provides all the required features. |
|
307 |
|
308 - Finally, They can serve as a skeleton of a new implementation of a concept. |
293 |
309 |
294 */ |
310 */ |
295 |
311 |
296 |
312 |
297 /** |
313 /** |