doc/groups.dox
author ladanyi
Sun, 18 Dec 2005 03:01:53 +0000
changeset 1863 12e0db6b7d0e
parent 1750 5c76ebbb4818
child 1866 c2de2ed28e59
permissions -rw-r--r--
Demos and benchmarks are not built by default now. They can be enabled with the --enable-demo and --enable-benchmark configure flags.
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 
alpar@1401
    34
\ref graph_adaptors "graph adaptors". Adaptors 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@1402
    51
alpar@1402
    52
/**
alpar@1402
    53
@defgroup graph_maps Graph Maps 
alpar@1402
    54
@ingroup maps
alpar@1402
    55
\brief Special Graph-Related Maps.
alpar@1402
    56
alpar@1402
    57
These maps are specifically designed to assign values to the nodes and edges of
alpar@1402
    58
graphs.
alpar@1402
    59
*/
alpar@1402
    60
alpar@1402
    61
alpar@1402
    62
/**
alpar@1402
    63
\defgroup map_adaptors Map Adaptors
alpar@1402
    64
\ingroup maps
alpar@1402
    65
\brief Tools to create new maps from existing ones
alpar@1402
    66
alpar@1402
    67
Map adaptors are used to create "implicit" maps from other maps.
alpar@1402
    68
alpar@1536
    69
Most of them are \ref lemon::concept::ReadMap "ReadMap"s. They can
alpar@1402
    70
make arithmetic oprerations between one or two maps (negation, scalig,
alpar@1402
    71
addition, multiplication etc.) or e.g. convert a map to another one
alpar@1402
    72
of different Value type.
alpar@1402
    73
*/
alpar@1402
    74
alpar@1043
    75
/**
alpar@678
    76
@defgroup auxdat Auxiliary Data Structures
alpar@678
    77
@ingroup datas
alpar@921
    78
\brief Some data structures implemented in LEMON.
alpar@406
    79
alpar@921
    80
This group describes the data structures implemented in LEMON in
alpar@678
    81
order to make it easier to implement combinatorial algorithms.
alpar@678
    82
*/
alpar@406
    83
alpar@678
    84
/**
alpar@785
    85
@defgroup graphmapfactory Tools to Make It Easier to Make Graph Maps
alpar@785
    86
@ingroup auxdat
alpar@785
    87
\brief Tools to Make It Easier to Make Graph Maps.
alpar@785
    88
alpar@785
    89
This group describes the tools that makes it easier to make graph maps that
alpar@785
    90
dynamically update with the graph changes.
alpar@785
    91
*/
alpar@785
    92
alpar@785
    93
/**
alpar@678
    94
@defgroup galgs Graph Algorithms
alpar@678
    95
\brief This group describes the several graph algorithms
alpar@921
    96
implemented in LEMON.
alpar@947
    97
alpar@947
    98
This group describes the several graph algorithms
alpar@947
    99
implemented in LEMON.
alpar@947
   100
*/
alpar@947
   101
alpar@947
   102
/**
alpar@947
   103
@defgroup gutils General Graph Utilities
alpar@947
   104
\brief This group describes some simple general graph utilities.
alpar@947
   105
@ingroup galgs
alpar@947
   106
alpar@947
   107
This group describes some simple general graph utilities.
alpar@678
   108
*/
alpar@678
   109
alpar@678
   110
/**
alpar@1329
   111
@defgroup gen_opt_group General Optimization Tools
alpar@1329
   112
\brief This group describes some general optimization frameworks
alpar@1329
   113
implemented in LEMON.
alpar@1329
   114
alpar@1329
   115
\brief This group describes some general optimization frameworks
alpar@1329
   116
implemented in LEMON.
alpar@1329
   117
alpar@1329
   118
*/
alpar@1329
   119
alpar@1329
   120
/**
alpar@758
   121
@defgroup flowalgs Path and Flow Algorithms
alpar@678
   122
@ingroup galgs
alpar@758
   123
\brief This group describes the algorithms
alpar@758
   124
for finding paths and flows in graphs.
alpar@678
   125
*/
alpar@678
   126
alpar@678
   127
/**
deba@1750
   128
@defgroup topology Topology related algorithms
deba@1750
   129
@ingroup galgs
deba@1750
   130
\brief This group describes the algorithms
deba@1750
   131
for discover the topology of the graphs.
deba@1750
   132
*/
deba@1750
   133
deba@1750
   134
/**
alpar@1151
   135
@defgroup exceptions Exceptions
alpar@1151
   136
This group contains the exceptions thrown by LEMON library
alpar@1151
   137
*/
alpar@1151
   138
alpar@1151
   139
/**
alpar@678
   140
@defgroup misc Miscellaneous Tools
alpar@678
   141
Here you can find several useful tools for development,
alpar@678
   142
debugging and testing.
alpar@678
   143
*/
alpar@678
   144
alpar@678
   145
/**
alpar@1847
   146
@defgroup timecount Time measuring and Counting
alpar@1847
   147
@ingroup misc
alpar@1847
   148
Here you can find simple tools for measuring the performance
alpar@1847
   149
of algorithms.
alpar@1847
   150
*/
alpar@1847
   151
alpar@1847
   152
/**
alpar@1287
   153
@defgroup io_group Input Output
alpar@1287
   154
Here you can find tools for imporing and exporting graphs and graph related
alpar@1287
   155
data
alpar@1287
   156
*/
alpar@1287
   157
alpar@1287
   158
/**
klao@1030
   159
@defgroup concept Concepts
klao@959
   160
\brief Skeleton classes and concept checking classes
alpar@794
   161
klao@959
   162
This group describes the data/algorithm skeletons and concept checking
klao@1030
   163
classes implemented in LEMON.
klao@1030
   164
klao@1030
   165
One aim of these classes is to make it easier to check if a certain
klao@1030
   166
class or template function is correctly implemented.
klao@1030
   167
klao@1030
   168
The other (sometimes even more important) aim is to document the concepts.
klao@1030
   169
alpar@794
   170
*/
alpar@794
   171
klao@1030
   172
/**
klao@1030
   173
@defgroup graph_concepts Graph Structure Concepts
klao@1030
   174
@ingroup concept
klao@1030
   175
\brief Skeleton and concept checking classes for graph structures
klao@1030
   176
klao@1030
   177
This group contains the skeletons and concept checking classes of LEMON's
klao@1030
   178
graph structures and helper classes used to implement these.
klao@1030
   179
*/
alpar@794
   180
alpar@1587
   181
/* --- Unused group
alpar@678
   182
@defgroup experimental Experimental Structures and Algorithms
alpar@678
   183
This group contains some Experimental structures and algorithms.
alpar@678
   184
The stuff here is subject to change.
alpar@678
   185
*/
alpar@1151
   186
alpar@1558
   187
/**
athos@1582
   188
\anchor demoprograms
athos@1582
   189
alpar@1558
   190
@defgroup demos Demo programs
alpar@1558
   191
alpar@1559
   192
Some demo programs are listed here. Their full source codes can be found in
alpar@1558
   193
the \c demo subdirectory of the source tree.
alpar@1558
   194
ladanyi@1639
   195
The standard compilation procedure (<tt>./configure;make</tt>) will compile
ladanyi@1639
   196
them, as well. 
alpar@1558
   197
alpar@1558
   198
*/
alpar@1558
   199