COIN-OR::LEMON - Graph Library

source: lemon-1.0/doc/migration.dox @ 310:2bf7c645d5a6

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

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

File size: 4.2 KB
Line 
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
19namespace lemon {
20/*!
21
22\page migration Migration from the 0.x Series
23
24This guide gives an in depth description on what has changed compared
25to the 0.x release series.
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
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
38  the library. Namely,
39  - \c Graph -> \c Digraph
40    - \c %ListGraph -> \c ListDigraph, \c %SmartGraph -> \c SmartDigraph etc.
41  - \c UGraph -> \c Graph
42    - \c ListUGraph -> \c ListGraph, \c SmartUGraph -> \c SmartGraph etc.
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.
48- <b>The two endpoints of an (\e undirected) \c Edge can be obtained by the
49  <tt>u()</tt> and <tt>v()</tt> member function of the graph
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
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
60\section migration-lgf LGF tools
61
62\section migration-search BFS, DFS and Dijkstra
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
77
78\section migration-error Exceptions and Debug tools
79
80\section migration-other Others
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
104*/
105}
Note: See TracBrowser for help on using the repository browser.