doc/groups.dox
changeset 2208 37b5c870a953
parent 2084 59769591eb60
child 2233 b3abb7ed76a8
equal deleted inserted replaced
39:033291624de2 40:83c608abf8a2
    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 /**
   183 */
   183 */
   184 
   184 
   185 /**
   185 /**
   186 @defgroup spantree Minimum Cost Spanning Tree Algorithms
   186 @defgroup spantree Minimum Cost Spanning Tree Algorithms
   187 @ingroup algs
   187 @ingroup algs
   188 \brief This group containes the algorithms for finding a minimum cost spanning
   188 \brief This group contains the algorithms for finding a minimum cost spanning
   189 tree in a graph
   189 tree in a graph
   190 
   190 
   191 This group containes the algorithms for finding a minimum cost spanning
   191 This group contains the algorithms for finding a minimum cost spanning
   192 tree in a graph
   192 tree in a graph
   193 */
   193 */
   194 
   194 
   195 
   195 
   196 /**
   196 /**
   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 /**