NEWS
changeset 2601 054de623255b
parent 2600 e5530c0a018c
child 2602 1c7790d9e025
equal deleted inserted replaced
12:efbac2f0ea56 13:fe386df323d2
     1 2008-02-08 Version 0.7 released
     1 2008-02-08 Version 0.7 released
     2 
     2 	New Features
     3 	* added
     3 		+ new data structures
     4 		- new data structures
     4 			* classes
     5 			classes
     5 				StaticGraph
     6 				StaticGraphBase
       
     7 				ExtendFindEnum
     6 				ExtendFindEnum
     8 				BfsVisitor class
     7 				BfsVisitor class
     9 					Bipartite partitions based on visitors
     8 					Bipartite partitions based on visitors
    10 			helper class for checking existence of a nested class
     9 			* helper class for checking existence of a nested class
    11 			general mapping based variant type
    10 			* general mapping based variant type
    12 			IntegerMap
    11 			* IntegerMap
    13 		- new functions and tools
    12 		+ new algoritmhs
       
    13 			* Lagrange relaxation based algorithm for the delay constrained least cost path problem
       
    14 			* a preflow based general network circulation algorithm
       
    15 			* 2-approximation of Steiner-tree problem
       
    16 			* two heuristics (http://www.avglab.com/andrew/pub/neci-tr-96-132.ps)
       
    17 			* tsp2, a minimum spanning tree based TSP algorithm
       
    18 			* Delaunay triangulation
       
    19 			* Gomory-Hu tree algorithm
       
    20 			* Edmond's Blossom shrinking algorithm
       
    21 			* minimum mean cycle algorithm
       
    22 			* Goldberg-Tarjan algorithm (Preflow with Dynamic Trees)
       
    23 			* Dinitz-Sleator-Tarjan (Blocking flow with Dynamic Tree)
       
    24 			* min cost flow algorithms:
       
    25 				* successive shortest path algorithm
       
    26 				* capacity scaling algorithm
       
    27 				* simple cycle canceling algorithm
       
    28 				* minimum mean cycle canceling algorithm
       
    29 				* cost scaling algorithm
       
    30 				* network simplex algorithm
       
    31 		+ new functions and tools
    14 			ArgParser, a command line argument parser
    32 			ArgParser, a command line argument parser
    15 			DistLog, a tool for measuring one and two dimensional distributions
    33 			* DistLog, a tool for measuring one and two dimensional distributions
    16 			undirected minimum cut benchmarking
    34 			* undirected minimum cut benchmarking
    17 			tools/lgf-gen.cc, a random graph generator
    35 			* tools/lgf-gen.cc, a random graph generator
    18 			BpUGraphReader and Writer
    36 			* BpUGraphReader and Writer
    19 			DynEdgeLookUp implementation based on splay trees
    37 			* DynEdgeLookUp implementation based on splay trees
    20 			MACROS for debug map usage
    38 			* MACROS for debug map usage
    21 		- new algoritmhs
    39 		+ new distributions (Gaussian, exponential, Gamma, two dimensional random, buffered bit generation)
    22 			Lagrange relaxation based algorithm for the delay constrained least cost path problem
    40 		+ push-relabel type algorithm related additions
    23 			a preflow based general network circulation algorithm
    41 			* Elevator, a class for handling item labels in push-relabel type algorithms
    24 			2-approximation of Steiner-tree problem
    42 			* a push/relabel type max cardinality matching implementation
    25 			two heuristics (http://www.avglab.com/andrew/pub/neci-tr-96-132.ps)
    43 			* some query function for push-relabel based matching
    26 			tsp2, a minimum spanning tree based TSP algorithm
    44 		+ LP related additions
    27 			Delaunay triangulation
    45 			* Soplex support
    28 			Gomory-Hu tree algorithm
    46 			* ColIt class
    29 			Edmond's Blossom shrinking algorithm
    47 			* new functions (simplify(), isFinite(), row and col getter function)
    30 			minimum mean cycle algorithm
    48 			* _setColCoeff and _setRowCoeff parameters
    31 			Goldberg-Tarjan algorithm (Preflow with Dynamic Trees)
    49 			* section reader and writer for LEMON IO
    32 			Dinitz-Sleator-Tarjan (Blocking flow with Dynamic Tree)
    50 			* equality-type constraint can now be added to a LP
    33 		- new distributions (Gaussian, exponential, Gamma, two dimensional random, buffered bit generation)
    51 			* virtual functions of class LpCplex
    34 		- push-relabel type algorithm related additions
    52 			* some query functions for GLPK
    35 			Elevator, a class for handling item labels in push-relabel type algorithms
    53 		+ demos
    36 			a push/relabel type max cardinality matching implementation
    54 			* preflow based general network circulation demo
    37 			some query function for push-relabel based matching
    55 			* Steiner 2-approximation demo
    38 		- LP related additions
    56 			* demo for SAT problems
    39 			Soplex support
    57 			* sample input for sat-2 and sat demos
    40 			ColIt class
    58 		+ tests for
    41 			new functions (simplify(), isFinite(), row and col getter function)
    59 			* graph copies
    42 			_setColCoeff and _setRowCoeff parameters
    60 			* random.h
    43 			section reader and writer for lemon IO
    61 			* max weighted matchings
    44 			equality-type constraint can now be added to a LP
    62 		+ planarity related additions
    45 			virtual functions of class LpCplex
    63 			* checking and embedding
    46 			some query functions for GLPK
    64 			* planar grid embedding
    47 		- demos
    65 			* planar graph coloring
    48 			preflow based general network circulation demo
    66 		+ bipartite matchings
    49 			Steiner 2-approximation demo
    67 			* common interface
    50 			demo for SAT problems
    68 			* Query functions: aMatching and bMatching
    51 			sample input for sat-2 and sat demos
    69 			* ANodeMap<UEdge> matching map
    52 		- tests for
    70 			* BNodeMap<bool> barrier map
    53 			graph copies
    71 	Repository reorganization
    54 			random.h
    72 		* script for automatic checking of SVN commit's consistency
    55 			max weighted matchings
    73 		* automatic doc generation from the SVN trunk
    56 		- rename graphs script
    74 		* check for gcc version 3.3, 3.4, 4.0 and 4.1.2 as well
    57 		- planarity related additions
    75 		* reorganization of the modules and groups
    58 			checking and embedding
    76 		* a tools directory added for useful executables codes
    59 			planar grid embedding
    77 		* doxygen
    60 			planar graph coloring
    78 			* renaming topology doxygen group to graph_prop doxygen group
    61 		- administrative improvements
    79 			* introducing planar doxygen group
    62 			script for automatic checking of SVN commit's consistency
    80 	Changes
    63 			automatic doc generation from the SVN trunk
    81 		*  redesigned
    64 			check for gcc version 3.3, 3.4, 4.0 and 4.1.2 as well
    82 			* undirected edgesets (like the smart graph or ugraph)
    65 			reorganization of the modules and groups
    83 			* interface of MaxMatching and UnionFindEnum
    66 			a tools directory added for useful executables codes
    84 			* interface of maximum flow algorithms
    67 			doxygen
    85 			* Kruskal algorithm
    68 				renaming topology doxygen group to graph_prop doxygen group
    86 			* augmenting path based bipartite matching
    69 				introducing planar doxygen group
    87 	Improvements
    70 		- bipartite matchings
    88 		* graph copy
    71 			common interface
    89 			* preliminary support for static graphs
    72 			Query functions: aMatching and bMatching
    90 			* added BpUGraphCopy
    73 			ANodeMap<UEdge> matching map
    91 		* Bfs/Dfs/Dijkstra
    74 			BNodeMap<bool> barrier map
    92 			* conditional execution until the target is reached 
    75 
    93 			* modified start() function in Dfs and Dijkstra classes to give back reached edge/node
    76 	* changed, modified, improved
    94 			* return the temporary distance of the current node
    77 		- redesigned
    95 			* using operation traits
    78 			undirected edgesets (like the smart or ugraph)
    96 			* patch for retrieving reached/processed node
    79 			interface of MaxMatching and UnionFindEnum
    97 		* prescaling can be turned off in GraphToEps
    80 			interface of maximum flow algorithms
    98 		* better handling of inexact computations
    81 			Kruskal algorithm
    99 		* easier inverse
    82 			augmenting path based bipartite matching
   100 		* faster geometric minimum spanning tree algorithm
    83 		- min cost flows
   101 		* new implementation of undirected graphs
    84 			various min cost flow solvers
   102 		* Hao-Orlin algorithm became epsilon-safe
    85 			redesigned CapacityScaling algorithm
   103 		* LpSoplex
    86 		- graph copy
   104 			* added getter functions
    87 			preliminary support for static graphs
   105 			* better m4 file
    88 			added BpUGraphCopy
   106 			* better handling of unsolved lps
    89 		- execution
   107 		* allowing 'string' type quoting for item reading and writing
    90 			conditional execution until the target is reached 
   108 		* clear() function for union-find structures
    91 			modified start() function in Dfs and Dijkstra classes to give back reached edge/node
   109 		* hacking MIP is possible without integer variables
    92 		- Dijkstra
   110 		* space reservation for SmartGraph
    93 			return the temporary distance of the current node
   111 		* path
    94 			using operation traits
   112 			* PathNodeIt
    95 		- patch for retrieving reached/processed node in dijkstra, bfs and dfs
       
    96 		- prescaling can be turned off in GraphToEps
       
    97 		- better handling of inexact computation
       
    98 		- easier inverse
       
    99 		- faster geometric minimum spanning tree
       
   100 		- new implementation of undirected graphs
       
   101 		- Hao-Orlin algorithm became epsilon-safe
       
   102 		- LpSoplex
       
   103 			added getter functions
       
   104 			better m4 file
       
   105 			better handling of unsolved lps
       
   106 		- allowing 'string' type quoting
       
   107 		- clear() function for unionfinds
       
   108 		- integer parameters also converted to double
       
   109 		- hacking mip is possible without integer variables
       
   110 		- space reservation for SmartGraph
       
   111 		- path
       
   112 			PathNodeIt
       
   113 				PathWriter/Reader structures
   113 				PathWriter/Reader structures
   114 				Distinct MapSet readers and writers
   114 				Distinct MapSet readers and writers
   115 			more simple interface for PathDumper
   115 			* more simple interface for PathDumper
   116 
   116 	Updated
   117 	* updated
   117 		* tutorial for
   118 		- tutorial for
   118 			* algorithms
   119 			algorithms
   119 			* graph visualization
   120 			graph visualization
   120 		* documentation
   121 		- documentation
   121 	Backward incompatibilities/changed namings
   122 
   122 		* min_cut.h => nagamochi_ibaraki.h
   123 	* rename
   123 		* clone => build
   124 		- min_cut.h => nagamochi_ibaraki.h
   124 		* RevIt => RevEdgeIt
   125 		- clone => build
   125 		* _FixId => LpId
   126 		- RevIt => RevEdgeIt
   126 		* setObj => obj
   127 		- _FixId => LpId
   127 		* is_min => isMin
   128 		- setObj => obj
   128 		* is_max => isMax
   129 		- is_min => isMin
   129 		* ball2() => disc()
   130 		- is_max => isMax
   130 		* state_enum => State
   131 		- 'hugo' => 'lemon'
   131 		* getNotifier => notifier
   132 		- ball2() => disc()
   132 		* using LEMON_ASSERT instead of LogicError()
   133 		- state_enum => State
   133 		* uedgeset is an alias for edgeset
   134 		- getNotifier => notifier
   134 		* CPXMIP_OPTIMAL_TOL status is considered as OPTIMAL too
   135 		- using LEMON_ASSERT instead of LogicError()
   135 		* removed "Type" suffix from typedefs
   136 		- uedgeset is an alias for edgeset
   136 		* lower case local variables
   137 		- CPXMIP_OPTIMAL_TOL status is considered as OPTIMAL too
   137 	Removed
   138 		- removed "Type" suffix from typedefs
       
   139 		- lower case local variables
       
   140 
       
   141 	* removed
       
   142 		- template Map template parameter from InvertableMaps
   138 		- template Map template parameter from InvertableMaps
   143 		- unionfind Item template parameter
   139 		- unionfind Item template parameter
   144 		- strict checking
   140 		- strict checking
   145 		- some automatic callback generation 
   141 		- some automatic callback generation 
   146 		'-Wshadow' seemed too strict therefore removed
   142 		- '-Wshadow' seemed too strict therefore removed
   147 
   143 	Several bugfixes
   148 	* several bugfixes
       
   149 
   144 
   150 2006-10-31  Version 0.6 Released
   145 2006-10-31  Version 0.6 Released
   151 	    * GLEMON has moved to a separate repository
   146 	GLEMON has moved to a separate repository
   152               (https://hugo.cs.elte.hu/svn/glemon/trunk)
   147 		(https://hugo.cs.elte.hu/svn/glemon/trunk)
   153 	    * New Features
   148 	New Features
   154   	      - Mixed Integer Programming (MIP) support
   149 		+ Mixed Integer Programming (MIP) support
   155     	      	- interface to GLPK and CPLEX MIP solvers
   150 		+ interface to GLPK and CPLEX MIP solvers
   156   	      - Data structures
   151 		+ Data structures
   157 	        - Bipatrite graph concepts and implementations
   152 			* Bipatrite graph concepts and implementations
   158     		- a Polinomial template class
   153 			* a Polinomial template class
   159     		- RefPtr: a reference counted pointer class
   154 			* RefPtr: a reference counted pointer class
   160     		- SimpleBucketHeap  
   155 			* SimpleBucketHeap  
   161 	      - random.h: Mersenne Twister random number generator
   156 		+ random.h: Mersenne Twister random number generator
   162               - EdgeLookUp and AllEdgeLookUp
   157 		+ EdgeLookUp and AllEdgeLookUp
   163 	        - Tools to find edges between to nodes in time O(log d) 
   158 		+ Tools to find edges between to nodes in time O(log d) 
   164     	      - new matching algorithms
   159 		+ new matching algorithms
   165       	        - Bipartite Graph Max Cardinality Matching (Hopcroft-Karp)
   160 		+ Bipartite Graph Max Cardinality Matching (Hopcroft-Karp)
   166       	      	- MaxWeightedBipartiteMatching
   161 		+ MaxWeightedBipartiteMatching
   167 	      	- MinCostMaxBipartiteMatching
   162 		+ MinCostMaxBipartiteMatching
   168 	      	- MaxCardinalitySearch
   163 		+ MaxCardinalitySearch
   169     	      	- MinimalCut in UGraph
   164 		+ MinimalCut in UGraph
   170     	      - Tabu Search framework 
   165 		+ Tabu Search framework 
   171     	      - Minimum Cost Arborescence algorithm 
   166 		+ Minimum Cost Arborescence algorithm 
   172       	      - Edmonds-Karp MaxFlow
   167 		+ Edmonds-Karp MaxFlow
   173     	      - Hao-Orlin algorithm
   168 		+ Hao-Orlin algorithm
   174 	      - eps.h: A simple tool to create .eps pictures.
   169 		+ eps.h: A simple tool to create .eps pictures.
   175 	    * Backward incompatibilities/changed namings:
   170 	Backward incompatibilities/changed namings:
   176 	      - UndirXyz -> UXyz
   171 		* UndirXyz -> UXyz
   177 	      - UNDIRGRAPH_TYPEDEFS -> UGRAPH_TYPEDEFS
   172 		* UNDIRGRAPH_TYPEDEFS -> UGRAPH_TYPEDEFS
   178 	      - GridGraph -> GridUGraph
   173 		* GridGraph -> GridUGraph
   179   	      - LinearHeap -> BucketHeap
   174 		* LinearHeap -> BucketHeap
   180   	      - ColorSet -> Palette
   175 		* ColorSet -> Palette
   181   	      - xy -> dim2::Point
   176 		* xy -> dim2::Point
   182   	      - DirPath -> Path
   177 		* DirPath -> Path
   183     	      - concept -> concepts (namespace & directory)
   178 		* concept -> concepts (namespace & directory)
   184 	      - LpSolverBase
   179 		* LpSolverBase
   185 	        - ColName() -> colName
   180 			* ColName() -> colName
   186 		- Coeff() -> coeff()
   181 			* Coeff() -> coeff()
   187 	      - MinCostFlow -> SspMinCostFlow
   182 		* MinCostFlow -> SspMinCostFlow
   188 	    * Repository reorganization:
   183 	Repository reorganization:
   189   	      - compilation is conducted by a single makefile
   184 		* compilation is conducted by a single makefile
   190 	      - internal building blocks are now in a separate directory
   185 		* internal building blocks are now in a separate directory
   191                 (lemon/bits)
   186 		(lemon/bits)
   192 	    * Major improvements many algorithms and data structures.
   187 	Major improvements of many algorithms and data structures
   193 	    * Several bugfixes
   188 	Several bugfixes
   194 	    * Compatibility issues:
   189 	Compatibility issues:
   195 	      - known to compile with
   190 		* known to compile with
   196 	        - GCC 3.3, 3.4, 4.0, 4.1 
   191 			* GCC 3.3, 3.4, 4.0, 4.1 
   197 		- MinGW, MinGW32
   192 			* MinGW, MinGW32
   198 		- Intel C++ 9.x support
   193 			* Intel C++ 9.x support
   199 
   194 
   200 2006-02-03  Version 0.5 Released
   195 2006-02-03  Version 0.5 Released
   201 	* New features:
   196 	New features
   202 	  - Bfs/Dfs/Dijkstra
   197 		+ Shortest paths algorithms
   203 	    + query functions for the next node/edge to be processed
   198 			* bellman_ford.h
   204 	    + visitor interface for dfs
   199 			* floyd_warshall.h
   205 	  - topology.h: small functions for discovering graph topology
   200 			* johnson.h
   206 	    + connected components, strongly connected components
   201 		+ Euler tour iterator for directed and undirected graphs
   207 	    + bipartiteness testing
   202 		+ Other algorithms:
   208 	  - Shortest paths algorithms:
   203 			* dag_shortest_path.h
   209 	    bellman_ford.h, floyd_warshall.h, johnson.h
   204 			* fredman_tarjan.h and prim.h for min cost trees
   210 	  - Euler tour iterator for directed and undirected graphs
   205 		+ Bipartite graph concept and implementations
   211 	  - Other algorithms:
   206 		+ Graph maps:
   212 	    + dag_shortest_path.h
   207 			* template assign operator
   213 	    + fredman_tarjan.h and prim.h for min cost trees
   208 			* specialized iterable bool map
   214 	  - Bipartite graph concept and implementations
   209 			* potential difference map
   215 	  - Graph maps:
   210 			* NodeMatrixMap -- Matrix over the nodes
   216 	    + template assign operator
   211 		+ Maps:
   217 	    + specialized iterable bool map
   212 			* IterableIntMap
   218 	    + potential difference map
   213 		+ Tools:
   219 	    + NodeMatrixMap -- Matrix over the nodes
   214 			* Timer can be stop()ed and (re)start()ed
   220 	  - Maps:
   215 			* radix sort algorithm
   221 	    + IterableIntMap
   216 			* tolerance.h for working with imprecise numbers
   222 	  - GUI:
   217 	New demos, benchmarks and tools
   223 	    + NewMap window in MapSelector
   218 		+ graph_orientation.cc: A thoroughly documented demo application
   224 	    + Algorithm window and some algorithms (eg. Kruskal) added
   219 		+ runningTimeTest(): a tool to measure running times more precisely
   225 	  - LemonReader:
   220 		+ Demo for topology
   226 	    + exception on non-existent files
   221 		+ counter.h: a tool to measure the number of steps of algorithms
   227 	  - LP interface:
   222 		+ Some useful scripts: check-compiler, check-integrity
   228 	    + (Dual)Expr::simplify(double tolerance) added
   223 	Improvements
   229 	    + getDual()
   224 		+ Bfs/Dfs/Dijkstra
   230 	  - GraphToEps:
   225 			* query functions for the next node/edge to be processed
   231 	    + negateY() opt
   226 			* visitor interface for dfs
   232 	    + male/female node shapes :)
   227 		+ topology.h: small functions for discovering graph topology
   233 	    + correct %%BoundingBox handling
   228 			* connected components, strongly connected components
   234 	  - Tools:
   229 			* bipartiteness testing
   235 	    + Timer can be stop()ed and (re)start()ed
   230 		+ GUI:
   236 	    + radix sort algorithm
   231 			* NewMap window in MapSelector
   237 	    + tolerance.h for working with imprecise numbers
   232 			* Algorithm window and some algorithms (eg. Kruskal) added
   238 	* Backward incompatibilities/changed namings:
   233 		+ LemonReader:
   239 	  - Access functions of TimeStamp/Timer
   234 			* exception on non-existent files
   240 	  - Undir graph interface: findUEdge, ConUEdgeIt
   235 		+ LP interface:
   241 	  - pred -> predEdge renaming in search algorithms
   236 			* (Dual)Expr::simplify(double tolerance) added
   242 	  - SnapShot -> Snapshot in {List,Smart}Graph
   237 			* getDual()
   243 	  - NewEdgeSetAdaptor -> ListEdgeSet
   238 		+ GraphToEps:
   244 	  - LP: set{Obj,Row,Col}() -> {obj,row,col}()
   239 			* negateY() opt
   245 	  - "label" instead of "id" inside the LGF files
   240 			* male/female node shapes :)
   246 	  - UndirGraph -> UGraph, UndirEdge* -> UEdge*
   241 			* correct %%BoundingBox handling
   247 	  - BipartiteGraph -> BpGraph, Lower/UpperNode* -> A/BNode*
   242 	Backward incompatibilities/changed namings:
   248 	* Bugfixes in
   243 		* Access functions of TimeStamp/Timer
   249 	  - DFS
   244 		* Undir graph interface: findUEdge, ConUEdgeIt
   250 	  - Preflow
   245 		* pred -> predEdge renaming in search algorithms
   251 	  - x86_64 connected bugfixes (lemon_reader.h)
   246 		* SnapShot -> Snapshot in {List,Smart}Graph
   252 	  - lp.h
   247 		* NewEdgeSetAdaptor -> ListEdgeSet
   253 	* New demos, benchmarks and tools:
   248 		* LP: set{Obj,Row,Col}() -> {obj,row,col}()
   254 	  - graph_orientation.cc: A thoroughly documented demo application
   249 		* "label" instead of "id" inside the LGF files
   255 	  - runningTimeTest(): a tool to measure running times more precisely
   250 		* UndirGraph -> UGraph, UndirEdge* -> UEdge*
   256 	  - Demo for topology
   251 		* BipartiteGraph -> BpGraph, Lower/UpperNode* -> A/BNode*
   257 	  - counter.h: a tool to measure the number of steps of algorithms
   252 	Bugfixes in
   258 	  - Some useful scripts: check-compiler, check-integrity
   253 		* DFS
   259 	* Other changes:
   254 		* Preflow
   260 	  - Demos and benchmarks are not built by default now. They can be
   255 		* x86_64 connected bugfixes (lemon_reader.h)
   261 	    enabled with the --enable-demo and --enable-benchmark
   256 		* lp.h
   262 	    configure flags.
   257 	Other changes
   263 	  - GCC 4.0.3 and ICC 9.0 compatibility
   258 		* Demos and benchmarks are not built by default now. They can be
   264 	  
   259 			* enabled with the --enable-demo and --enable-benchmark
       
   260 			* configure flags.
       
   261 		* GCC 4.0.3 and ICC 9.0 compatibility
       
   262 
   265 2005-08-27  Version 0.4 Released
   263 2005-08-27  Version 0.4 Released
   266 	* List of new features and changes	
   264 	New features
   267 	  * Changed namings:
   265 		+ More and better graph I/O functionalities
   268 	    Wrapper -> Adaptor
   266 		+ High level uniform LP solver interface to CPLEX and GLKP
   269 	    kruskalEdgeMap() -> kruskal()
   267 		+ New map adaptors
   270 	    kruskalEdgeMap_IteratorOut() -> kruskal()
   268 		+ New convenience maps
   271 	  * BoundinBox<>
   269 			* IdMap, DescriptorMap
   272 	    * operator+=() -> add()
   270 			* InDegMap, OutDegMap
   273 	    + clear()
   271 			* XMap, YMap
   274 	  + More and better graph I/O functionalities
   272 		+ Default graph maps are iterable
   275 	  + High level uniform LP solver interface to CPLEX and GLKP
   273 		+ glemon: a graph editor
   276 	  * graphToEps()
   274 		+ Some new demo codes added, the old ones got polished.
   277 	    + Automatic node size and edge width scaling
   275 	Improvements
   278 	    + Simple color palette tool (ColorSet)
   276 		+ graphToEps()
   279 	  * Bfs/Dfs/Dijkstra
   277 			* Automatic node size and edge width scaling
   280 	    + Step-by-step execution
   278 			* Simple color palette tool (ColorSet)
   281 	    + Run from multiple sources
   279 		+ Bfs/Dfs/Dijkstra
   282 	    + Used define stop condition
   280 			* Step-by-step execution
   283 	    + Improved "named parameters"
   281 			* Run from multiple sources
   284 	  * Preflow
   282 			* Used define stop condition
   285 	    + Function type interface
   283 			* Improved "named parameters"
   286 	    + Changed interface
   284 		+ Preflow
   287 	  * ListGraph/SmarGraph
   285 			* Function type interface
   288 	    + split() splits a node
   286 			* Changed interface
   289 	    + SnapShot
   287 		+ ListGraph/SmarGraph
   290 	  + New map adaptors
   288 			* split() splits a node
   291 	  + New convenience maps
   289 			* SnapShot
   292 	    + IdMap, DescriptorMap
   290 	Changes
   293 	    + InDegMap, OutDegMap
   291 		* Changed namings:
   294 	    + XMap, YMap
   292 			* Wrapper -> Adaptor
   295 	  + Default graph maps are iterable
   293 			* kruskalEdgeMap() -> kruskal()
   296 	  + glemon: a graph editor
   294 			* kruskalEdgeMap_IteratorOut() -> kruskal()
   297 	  + Some new demo codes added, the old ones got polished.
   295 		* BoundingBox<>
   298 	  * Better documentation
   296 			* operator+=() -> add()
   299 	  * Several important bugfixes
   297 			+ clear()
   300 	  * Now lemon should compile without warnings with
   298 		* Better documentation
   301 	    * gcc 3.3, 3.4, 4.0
   299 		* Several important bugfixes
   302 	    * Intel C++ Compiler v9.0 
   300 		* Now lemon should compile without warnings with
       
   301 			* gcc 3.3, 3.4, 4.0
       
   302 			* Intel C++ Compiler v9.0 
   303 
   303 
   304 2005-03-19  Version 0.3.1 Released
   304 2005-03-19  Version 0.3.1 Released
   305 	* This release fixes a compilation failure bug under cygwin. 
   305 	This release fixes a compilation failure bug under cygwin. 
   306 
   306 
   307 2005-02-21  Version 0.3 released
   307 2005-02-21  Version 0.3 released
   308 	* List of new features and changes	
   308 
   309 	  * Redesigned Graph infrastructures
   309 	New features
   310 	  + Standardized LEMON exceptions
   310 		+ Standardized LEMON exceptions
   311 	  + Undirected Graph
   311 		+ Undirected Graph
   312 	  + Standard graph file format, input and output classes for it.
   312 		+ Standard graph file format, input and output classes for it.
   313 	  * head() -> target(), tail() -> source()
   313 		+ GraphToEps: A simple graph drawer
   314 	  * Some standard namings have changes:
   314 	Changes
   315 	    ValueType -> Value, 
   315 		* Redesigned Graph infrastructures
   316 	    KeyType -> Key,
   316 		* head() -> target(), tail() -> source()
   317 	    ReferenceType ->Reference,
   317 		* Some standard namings have changes:
   318 	    PointerType -> Pointer
   318 			ValueType -> Value, 
   319 	  + GraphToEps: A simple graph drawer
   319 			KeyType -> Key,
   320 	  * Better documentation
   320 			ReferenceType ->Reference,
   321 	
   321 			PointerType -> Pointer
       
   322 		* Better documentation
       
   323 
   322 2004-09-30  Version 0.2 released
   324 2004-09-30  Version 0.2 released
   323