1 2006-10-27 Version 0.6 Released
4 *functor usage for writeable map adaptors
6 -interface to the cplex MIP solver
10 -RefPtr: a reference counted pointer class
12 -Polinomial template class
14 -even a smaller version
16 -Tolerance<unsigned int> and Tolerance<unsigned long long int> added
18 -some UGraphExtender /SubUGraphExtenders, DirectUGraphExtender/
20 -ResGraphAdaptor with Tolerance
21 -SwapBpUGraphAdaptor which swaps the two nodeset of the bipartite graph
23 -SimpleMap and SimpleWriteMap
24 -new map type based on array map for debugging purpose
28 -optimality test on random graph
29 -implementation of the drand48 functions
30 -negative cycle to path converter
32 -Mersenne Twister random number generator
33 -EdgeLookUp and AllEdgeLookUp
35 -script that lists all the header files included directly or indirectly by a certain header file
36 -script creates/updates the copyright header of a source file
38 -algorithm group for matchings
39 -Bipartite Graph Max Cardinality Matching (Hopcroft-Karp)
40 -MaxWeightedBipartiteMatching
41 -MinCostMaxBipartiteMatching
45 -Minimum Cost Arborescence algorithm
46 -dual solution computation and interface for algorithm
50 #Progress in already existing objects:
51 *radix sort to ansi compatible
52 *map creation based on virtual base class is possible
53 *default constructor which allocates empty graphs
54 *defaultMap is introdouced, graph maps should not be inherited from the ObserverBase.
55 *clarifing alteration observing system
56 *resize for static size graph
57 *an additional simplier interface for static size graphs.
58 *Node operator()(int) for getting node by index
59 *int index(Node node) for getting index by node
60 *traits for alteration notifiers
61 *graph adadptors can be alteration observed
62 *count ANodes-BNodes in bipartite graphs
63 *the template assign operators and map iterators can be used for adaptors also
64 *writeable extension of some maps
65 *rot180() added to xy.h
66 *change source and target for the bipartite list graph
67 *findEdge extension also for the BpUGraphs
68 *proper handling of loop edges in the UGraph::findUEdge
69 *exported interface to the Graph class
71 *graph imlementations actually provide ReferenceMaps
73 -RGB color related stuff is in color.h now
74 -simple class to create .eps figures (eps.h)
76 -some color constants added (BLACK, WHITE, RED etc)
77 -absolute/relative node size/link width scaling
80 *SplitGraph is temporarly deleted
82 *obsolote "id" map handling
83 *concepts for extendable and erasable graphs
86 *functional interfaces
89 #Rewritten, modificated, improved
90 *UnionFindEnum revision
93 *IncEdgeIt goes through on loop edges twice.
94 *mining of the clear in heaps
96 *item sets are written in the order sorted by the labels
97 *make explicit constructors
100 -implemented for SmartUGraph an SmartBpUGraph
101 *Node/Edge::operator<() is required by the concept
102 *Graph Component concepts
103 *disabled the copy constructor and operator- of {List|Smart}[U]Graph.
104 *modificated interface: colType() functions
105 *made public what() in NodeSetError
106 *improvment in exception handling
107 -exception safe erase and clear handler
108 -proper exception handling in the SmartEdgeSet
109 -rethrow of exception missing
110 *signaling alterations in BpUGraphs
115 *updated the Path concept
116 *item readers and writers
119 *bootstrap: quiet option
120 *utility, invalid and traits moved to bits
121 *section readers moved to own group
122 *separate group for matrices
124 *glemon is moved to own repository
125 *graph_component.h -> graph_components.h
126 *reference to modules added
127 *disable assertions in default behaviour
128 *BiVariant moved to lemon/bits/variant.h
129 *using abort() instead of exit(1)
135 *UGraphExtender -> UndirectGraphExtender
136 -UGraphExtenders with changed meaning
137 *GridGraph -> GridUGraph
138 *UNDIRGRAPH_TYPEDEFS -> UGRAPH_TYPEDEFS
139 *LinearHeap -> BucketHeap
140 *UGraphBaseExtender -> UndirGraphExtender
141 *BpUGraphBaseExtender merged into BpUGraphExtender
142 *StaticGraph to Graph
146 *concept -> concepts (namespace & directory)
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