1 2006-10-27 Version 0.6 Released
7 *UGraphExtender -> UndirectGraphExtender
8 -UGraphExtenders with changed meaning
9 *GridGraph -> GridUGraph
10 *UNDIRGRAPH_TYPEDEFS -> UGRAPH_TYPEDEFS
11 *LinearHeap -> BucketHeap
12 *UGraphBaseExtender -> UndirGraphExtender
13 *BpUGraphBaseExtender merged into BpUGraphExtender
18 *concept -> concepts (namespace & directory)
21 *bootstrap: quiet option
22 *utility, invalid and traits moved to bits
23 *section readers moved to own group
24 *separate group for matrices
26 *glemon is moved to own repository
27 *graph_component.h -> graph_components.h
28 *reference to modules added
29 *disable assertions in default behaviour
30 *BiVariant moved to lemon/bits/variant.h
31 *using abort() instead of exit(1)
34 *SplitGraph is temporarly deleted
36 *obsolote "id" map handling
37 *concepts for extendable and erasable graphs
40 *functional interfaces
43 #Rewritten, modificated, improved
44 *UnionFindEnum revision
47 *IncEdgeIt goes through on loop edges twice.
48 *mining of the clear in heaps
50 *item sets are written in the order sorted by the labels
51 *make explicit constructors
54 -implemented for SmartUGraph an SmartBpUGraph
55 *Node/Edge::operator<() is required by the concept
56 *Graph Component concepts
57 *disabled the copy constructor and operator- of {List|Smart}[U]Graph.
58 *modificated interface: colType() functions
59 *made public what() in NodeSetError
60 *improvment in exception handling
61 -exception safe erase and clear handler
62 -proper exception handling in the SmartEdgeSet
63 -rethrow of exception missing
64 *signaling alterations in BpUGraphs
69 *updated the Path concept
70 *item readers and writers
73 *functor usage for writeable map adaptors
75 -interface to the cplex MIP solver
79 -RefPtr: a reference counted pointer class
81 -Polinomial template class
83 -even a smaller version
85 -Tolerance<unsigned int> and Tolerance<unsigned long long int> added
87 -some UGraphExtender /SubUGraphExtenders, DirectUGraphExtender/
89 -ResGraphAdaptor with Tolerance
90 -SwapBpUGraphAdaptor which swaps the two nodeset of the bipartite graph
92 -SimpleMap and SimpleWriteMap
93 -new map type based on array map for debugging purpose
97 -optimality test on random graph
98 -implementation of the drand48 functions
99 -negative cycle to path converter
100 -reserveNode function
101 -Mersenne Twister random number generator
102 -EdgeLookUp and AllEdgeLookUp
104 -script that lists all the header files included directly or indirectly by a certain header file
105 -script creates/updates the copyright header of a source file
107 -algorithm group for matchings
108 -Bipartite Graph Max Cardinality Matching (Hopcroft-Karp)
109 -MaxWeightedBipartiteMatching
110 -MinCostMaxBipartiteMatching
111 -MaxCardinalitySearch
112 -MinimalCut in UGraph
114 -Minimum Cost Arborescence algorithm
115 -dual solution computation and interface for algorithm
116 -Edmonds-Karp MaxFlow
119 #Progress in already existing objects:
120 *radix sort to ansi compatible
121 *map creation based on virtual base class is possible
122 *default constructor which allocates empty graphs
123 *defaultMap is introdouced, graph maps should not be inherited from the ObserverBase.
124 *clarifing alteration observing system
125 *resize for static size graph
126 *an additional simplier interface for static size graphs.
127 *Node operator()(int) for getting node by index
128 *int index(Node node) for getting index by node
129 *traits for alteration notifiers
130 *graph adadptors can be alteration observed
131 *count ANodes-BNodes in bipartite graphs
132 *the template assign operators and map iterators can be used for adaptors also
133 *writeable extension of some maps
134 *rot180() added to xy.h
135 *change source and target for the bipartite list graph
136 *findEdge extension also for the BpUGraphs
137 *proper handling of loop edges in the UGraph::findUEdge
138 *exported interface to the Graph class
139 *new random interface
140 *graph imlementations actually provide ReferenceMaps
142 -RGB color related stuff is in color.h now
143 -simple class to create .eps figures (eps.h)
145 -some color constants added (BLACK, WHITE, RED etc)
146 -absolute/relative node size/link width scaling
148 #Compatibility issues:
149 *compilation with G++ -ansi
151 *NaN checking to be conform to MinGW32
153 *long long just for gnu compilers
155 *turned off 32bit specific tests.
157 #Beyond the aboves several bugfix and documentation improvement is made, new demos, benchmarks are implemented.
159 2006-02-03 Version 0.5 Released
162 + query functions for the next node/edge to be processed
163 + visitor interface for dfs
164 - topology.h: small functions for discovering graph topology
165 + connected components, strongly connected components
166 + bipartiteness testing
167 - Shortest paths algorithms:
168 bellman_ford.h, floyd_warshall.h, johnson.h
169 - Euler tour iterator for directed and undirected graphs
171 + dag_shortest_path.h
172 + fredman_tarjan.h and prim.h for min cost trees
173 - Bipartite graph concept and implementations
175 + template assign operator
176 + specialized iterable bool map
177 + potential difference map
178 + NodeMatrixMap -- Matrix over the nodes
182 + NewMap window in MapSelector
183 + Algorithm window and some algorithms (eg. Kruskal) added
185 + exception on non-existent files
187 + (Dual)Expr::simplify(double tolerance) added
191 + male/female node shapes :)
192 + correct %%BoundingBox handling
194 + Timer can be stop()ed and (re)start()ed
195 + radix sort algorithm
196 + tolerance.h for working with imprecise numbers
197 * Backward incompatibilities/changed namings:
198 - Access functions of TimeStamp/Timer
199 - Undir graph interface: findUEdge, ConUEdgeIt
200 - pred -> predEdge renaming in search algorithms
201 - SnapShot -> Snapshot in {List,Smart}Graph
202 - NewEdgeSetAdaptor -> ListEdgeSet
203 - LP: set{Obj,Row,Col}() -> {obj,row,col}()
204 - "label" instead of "id" inside the LGF files
205 - UndirGraph -> UGraph, UndirEdge* -> UEdge*
206 - BipartiteGraph -> BpGraph, Lower/UpperNode* -> A/BNode*
210 - x86_64 connected bugfixes (lemon_reader.h)
212 * New demos, benchmarks and tools:
213 - graph_orientation.cc: A thoroughly documented demo application
214 - runningTimeTest(): a tool to measure running times more precisely
216 - counter.h: a tool to measure the number of steps of algorithms
217 - Some useful scripts: check-compiler, check-integrity
219 - Demos and benchmarks are not built by default now. They can be
220 enabled with the --enable-demo and --enable-benchmark
222 - GCC 4.0.3 and ICC 9.0 compatibility
224 2005-08-27 Version 0.4 Released
225 * List of new features and changes
228 kruskalEdgeMap() -> kruskal()
229 kruskalEdgeMap_IteratorOut() -> kruskal()
231 * operator+=() -> add()
233 + More and better graph I/O functionalities
234 + High level uniform LP solver interface to CPLEX and GLKP
236 + Automatic node size and edge width scaling
237 + Simple color palette tool (ColorSet)
239 + Step-by-step execution
240 + Run from multiple sources
241 + Used define stop condition
242 + Improved "named parameters"
244 + Function type interface
246 * ListGraph/SmarGraph
247 + split() splits a node
250 + New convenience maps
251 + IdMap, DescriptorMap
252 + InDegMap, OutDegMap
254 + Default graph maps are iterable
255 + glemon: a graph editor
256 + Some new demo codes added, the old ones got polished.
257 * Better documentation
258 * Several important bugfixes
259 * Now lemon should compile without warnings with
261 * Intel C++ Compiler v9.0
263 2005-03-19 Version 0.3.1 Released
264 * This release fixes a compilation failure bug under cygwin.
266 2005-02-21 Version 0.3 released
267 * List of new features and changes
268 * Redesigned Graph infrastructures
269 + Standardized LEMON exceptions
271 + Standard graph file format, input and output classes for it.
272 * head() -> target(), tail() -> source()
273 * Some standard namings have changes:
276 ReferenceType ->Reference,
277 PointerType -> Pointer
278 + GraphToEps: A simple graph drawer
279 * Better documentation
281 2004-09-30 Version 0.2 released