doc/groups.dox
author alpar
Fri, 25 Mar 2005 08:18:27 +0000
changeset 1256 3bb4ed285c39
parent 1151 b217fc69f913
child 1287 984723507b86
permissions -rw-r--r--
- src/lemon/utility.h: dummy<> template added
- LpSolverBase::INF is now really defined
- AddColSet() to add several column at once
- using enable_if
- with some doxygen hack
- More doc improvements
- Better Makefile
alpar@814
     1
alpar@678
     2
/**
alpar@678
     3
@defgroup datas Data Structures
alpar@921
     4
This group describes the several graph structures implemented in LEMON.
alpar@678
     5
*/
alpar@430
     6
alpar@678
     7
/**
alpar@678
     8
@defgroup graphs Graph Structures
alpar@678
     9
@ingroup datas
alpar@921
    10
\brief Graph structures implemented in LEMON.
alpar@430
    11
marci@1172
    12
The implementation of combinatorial algorithms heavily relies on 
marci@1172
    13
efficient graph implementations. LEMON offers data structures which are 
marci@1172
    14
planned to be easily used in an experimental phase of implementation studies, 
marci@1172
    15
and thereafter the program code can be made efficient by small modifications. 
alpar@430
    16
marci@1172
    17
The most efficient implementation of diverse applications require the usage of different physical graph implementations. These differences appear in the size of 
marci@1172
    18
graph we require to handle, memory or time usage limitations or in 
marci@1172
    19
the set of operations through which the graph can be accessed. 
marci@1172
    20
LEMON provides several physical graph structures to meet the 
marci@1172
    21
diverging requirements of the possible users. 
marci@1172
    22
In order to save on running time or on memory usage, some structures may 
marci@1172
    23
fail to provide some graph features like edge or node deletion.
marci@1172
    24
marci@1172
    25
Alteration of standard containers need a very limited number of 
marci@1172
    26
operations, these together satisfy the everyday requirements. 
marci@1172
    27
In the case of graph strutures, different operations are needed which do 
marci@1172
    28
not alter the physical graph, but gives an other view. If some nodes or 
marci@1172
    29
edges have to be hidden or the reverse oriented graph have to be used, then 
marci@1172
    30
this is the case. It also may happen that in a flow implemenation 
marci@1172
    31
the residual graph can be accessed by an other algorithm, or a node-set 
marci@1172
    32
is to be shrunk for an other algorithm. 
marci@1172
    33
LEMON also provides a variety of graphs for these requirements called 
marci@1172
    34
\ref gwrappers "graph wrappers". Wrappers cannot be used alone but only 
marci@1172
    35
in conjunction with other graph representation. 
alpar@430
    36
alpar@678
    37
You are free to use the graph structure that fit your requirements
alpar@678
    38
the best, most graph algorithms and auxiliary data structures can be used
marci@1172
    39
with any graph structures. 
alpar@678
    40
*/
alpar@430
    41
alpar@678
    42
/**
alpar@1043
    43
@defgroup maps Maps 
alpar@1043
    44
@ingroup datas
alpar@1043
    45
\brief Some special purpose map to make life easier.
alpar@1043
    46
alpar@1043
    47
LEMON provides several special maps that e.g. combine
alpar@1043
    48
new maps from existing ones.
alpar@1043
    49
*/
alpar@1043
    50
alpar@1043
    51
/**
alpar@678
    52
@defgroup auxdat Auxiliary Data Structures
alpar@678
    53
@ingroup datas
alpar@921
    54
\brief Some data structures implemented in LEMON.
alpar@406
    55
alpar@921
    56
This group describes the data structures implemented in LEMON in
alpar@678
    57
order to make it easier to implement combinatorial algorithms.
alpar@678
    58
*/
alpar@406
    59
alpar@678
    60
/**
alpar@785
    61
@defgroup graphmapfactory Tools to Make It Easier to Make Graph Maps
alpar@785
    62
@ingroup auxdat
alpar@785
    63
\brief Tools to Make It Easier to Make Graph Maps.
alpar@785
    64
alpar@785
    65
This group describes the tools that makes it easier to make graph maps that
alpar@785
    66
dynamically update with the graph changes.
alpar@785
    67
*/
alpar@785
    68
alpar@785
    69
/**
alpar@678
    70
@defgroup galgs Graph Algorithms
alpar@678
    71
\brief This group describes the several graph algorithms
alpar@921
    72
implemented in LEMON.
alpar@947
    73
alpar@947
    74
This group describes the several graph algorithms
alpar@947
    75
implemented in LEMON.
alpar@947
    76
*/
alpar@947
    77
alpar@947
    78
/**
alpar@947
    79
@defgroup gutils General Graph Utilities
alpar@947
    80
\brief This group describes some simple general graph utilities.
alpar@947
    81
@ingroup galgs
alpar@947
    82
alpar@947
    83
This group describes some simple general graph utilities.
alpar@678
    84
*/
alpar@678
    85
alpar@678
    86
/**
alpar@758
    87
@defgroup flowalgs Path and Flow Algorithms
alpar@678
    88
@ingroup galgs
alpar@758
    89
\brief This group describes the algorithms
alpar@758
    90
for finding paths and flows in graphs.
alpar@678
    91
*/
alpar@678
    92
alpar@678
    93
/**
alpar@1151
    94
@defgroup exceptions Exceptions
alpar@1151
    95
This group contains the exceptions thrown by LEMON library
alpar@1151
    96
*/
alpar@1151
    97
alpar@1151
    98
/**
alpar@678
    99
@defgroup misc Miscellaneous Tools
alpar@678
   100
Here you can find several useful tools for development,
alpar@678
   101
debugging and testing.
alpar@678
   102
*/
alpar@678
   103
alpar@678
   104
/**
klao@1030
   105
@defgroup concept Concepts
klao@959
   106
\brief Skeleton classes and concept checking classes
alpar@794
   107
klao@959
   108
This group describes the data/algorithm skeletons and concept checking
klao@1030
   109
classes implemented in LEMON.
klao@1030
   110
klao@1030
   111
One aim of these classes is to make it easier to check if a certain
klao@1030
   112
class or template function is correctly implemented.
klao@1030
   113
klao@1030
   114
The other (sometimes even more important) aim is to document the concepts.
klao@1030
   115
alpar@794
   116
*/
alpar@794
   117
klao@1030
   118
/**
klao@1030
   119
@defgroup graph_concepts Graph Structure Concepts
klao@1030
   120
@ingroup concept
klao@1030
   121
\brief Skeleton and concept checking classes for graph structures
klao@1030
   122
klao@1030
   123
This group contains the skeletons and concept checking classes of LEMON's
klao@1030
   124
graph structures and helper classes used to implement these.
klao@1030
   125
*/
alpar@794
   126
alpar@794
   127
/**
alpar@678
   128
@defgroup experimental Experimental Structures and Algorithms
alpar@678
   129
This group contains some Experimental structures and algorithms.
alpar@678
   130
The stuff here is subject to change.
alpar@678
   131
*/
alpar@1151
   132