# Changeset 921:818510fa3d99 in lemon-0.x for doc

Ignore:
Timestamp:
09/29/04 17:30:04 (15 years ago)
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1232
Message:

hugo -> lemon

Location:
doc
Files:
6 edited

Unmodified
Removed
• ## doc/coding_style.dox

 r811 /*! \page coding_style Hugo Coding Style \page coding_style LEMON Coding Style \section naming_conv Naming Conventions are met in one's code then it is easier to read and maintain it. Please comply with these conventions if you want to contribute developing Hugo library. developing LEMON library. \subsection cs-class Classes and other types
• ## doc/graphs.dox

 r911 \page graphs How to use graphs The primary data structures of HugoLib are the graph classes. They all The primary data structures of LEMON are the graph classes. They all provide a node list - edge list interface, i.e. they have functionalities to list the nodes and the edges of the graph as well Each graph should meet the \ref hugo::skeleton::StaticGraph "StaticGraph" concept. \ref lemon::skeleton::StaticGraph "StaticGraph" concept. This concept does not makes it possible to change the graph (i.e. it is not possible to add The graphs meeting the \ref hugo::skeleton::ExtendableGraph "ExtendableGraph" \ref lemon::skeleton::ExtendableGraph "ExtendableGraph" concept allow node and edge addition. You can also "clear" (i.e. erase all edges and nodes) In case of graphs meeting the full feature \ref hugo::skeleton::ErasableGraph "ErasableGraph" \ref lemon::skeleton::ErasableGraph "ErasableGraph" concept you can also erase individual edges and node in arbitrary order. The implemented graph structures are the following. \li \ref hugo::ListGraph "ListGraph" is the most versatile graph class. It meets the \ref hugo::skeleton::ErasableGraph "ErasableGraph" concept \li \ref lemon::ListGraph "ListGraph" is the most versatile graph class. It meets the \ref lemon::skeleton::ErasableGraph "ErasableGraph" concept and it also have some convenience features. \li \ref hugo::SmartGraph "SmartGraph" is a more memory efficient version of \ref hugo::ListGraph "ListGraph". The \li \ref lemon::SmartGraph "SmartGraph" is a more memory efficient version of \ref lemon::ListGraph "ListGraph". The price of it is that it only meets the \ref hugo::skeleton::ExtendableGraph "ExtendableGraph" concept, \ref lemon::skeleton::ExtendableGraph "ExtendableGraph" concept, so you cannot delete individual edges or nodes. \li \ref hugo::SymListGraph "SymListGraph" and \ref hugo::SymSmartGraph "SymSmartGraph" classes are very similar to \ref hugo::ListGraph "ListGraph" and \ref hugo::SmartGraph "SmartGraph". \li \ref lemon::SymListGraph "SymListGraph" and \ref lemon::SymSmartGraph "SymSmartGraph" classes are very similar to \ref lemon::ListGraph "ListGraph" and \ref lemon::SmartGraph "SmartGraph". The difference is that whenever you add a new edge to the graph, it actually adds a pair of oppositely directed edges. attach data to the edges in such a way that the stored data are shared by the edge pairs. \li \ref hugo::FullGraph "FullGraph" implements a full graph. It is a \ref hugo::skeleton::StaticGraph, so you cannot \li \ref lemon::FullGraph "FullGraph" implements a full graph. It is a \ref lemon::skeleton::StaticGraph, so you cannot change the number of nodes once it is constructed. It is extremely memory efficient: it uses constant amount of memory independently from the number of \ref maps "EdgeMap"'s will depend on the number of nodes. \li \ref hugo::NodeSet "NodeSet" implements a graph with no edges. This class can be used as a base class of \ref hugo::EdgeSet "EdgeSet". \li \ref hugo::EdgeSet "EdgeSet" can be used to create a new graph on \li \ref lemon::NodeSet "NodeSet" implements a graph with no edges. This class can be used as a base class of \ref lemon::EdgeSet "EdgeSet". \li \ref lemon::EdgeSet "EdgeSet" can be used to create a new graph on the node set of another graph. The base graph can be an arbitrary graph and it is possible to attach several \ref hugo::EdgeSet "EdgeSet"'s to a base graph. is possible to attach several \ref lemon::EdgeSet "EdgeSet"'s to a base graph. \todo Don't we need SmartNodeSet and SmartEdgeSet? to dynamically attach data the to graph components. The following program demonstrates the basic features of HugoLib's graph The following program demonstrates the basic features of LEMON's graph structures. \code #include #include #include using namespace hugo; using namespace lemon; int main() \endcode ListGraph is one of HugoLib's graph classes. It is based on linked lists, ListGraph is one of LEMON's graph classes. It is based on linked lists, therefore iterating throuh its edges and nodes is fast. step to the next node. Using operator++ on the iterator pointing to the last node invalidates the iterator i.e. sets its value to \ref hugo::INVALID "INVALID". This is what we exploit in the stop condition. \ref lemon::INVALID "INVALID". This is what we exploit in the stop condition. The previous code fragment prints out the following: As we mentioned above, graphs are not containers rather incidence structures which are iterable in many ways. HugoLib introduces incidence structures which are iterable in many ways. LEMON introduces concepts that allow us to attach containers to graphs. These containers are called maps.
• ## doc/groups.dox

 r814 /** @defgroup datas Data Structures This group describes the several graph structures implemented in HugoLib. This group describes the several graph structures implemented in LEMON. */ @defgroup graphs Graph Structures @ingroup datas \brief Graph structures implemented in Hugo. \brief Graph structures implemented in LEMON. Hugolib provides several data structures to meet the diverging requirements LEMON provides several data structures to meet the diverging requirements of the possible users. In order to save on running time or on memory usage, some structures may some graph features like edge or node deletion. Hugolib also offers special graphs that cannot be used alone but only LEMON also offers special graphs that cannot be used alone but only in conjunction with other graph representation. The examples for this are \ref hugo::EdgeSet "EdgeSet", \ref hugo::NodeSet "NodeSet" \ref lemon::EdgeSet "EdgeSet", \ref lemon::NodeSet "NodeSet" and the large variety of \ref gwrappers "graph wrappers". @defgroup auxdat Auxiliary Data Structures @ingroup datas \brief Some data structures implemented in HugoLib. \brief Some data structures implemented in LEMON. This group describes the data structures implemented in HugoLib in This group describes the data structures implemented in LEMON in order to make it easier to implement combinatorial algorithms. */ @defgroup galgs Graph Algorithms \brief This group describes the several graph algorithms implemented in HugoLib. implemented in LEMON. */ \brief Skeletons (a.k.a. concept checking classes) This group describes the data/algorithm skeletons implemented in HugoLib in This group describes the data/algorithm skeletons implemented in LEMON in order to make it easier to check if a certain template class or template function is correctly implemented.
• ## doc/mainpage.dox

 r678 \section intro Introduction \subsection whatis What is HugoLib \subsection whatis What is LEMON HugoLib stands for Hungarian Graph Optimization Library. LEMON stands for Library of Efficient Models and Optimization in Networks. It is a C++ template library aimed at combinatorial optimization tasks which \subsection howtoread How to read this document Graph structures play central role in HugoLib, so if you are new to it, Graph structures play central role in LEMON, so if you are new to it, you probably should start \ref graphs "here". You can also find this page along with others under
• ## doc/maps.dox

 r697 \page maps Maps Maps play central role in HUGOlib. As their name suggests, they map a Maps play central role in LEMON. As their name suggests, they map a certain range of \e keys to certain \e values. Each map has two typedef's to determine the types of keys and values, like this: where it is stored. Each graph structure in HUGOlib provides two standard map templates called Each graph structure in LEMON provides two standard map templates called \c EdgeMap and \c NodeMap. Both are reference maps and you can easily assign data to the nodes and to the edges of the graph. For example if you The readable maps are very frequently used as the input of the algorithms.  For this purpose the most straightforward way is the use of the default maps provided by Hugo's graph structures. default maps provided by LEMON's graph structures. Very often however, it is more convenient and/or more efficient to write your own readable map.
• ## doc/namespaces.dox

 r882 /// The namespace of HugoLib /// The namespace of LEMON /// \todo Some more detailed description would be nice here. /// namespace hugo { namespace lemon { /// The namespace of HUGOlib concepts and concept checking classes /// The namespace of LEMON concepts and concept checking classes /// \todo Some more detailed description would be nice here.
Note: See TracChangeset for help on using the changeset viewer.