# Changeset 314:2cc60866a0c9 in lemon-main

Ignore:
Timestamp:
10/09/08 13:27:35 (11 years ago)
Branch:
default
Phase:
public
Message:

Doc reorganization + improvements

• Reorganize several tools (move them to other modules).
• Add new module for map concepts.
• Remove the doc of all tools in lemon/bits.
• Improvements in groups.dox.
• Fix some doxygen warnings.
Files:
17 edited

Unmodified
Removed
• ## doc/groups.dox

 r236 You are free to use the graph structure that fit your requirements the best, most graph algorithms and auxiliary data structures can be used with any graph structures. with any graph structure. See also: \ref graph_concepts "Graph Structure Concepts". */ This group describes the map structures implemented in LEMON. LEMON provides several special purpose maps that e.g. combine LEMON provides several special purpose maps and map adaptors that e.g. combine new maps from existing ones. See also: \ref map_concepts "Map Concepts". */ values to the nodes and arcs of graphs. */ /** algorithms.  If a function type algorithm is called then the function type map adaptors can be used comfortable. For example let's see the usage of map adaptors with the \c digraphToEps() function. usage of map adaptors with the \c graphToEps() function. \code Color nodeColor(int deg) { Digraph::NodeMap degree_map(graph); digraphToEps(graph, "graph.eps") graphToEps(graph, "graph.eps") .coords(coords).scaleToA4().undirected() .nodeColors(composeMap(functorToMap(nodeColor), degree_map)) \endcode The \c functorToMap() function makes an \c int to \c Color map from the \e nodeColor() function. The \c composeMap() compose the \e degree_map \c nodeColor() function. The \c composeMap() compose the \c degree_map and the previously created map. The composed map is a proper function to get the color of each node. \sa lemon::concepts::Path */ */ /** @defgroup algs Algorithms This group describes the common graph search algorithms like Breadth-first search (Bfs) and Depth-first search (Dfs). */ /** @defgroup shortest_path Shortest Path algorithms Breadth-First Search (BFS) and Depth-First Search (DFS). */ /** @defgroup shortest_path Shortest Path Algorithms @ingroup algs \brief Algorithms for finding shortest paths. /** @defgroup max_flow Maximum Flow algorithms @defgroup max_flow Maximum Flow Algorithms @ingroup algs \brief Algorithms for finding maximum flows. provides functions to query the minimum cut, which is the dual linear programming problem of the maximum flow. */ /** @defgroup min_cost_flow Minimum Cost Flow algorithms */ /** @defgroup min_cost_flow Minimum Cost Flow Algorithms @ingroup algs /** @defgroup min_cut Minimum Cut algorithms @defgroup min_cut Minimum Cut Algorithms @ingroup algs If you want to find minimum cut just between two distinict nodes, please see the \ref max_flow "Maximum Flow page". */ /** @defgroup graph_prop Connectivity and other graph properties */ /** @defgroup graph_prop Connectivity and Other Graph Properties @ingroup algs \brief Algorithms for discovering the graph properties /** @defgroup planar Planarity embedding and drawing @defgroup planar Planarity Embedding and Drawing @ingroup algs \brief Algorithms for planarity checking, embedding and drawing /** @defgroup matching Matching algorithms @defgroup matching Matching Algorithms @ingroup algs \brief Algorithms for finding matchings in graphs and bipartite graphs. \image html bipartite_matching.png \image latex bipartite_matching.eps "Bipartite Matching" width=\textwidth */ /** @defgroup spantree Minimum Spanning Tree algorithms */ /** @defgroup spantree Minimum Spanning Tree Algorithms @ingroup algs \brief Algorithms for finding a minimum cost spanning tree in a graph. */ /** @defgroup auxalg Auxiliary algorithms /** @defgroup auxalg Auxiliary Algorithms @ingroup algs \brief Auxiliary algorithms implemented in LEMON. /** @defgroup approx Approximation algorithms @defgroup approx Approximation Algorithms @ingroup algs \brief Approximation algorithms. This group describes some general optimization frameworks implemented in LEMON. */ /** @defgroup lp_group Lp and Mip solvers */ /** @defgroup lp_group Lp and Mip Solvers @ingroup gen_opt_group \brief Lp and Mip solver interfaces for LEMON. various LP solvers could be used in the same manner with this interface. */ /** @defgroup lp_utils Tools for Lp and Mip solvers */ /** @defgroup lp_utils Tools for Lp and Mip Solvers @ingroup lp_group \brief Helper tools to the Lp and Mip solvers. /** @defgroup timecount Time measuring and Counting @defgroup timecount Time Measuring and Counting @ingroup misc \brief Simple tools for measuring the performance of algorithms. This group describes simple tools for measuring the performance of algorithms. */ /** @defgroup graphbits Tools for Graph Implementation @ingroup utils \brief Tools to make it easier to create graphs. This group describes the tools that makes it easier to create graphs and the maps that dynamically update with the graph changes. */ This group describes the tools for importing and exporting graphs and graph related data. Now it supports the LEMON format, the \c DIMACS format and the encapsulated postscript (EPS) format. and graph related data. Now it supports the \ref lgf-format "LEMON Graph Format", the \c DIMACS format and the encapsulated postscript (EPS) format. */ @defgroup lemon_io LEMON Input-Output @ingroup io_group \brief Reading and writing \ref lgf-format "LEMON Graph Format". \brief Reading and writing LEMON Graph Format. This group describes methods for reading and writing /** @defgroup eps_io Postscript exporting @defgroup eps_io Postscript Exporting @ingroup io_group \brief General \c EPS drawer and graph exporter graph exporting tools. */ /** - Finally, They can serve as a skeleton of a new implementation of a concept. */ */ /** */ /* --- Unused group @defgroup experimental Experimental Structures and Algorithms This group describes some Experimental structures and algorithms. The stuff here is subject to change. /** @defgroup map_concepts Map Concepts @ingroup concept \brief Skeleton and concept checking classes for maps This group describes the skeletons and concept checking classes of maps. */
• ## doc/mainpage.dox

 r307 If you want to see how LEMON works, see some \ref demoprograms "demo programs"! some \ref demoprograms "demo programs". If you know what you are looking for then try to find it under the section. If you are a user of the old (0.x) series of LEMON, please check out the \ref migration "Migration Guide" for the backward incompatibilities. If you are a user of the old (0.x) series of LEMON, please check out the \ref migration "Migration Guide" for the backward incompatibilities. */
• ## doc/migration.dox

 r308 in strings, comments etc. as well as in all identifiers. \section migration-lgf LGF tools \section migration-lgf LGF tools - The \ref lgf-format "LGF file format" has changed, \@nodeset has changed to \@nodes,

• ## lemon/bits/base_extender.h

 r289 #include ///\ingroup digraphbits ///\file ///\brief Extenders for the digraph types //\ingroup digraphbits //\file //\brief Extenders for the digraph types namespace lemon { /// \ingroup digraphbits /// /// \brief BaseDigraph to BaseGraph extender // \ingroup digraphbits // // \brief BaseDigraph to BaseGraph extender template class UndirDigraphExtender : public Base { }; /// First node of the edge // First node of the edge Node u(const Edge &e) const { return Parent::source(e); } /// Source of the given arc // Source of the given arc Node source(const Arc &e) const { return e.forward ? Parent::source(e) : Parent::target(e); } /// Second node of the edge // Second node of the edge Node v(const Edge &e) const { return Parent::target(e); } /// Target of the given arc // Target of the given arc Node target(const Arc &e) const { return e.forward ? Parent::target(e) : Parent::source(e); } /// \brief Directed arc from an edge. /// /// Returns a directed arc corresponding to the specified edge. /// If the given bool is true, the first node of the given edge and /// the source node of the returned arc are the same. // \brief Directed arc from an edge. // // Returns a directed arc corresponding to the specified edge. // If the given bool is true, the first node of the given edge and // the source node of the returned arc are the same. static Arc direct(const Edge &e, bool d) { return Arc(e, d); } /// Returns whether the given directed arc has the same orientation /// as the corresponding edge. // Returns whether the given directed arc has the same orientation // as the corresponding edge. static bool direction(const Arc &a) { return a.forward; }
• ## lemon/bits/bezier.h

 r209 #define LEMON_BEZIER_H ///\ingroup misc ///\file ///\brief Classes to compute with Bezier curves. /// ///Up to now this file is used internally by \ref graph_to_eps.h //\ingroup misc //\file //\brief Classes to compute with Bezier curves. // //Up to now this file is used internally by \ref graph_to_eps.h #include
• ## lemon/bits/default_map.h

 r313 #define LEMON_BITS_DEFAULT_MAP_H #include #include //#include ///\ingroup graphbits ///\file ///\brief Graph maps that construct and destruct their elements dynamically. //\ingroup graphbits //\file //\brief Graph maps that construct and destruct their elements dynamically. namespace lemon { // #endif /// DefaultMap class // DefaultMap class template class DefaultMap
• ## lemon/bits/enable_if.h

 r220 #define LEMON_BITS_ENABLE_IF_H ///\file ///\brief Miscellaneous basic utilities //\file //\brief Miscellaneous basic utilities namespace lemon { /// Basic type for defining "tags". A "YES" condition for \c enable_if. // Basic type for defining "tags". A "YES" condition for \c enable_if. /// Basic type for defining "tags". A "YES" condition for \c enable_if. /// ///\sa False // Basic type for defining "tags". A "YES" condition for \c enable_if. // //\sa False struct True { ///\e //\e static const bool value = true; }; /// Basic type for defining "tags". A "NO" condition for \c enable_if. // Basic type for defining "tags". A "NO" condition for \c enable_if. /// Basic type for defining "tags". A "NO" condition for \c enable_if. /// ///\sa True // Basic type for defining "tags". A "NO" condition for \c enable_if. // //\sa True struct False { ///\e //\e static const bool value = false; };
• ## lemon/bits/graph_extender.h

 r263 #include ///\ingroup graphbits ///\file ///\brief Extenders for the digraph types //\ingroup graphbits //\file //\brief Extenders for the digraph types namespace lemon { /// \ingroup graphbits /// /// \brief Extender for the Digraphs // \ingroup graphbits // // \brief Extender for the Digraphs template class DigraphExtender : public Base { }; /// \brief Base node of the iterator /// /// Returns the base node (i.e. the source in this case) of the iterator // \brief Base node of the iterator // // Returns the base node (i.e. the source in this case) of the iterator Node baseNode(const OutArcIt &arc) const { return Parent::source(arc); } /// \brief Running node of the iterator /// /// Returns the running node (i.e. the target in this case) of the /// iterator // \brief Running node of the iterator // // Returns the running node (i.e. the target in this case) of the // iterator Node runningNode(const OutArcIt &arc) const { return Parent::target(arc); } /// \brief Base node of the iterator /// /// Returns the base node (i.e. the target in this case) of the iterator // \brief Base node of the iterator // // Returns the base node (i.e. the target in this case) of the iterator Node baseNode(const InArcIt &arc) const { return Parent::target(arc); } /// \brief Running node of the iterator /// /// Returns the running node (i.e. the source in this case) of the /// iterator // \brief Running node of the iterator // // Returns the running node (i.e. the source in this case) of the // iterator Node runningNode(const InArcIt &arc) const { return Parent::source(arc); }; /// \ingroup _graphbits /// /// \brief Extender for the Graphs // \ingroup _graphbits // // \brief Extender for the Graphs template class GraphExtender : public Base { }; /// \brief Base node of the iterator /// /// Returns the base node (ie. the source in this case) of the iterator // \brief Base node of the iterator // // Returns the base node (ie. the source in this case) of the iterator Node baseNode(const OutArcIt &arc) const { return Parent::source(static_cast(arc)); } /// \brief Running node of the iterator /// /// Returns the running node (ie. the target in this case) of the /// iterator // \brief Running node of the iterator // // Returns the running node (ie. the target in this case) of the // iterator Node runningNode(const OutArcIt &arc) const { return Parent::target(static_cast(arc)); } /// \brief Base node of the iterator /// /// Returns the base node (ie. the target in this case) of the iterator // \brief Base node of the iterator // // Returns the base node (ie. the target in this case) of the iterator Node baseNode(const InArcIt &arc) const { return Parent::target(static_cast(arc)); } /// \brief Running node of the iterator /// /// Returns the running node (ie. the source in this case) of the /// iterator // \brief Running node of the iterator // // Returns the running node (ie. the source in this case) of the // iterator Node runningNode(const InArcIt &arc) const { return Parent::source(static_cast(arc)); } /// Base node of the iterator /// /// Returns the base node of the iterator // Base node of the iterator // // Returns the base node of the iterator Node baseNode(const IncEdgeIt &edge) const { return edge._direction ? u(edge) : v(edge); } /// Running node of the iterator /// /// Returns the running node of the iterator // Running node of the iterator // // Returns the running node of the iterator Node runningNode(const IncEdgeIt &edge) const { return edge._direction ? v(edge) : u(edge);
• ## lemon/bits/map_extender.h

 r263 #include ///\file ///\brief Extenders for iterable maps. //\file //\brief Extenders for iterable maps. namespace lemon { /// \ingroup graphbits /// /// \brief Extender for maps // \ingroup graphbits // // \brief Extender for maps template class MapExtender : public _Map { }; /// \ingroup graphbits /// /// \brief Extender for maps which use a subset of the items. // \ingroup graphbits // // \brief Extender for maps which use a subset of the items. template class SubMapExtender : public _Map {
• ## lemon/bits/traits.h

 r220 #define LEMON_BITS_TRAITS_H ///\file ///\brief Traits for graphs and maps /// //\file //\brief Traits for graphs and maps // #include