COIN-OR::LEMON - Graph Library

source: lemon/doc/migration.dox @ 306:2bf7c645d5a6

Last change on this file since 306:2bf7c645d5a6 was 306:2bf7c645d5a6, checked in by Peter Kovacs <kpeter@…>, 16 years ago

Improvements in the migration script and guide (ticket #157)

File size: 4.2 KB
RevLine 
[305]1/* -*- mode: C++; indent-tabs-mode: nil; -*-
2 *
3 * This file is a part of LEMON, a generic C++ optimization library.
4 *
5 * Copyright (C) 2003-2008
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 * (Egervary Research Group on Combinatorial Optimization, EGRES).
8 *
9 * Permission to use, modify and distribute this software is granted
10 * provided that this copyright notice appears in all copies. For
11 * precise terms see the accompanying LICENSE file.
12 *
13 * This software is provided "AS IS" with no warranty of any kind,
14 * express or implied, and with no claim as to its suitability for any
15 * purpose.
16 *
17 */
18
[306]19namespace lemon {
[305]20/*!
21
22\page migration Migration from the 0.x Series
23
24This guide gives an in depth description on what has changed compared
[306]25to the 0.x release series.
[305]26
27Many of these changes adjusted automatically by the
28<tt>script/lemon-0.x-to-1.x.sh</tt> tool. Those requiring manual
29update are typeset <b>boldface</b>.
30
31\section migration-graph Graph Related Name Changes
32
[306]33- \ref concepts::Digraph "Directed graphs" are called \c Digraph and
34  they have <tt>Arc</tt>s (instead of <tt>Edge</tt>s), while
35  \ref concepts::Graph "undirected graphs" are called \c Graph
36  (instead of \c UGraph) and they have <tt>Edge</tt>s (instead of
37  <tt>UEdge</tt>s). These changes reflected thoroughly everywhere in
[305]38  the library. Namely,
39  - \c Graph -> \c Digraph
[306]40    - \c %ListGraph -> \c ListDigraph, \c %SmartGraph -> \c SmartDigraph etc.
[305]41  - \c UGraph -> \c Graph
42    - \c ListUGraph -> \c ListGraph, \c SmartUGraph -> \c SmartGraph etc.
[306]43  - \c Edge -> \c Arc, \c UEdge -> \c Edge
44  - \c EdgeMap -> \c ArcMap, \c UEdgeMap -> \c EdgeMap
45  - \c EdgeIt -> \c ArcIt, \c UEdgeIt -> \c EdgeIt
46  - Class names and function names containing the words \c graph,
47    \c ugraph, \e edge or \e arc should also be updated.
[305]48- <b>The two endpoints of an (\e undirected) \c Edge can be obtained by the
[306]49  <tt>u()</tt> and <tt>v()</tt> member function of the graph
[305]50  (instead of <tt>source()</tt> and <tt>target()</tt>). This change
51  must be done by hand.</b>
52  \n Of course, you can still use <tt>source()</tt> and <tt>target()</tt>
53  for <tt>Arc</tt>s (directed edges).
54
[306]55\warning
56<b>The <tt>script/lemon-0.x-to-1.x.sh</tt> tool replaces all instances of
57the words \c graph, \c digraph, \c edge and \c arc, so it replaces them
58in strings, comments etc. as well as in all identifiers.</b>
59
[305]60\section migration-lgf LGF tools
61
62\section migration-search BFS, DFS and Dijkstra
[306]63- <b>Using the function interface of BFS, DFS and %Dijkstra both source and
64  target nodes can be given as parameters of the <tt>run()</tt> function
65  (instead of \c bfs(), \c dfs() or \c dijkstra() itself).</b>
66- \ref named-templ-param "Named class template parameters" of \c Bfs,
67  \c Dfs, \c Dijkstra, \c BfsVisit, \c DfsVisit are renamed to start
68  with "Set" instead of "Def". Namely,
69  - \c DefPredMap -> \c SetPredMap
70  - \c DefDistMap -> \c SetDistMap
71  - \c DefReachedMap -> \c SetReachedMap
72  - \c DefProcessedMap -> \c SetProcessedMap
73  - \c DefHeap -> \c SetHeap
74  - \c DefStandardHeap -> \c SetStandardHeap
75  - \c DefOperationTraits -> \c SetOperationTraits
76  - \c DefProcessedMapToBeDefaultMap -> \c SetStandardProcessedMap
[305]77
78\section migration-error Exceptions and Debug tools
79
80\section migration-other Others
[306]81- <b>The contents of <tt>graph_utils.h</tt> are moved to <tt>core.h</tt>
82  and <tt>maps.h</tt>. <tt>core.h</tt> is included by all graph types,
83  therefore it usually do not have to be included directly.</b>
84- <b><tt>path_utils.h</tt> is merged to \c path.h.</b>
85- <b>The parameters of the graph copying tools (i.e. \c GraphCopy,
86  \c DigraphCopy) have to be given in the from-to order.</b>
87- \c copyDigraph() and \c copyGraph() are renamed to \c digraphCopy()
88  and \c graphCopy(), respectively.
89- The of
90 - DefXyzMap --> SetXyzMap
91 - DefHeap --> SetHeap
92 - DefStandardHeap --> SetStandardHeap
93 - DefOperationTraits --> SetOperationTraits
94 - DefProcessedMapToBeDefaultMap --> SetStandardProcessedMap
95- Some map types should also been renamed. Namely,
96  - \c IntegerMap -> \c RangeMap
97  - \c StdMap -> \c SparseMap
98  - \c FunctorMap -> \c FunctorToMap
99  - \c MapFunctor -> \c MapToFunctor
100  - \c ForkWriteMap -> \c ForkMap
101  - \c StoreBoolMap -> \c LoggerBoolMap
102- \c dim2::BoundingBox -> \c dim2::Box
103
[305]104*/
[306]105}
Note: See TracBrowser for help on using the repository browser.