diff -r 7d70e9735686 -r 02083323ff2c tools.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools.dox Mon Feb 15 01:47:33 2010 +0100 @@ -0,0 +1,67 @@ +/* -*- mode: C++; indent-tabs-mode: nil; -*- + * + * This file is a part of LEMON, a generic C++ optimization library. + * + * Copyright (C) 2003-2009 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport + * (Egervary Research Group on Combinatorial Optimization, EGRES). + * + * Permission to use, modify and distribute this software is granted + * provided that this copyright notice appears in all copies. For + * precise terms see the accompanying LICENSE file. + * + * This software is provided "AS IS" with no warranty of any kind, + * express or implied, and with no claim as to its suitability for any + * purpose. + * + */ + +namespace lemon { +/** +[PAGE]sec_tools[PAGE] Tools + +\todo Clarify this section. + +[SEC]sec_aux_structures[SEC] Auxiliary Data Structures +Graph algorithms depend on various auxiliary data structures and algorithms. +For example, heaps play an important role in Dijkstra and Prim +algorithms, both the theoretical and practical performance of them +are determined by the applied heap implementation. + +LEMON implements various such auxiliary tools. For instance, +several data structures are available for maintaining \e disjoint \e sets. +\ref UnionFind is the classical union-find data structure, which is +used to implement the \ref Kruskal algorithm. +The \ref UnionFindEnum and \ref HeapUnionFind classes are used in +matching algorithms, the first one supports the enumeration of the +items stored in the sets, while the second one also assigns priorities to the +elements and an item having minimum priority can be retrieved set-wise. + + +[SEC]sec_graph_to_eps[SEC] Graph to EPS + +Another nice feature of the library is \ref graphToEps(), a highly +configurable graph displaying tool (using EPS output format). +Originally, it was developed to evaluate the flexibility and scalability +of LEMON's approach to implement named parameters. Later it +has been evolved into a versatile tool featuring above 35 named +parameters. The following code demonstrates its typical use. + +\code + graphToEps(g, "graph.eps") + .coords(coords) + .title("Sample EPS figure") + .copyright("(c) 2003-2010 LEMON Project") + .absoluteNodeSizes().absoluteArcWidths() + .nodeScale(2).nodeSizes(sizes) + .nodeShapes(shapes) + .nodeColors(composeMap(palette, colors)) + .arcColors(composeMap(palette, acolors)) + .arcWidthScale(.4).arcWidths(widths) + .nodeTexts(id).nodeTextSize(3) + .run(); +\endcode + +[TRAILER] +*/ +}