alpar@1281: 2013-08-10 Version 1.3 released
alpar@1281: 
alpar@1281:         This is major feature release
alpar@1281: 
alpar@1281:         * New data structures
alpar@1281: 
alpar@1281:           #69 : Bipartite graph concepts and implementations
alpar@1281: 
alpar@1281:         * New algorithms
alpar@1281: 
alpar@1281:           #177: Port Edmonds-Karp algorithm
alpar@1281:           #380, #405: Heuristic algorithm for the max clique problem
alpar@1281:           #386: Heuristic algorithms for symmetric TSP
alpar@1281:           ----: Nagamochi-Ibaraki algorithm [5087694945e4]
alpar@1281:           #397, #56: Max. cardinality search
alpar@1281: 
alpar@1281:         * Other new features
alpar@1281: 
alpar@1281:           #223: Thread safe graph and graph map implementations
alpar@1281:           #442: Different TimeStamp print formats
alpar@1281:           #457: File export functionality to LpBase
alpar@1281:           #362: Bidirectional iterator support for radixSort()
alpar@1281: 
alpar@1281:         * Implementation improvements
alpar@1281: 
alpar@1281:           ----: Network Simplex
alpar@1281:                 #391: Better update process, pivot rule and arc mixing
alpar@1281:                 #435: Improved Altering List pivot rule
alpar@1281:           #417: Various fine tunings in CostScaling
alpar@1281:           #438: Optional iteration limit in HowardMmc
alpar@1281:           #436: Ensure strongly polynomial running time for CycleCanceling
alpar@1281:                 while keeping the same performance
alpar@1281:           ----: Make the CBC interface be compatible with latest CBC releases
alpar@1281:                 [ee581a0ecfbf]
alpar@1281: 
alpar@1281:         * CMAKE has become the default build environment (#434)
alpar@1281: 
alpar@1281:           ----: Autotool support has been dropped
alpar@1281:           ----: Improved LP/MIP configuration
alpar@1281:                 #465: Enable/disable options for LP/MIP backends
alpar@1281:                 #446: Better CPLEX discovery
alpar@1281:                 #460: Add cmake config to find SoPlex
alpar@1281:           ----: Allow CPACK configuration on all platforms
alpar@1281:           #390: Add 'Maintainer' CMAKE build type
alpar@1281:           #388: Add 'check' target.
alpar@1281:           #401: Add contrib dir
alpar@1281:           #389: Better version string setting in CMAKE
alpar@1281:           #433: Support shared library build    
alpar@1281:           #416: Support testing with valgrind
alpar@1281:   
alpar@1281:         * Doc improvements
alpar@1281: 
alpar@1281:           #395: SOURCE_BROWSER Doxygen switch is configurable from CMAKE
alpar@1281:                 update-external-tags CMAKE target
alpar@1281:           #455: Optionally use MathJax for rendering the math formulae
alpar@1281:           #402, #437, #459, #456, #463: Various doc improvements
alpar@1281: 
alpar@1281:         * Bugfixes (compared to release 1.2):
alpar@1281: 
alpar@1281:           #432: Add missing doc/template.h and doc/references.bib to release
alpar@1281:                 tarball
alpar@1281:           ----: Intel C++ compatibility fixes
alpar@1281:           #441: Fix buggy reinitialization in _solver_bits::VarIndex::clear()
alpar@1281:           #444: Bugfix in path copy constructors and assignment operators
alpar@1281:           #447: Bugfix in AllArcLookUp<>
alpar@1281:           #448: Bugfix in adaptor_test.cc
alpar@1281:           #449: Fix clang compilation warnings and errors
alpar@1281:           #440: Fix a bug + remove redundant typedefs in dimacs-solver
alpar@1281:           #453: Avoid GCC 4.7 compiler warnings
alpar@1281:           #445: Fix missing initialization in CplexEnv::CplexEnv()
alpar@1281:           #428: Add missing lemon/lemon.pc.cmake to the release tarball
alpar@1281:           #393: Create and install lemon.pc
alpar@1281:           #429: Fix VS warnings
alpar@1281:           #430: Fix LpBase::Constr two-side limit bug
alpar@1281:           #392: Bug fix in Dfs::start(s,t)
alpar@1281:           #414: Fix wrong initialization in Preflow
alpar@1281:           #418: Better Win CodeBlock/MinGW support
alpar@1281:           #419: Build environment improvements
alpar@1281:                 - Build of mip_test and lp_test precede the running of the tests
alpar@1281:                 - Also search for coin libs under ${COIN_ROOT_DIR}/lib/coin
alpar@1281:                 - Do not look for COIN_VOL libraries
alpar@1281:           #382: Allow lgf file without Arc maps
alpar@1281:           #417: Bug fix in CostScaling
alpar@1281:           #366: Fix Pred[Matrix]MapPath::empty()
alpar@1281:           #371: Bug fix in (di)graphCopy()
alpar@1281:                 The target graph is cleared before adding nodes and arcs/edges.
alpar@1281:           #364: Add missing UndirectedTags
alpar@1281:           #368: Fix the usage of std::numeric_limits<>::min() in Network Simplex
alpar@1281:           #372: Fix a critical bug in preflow
alpar@1281:           #461: Bugfix in assert.h
alpar@1281:           #470: Fix compilation issues related to various gcc versions
alpar@1281:           #446: Fix #define indicating CPLEX availability
alpar@1281:           #294: Add explicit namespace to
alpar@1281:                 ignore_unused_variable_warning() usages
alpar@1281:           #420: Bugfix in IterableValueMap
alpar@1281:           #439: Bugfix in biNodeConnected()
alpar@1281: 
alpar@1281: 
alpar@962: 2010-03-19 Version 1.2 released
alpar@962: 
alpar@962:         This is major feature release
alpar@962: 
alpar@962:         * New algorithms
alpar@962:           * Bellman-Ford algorithm (#51)
alpar@962:           * Minimum mean cycle algorithms (#179)
alpar@962:             * Karp, Hartman-Orlin and Howard algorithms
alpar@962:           * New minimum cost flow algorithms (#180)
alpar@962:             * Cost Scaling algorithms
alpar@962:             * Capacity Scaling algorithm
alpar@962:             * Cycle-Canceling algorithms
alpar@962:           * Planarity related algorithms (#62)
alpar@962:             * Planarity checking algorithm
alpar@962:             * Planar embedding algorithm
alpar@962:             * Schnyder's planar drawing algorithm
alpar@962:             * Coloring planar graphs with five or six colors
alpar@962:           * Fractional matching algorithms (#314)
alpar@962:         * New data structures
alpar@962:           * StaticDigraph structure (#68)
alpar@962:           * Several new priority queue structures (#50, #301)
alpar@962:             * Fibonacci, Radix, Bucket, Pairing, Binomial
alpar@962:               D-ary and fourary heaps (#301)
alpar@962:           * Iterable map structures (#73)
alpar@962:         * Other new tools and functionality
alpar@962:           * Map utility functions (#320)
alpar@962:           * Reserve functions are added to ListGraph and SmartGraph (#311)
alpar@962:           * A resize() function is added to HypercubeGraph (#311)
alpar@962:           * A count() function is added to CrossRefMap (#302)
alpar@962:           * Support for multiple targets in Suurballe using fullInit() (#181)
alpar@962:           * Traits class and named parameters for Suurballe (#323)
alpar@962:           * Separate reset() and resetParams() functions in NetworkSimplex
alpar@962:             to handle graph changes (#327)
alpar@962:           * tolerance() functions are added to HaoOrlin (#306)
alpar@962:         * Implementation improvements
alpar@962:           * Improvements in weighted matching algorithms (#314)
alpar@962:             * Jumpstart initialization
alpar@962:           * ArcIt iteration is based on out-arc lists instead of in-arc lists
alpar@962:             in ListDigraph (#311)
alpar@962:           * Faster add row operation in CbcMip (#203)
alpar@962:           * Better implementation for split() in ListDigraph (#311)
alpar@962:           * ArgParser can also throw exception instead of exit(1) (#332)
alpar@962:         * Miscellaneous
alpar@962:           * A simple interactive bootstrap script
alpar@962:           * Doc improvements (#62,#180,#299,#302,#303,#304,#307,#311,#331,#315,
alpar@962:                 #316,#319)
alpar@962:             * BibTeX references in the doc (#184)
alpar@962:           * Optionally use valgrind when running tests
alpar@962:           * Also check ReferenceMapTag in concept checks (#312)
alpar@962:           * dimacs-solver uses long long type by default.
alpar@962:         * Several bugfixes (compared to release 1.1):
alpar@962:           #295: Suppress MSVC warnings using pragmas
alpar@962:           ----: Various CMAKE related improvements
alpar@962:                 * Remove duplications from doc/CMakeLists.txt
alpar@962:                 * Rename documentation install folder from 'docs' to 'html'
alpar@962:                 * Add tools/CMakeLists.txt to the tarball
alpar@962:                 * Generate and install LEMONConfig.cmake
alpar@962:                 * Change the label of the html project in Visual Studio
alpar@962:                 * Fix the check for the 'long long' type
alpar@962:                 * Put the version string into config.h
alpar@962:                 * Minor CMake improvements
alpar@962:                 * Set the version to 'hg-tip' if everything fails
alpar@962:           #311: Add missing 'explicit' keywords
alpar@962:           #302: Fix the implementation and doc of CrossRefMap
alpar@962:           #308: Remove duplicate list_graph.h entry from source list
alpar@962:           #307: Bugfix in Preflow and Circulation
alpar@962:           #305: Bugfix and extension in the rename script
alpar@962:           #312: Also check ReferenceMapTag in concept checks
alpar@962:           #250: Bugfix in pathSource() and pathTarget()
alpar@962:           #321: Use pathCopy(from,to) instead of copyPath(to,from)
alpar@962:           #322: Distribure LEMONConfig.cmake.in
alpar@962:           #330: Bug fix in map_extender.h
alpar@962:           #336: Fix the date field comment of graphToEps() output
alpar@962:           #323: Bug fix in Suurballe
alpar@962:           #335: Fix clear() function in ExtendFindEnum
alpar@962:           #337: Use void* as the LPX object pointer
alpar@962:           #317: Fix (and improve) error message in mip_test.cc
alpar@962:                 Remove unnecessary OsiCbc dependency
alpar@962:           #356: Allow multiple executions of weighted matching algorithms (#356)
alpar@962: 
alpar@712: 2009-05-13 Version 1.1 released
alpar@712: 
alpar@712:         This is the second stable release of the 1.x series. It
alpar@712:         features a better coverage of the tools available in the 0.x
alpar@712:         series, a thoroughly reworked LP/MIP interface plus various
alpar@712:         improvements in the existing tools.
alpar@712: 
alpar@712:         * Much improved M$ Windows support
alpar@712:           * Various improvements in the CMAKE build system
alpar@712:           * Compilation warnings are fixed/suppressed
alpar@712:         * Support IBM xlC compiler
alpar@712:         * New algorithms
alpar@712:           * Connectivity related algorithms (#61)
alpar@712:           * Euler walks (#65)
alpar@712:           * Preflow push-relabel max. flow algorithm (#176)
alpar@712:           * Circulation algorithm (push-relabel based) (#175)
alpar@712:           * Suurballe algorithm (#47)
alpar@712:           * Gomory-Hu algorithm (#66)
alpar@712:           * Hao-Orlin algorithm (#58)
alpar@712:           * Edmond's maximum cardinality and weighted matching algorithms
alpar@712:             in general graphs (#48,#265)
alpar@712:           * Minimum cost arborescence/branching (#60)
alpar@712:           * Network Simplex min. cost flow algorithm (#234)
alpar@712:         * New data structures
alpar@712:           * Full graph structure (#57)
alpar@712:           * Grid graph structure (#57)
alpar@712:           * Hypercube graph structure (#57)
alpar@712:           * Graph adaptors (#67)
alpar@712:           * ArcSet and EdgeSet classes (#67)
alpar@712:           * Elevator class (#174)
alpar@712:         * Other new tools
alpar@712:           * LP/MIP interface (#44)
alpar@712:             * Support for GLPK, CPLEX, Soplex, COIN-OR CLP and CBC
alpar@712:           * Reader for the Nauty file format (#55)
alpar@712:           * DIMACS readers (#167)
alpar@712:           * Radix sort algorithms (#72)
alpar@712:           * RangeIdMap and CrossRefMap (#160)
alpar@712:         * New command line tools
alpar@712:           * DIMACS to LGF converter (#182)
alpar@712:           * lgf-gen - a graph generator (#45)
alpar@712:           * DIMACS solver utility (#226)
alpar@712:         * Other code improvements
alpar@712:           * Lognormal distribution added to Random (#102)
alpar@712:           * Better (i.e. O(1) time) item counting in SmartGraph (#3)
alpar@712:           * The standard maps of graphs are guaranteed to be
alpar@712:             reference maps (#190)
alpar@712:         * Miscellaneous
alpar@712:           * Various doc improvements
alpar@712:           * Improved 0.x -> 1.x converter script
alpar@712: 
alpar@712:         * Several bugfixes (compared to release 1.0):
alpar@712:           #170: Bugfix SmartDigraph::split()
alpar@712:           #171: Bugfix in SmartGraph::restoreSnapshot()
alpar@712:           #172: Extended test cases for graphs and digraphs
alpar@712:           #173: Bugfix in Random
alpar@712:                 * operator()s always return a double now
alpar@712:                 * the faulty real<Num>(Num) and real<Num>(Num,Num)
alpar@712:                   have been removed
alpar@712:           #187: Remove DijkstraWidestPathOperationTraits
alpar@712:           #61:  Bugfix in DfsVisit
alpar@712:           #193: Bugfix in GraphReader::skipSection()
alpar@712:           #195: Bugfix in ConEdgeIt()
alpar@712:           #197: Bugfix in heap unionfind
alpar@712:                 * This bug affects Edmond's general matching algorithms
alpar@712:           #207: Fix 'make install' without 'make html' using CMAKE
alpar@712:           #208: Suppress or fix VS2008 compilation warnings
alpar@712:           ----: Update the LEMON icon
alpar@712:           ----: Enable the component-based installer
alpar@712:                 (in installers made by CPACK)
alpar@712:           ----: Set the proper version for CMAKE in the tarballs
alpar@712:                 (made by autotools)
alpar@712:           ----: Minor clarification in the LICENSE file
alpar@712:           ----: Add missing unistd.h include to time_measure.h
alpar@712:           #204: Compilation bug fixed in graph_to_eps.h with VS2005
alpar@962:           #214,#215: windows.h should never be included by LEMON headers
alpar@712:           #230: Build systems check the availability of 'long long' type
alpar@712:           #229: Default implementation of Tolerance<> is used for integer types
alpar@712:           #211,#212: Various fixes for compiling on AIX
alpar@712:           ----: Improvements in CMAKE config
alpar@712:                 - docs is installed in share/doc/
alpar@712:                 - detects newer versions of Ghostscript
alpar@712:           #239: Fix missing 'inline' specifier in time_measure.h
alpar@712:           #274,#280: Install lemon/config.h
alpar@712:           #275: Prefix macro names with LEMON_ in lemon/config.h
alpar@712:           ----: Small script for making the release tarballs added
alpar@712:           ----: Minor improvement in unify-sources.sh (a76f55d7d397)
alpar@712: 
alpar@534: 2009-03-27 LEMON joins to the COIN-OR initiative
alpar@534: 
alpar@534:         COIN-OR (Computational Infrastructure for Operations Research,
alpar@534:         http://www.coin-or.org) project is an initiative to spur the
alpar@534:         development of open-source software for the operations research
alpar@534:         community.
alpar@534: 
alpar@322: 2008-10-13 Version 1.0 released
alpar@262: 
alpar@962:         This is the first stable release of LEMON. Compared to the 0.x
alpar@962:         release series, it features a considerably smaller but more
alpar@962:         matured set of tools. The API has also completely revised and
alpar@962:         changed in several places.
alpar@262: 
alpar@962:         * The major name changes compared to the 0.x series (see the
alpar@322:           Migration Guide in the doc for more details)
alpar@262:           * Graph -> Digraph, UGraph -> Graph
alpar@262:           * Edge -> Arc, UEdge -> Edge
alpar@962:           * source(UEdge)/target(UEdge) -> u(Edge)/v(Edge)
alpar@962:         * Other improvements
alpar@962:           * Better documentation
alpar@962:           * Reviewed and cleaned up codebase
alpar@962:           * CMake based build system (along with the autotools based one)
alpar@962:         * Contents of the library (ported from 0.x)
alpar@962:           * Algorithms
alpar@962:             * breadth-first search (bfs.h)
alpar@962:             * depth-first search (dfs.h)
alpar@962:             * Dijkstra's algorithm (dijkstra.h)
alpar@962:             * Kruskal's algorithm (kruskal.h)
alpar@962:           * Data structures
alpar@962:             * graph data structures (list_graph.h, smart_graph.h)
alpar@962:             * path data structures (path.h)
alpar@962:             * binary heap data structure (bin_heap.h)
alpar@962:             * union-find data structures (unionfind.h)
alpar@962:             * miscellaneous property maps (maps.h)
alpar@962:             * two dimensional vector and bounding box (dim2.h)
alpar@262:           * Concepts
alpar@962:             * graph structure concepts (concepts/digraph.h, concepts/graph.h,
alpar@262:               concepts/graph_components.h)
alpar@962:             * concepts for other structures (concepts/heap.h, concepts/maps.h,
alpar@962:               concepts/path.h)
alpar@962:           * Tools
alpar@962:             * Mersenne twister random number generator (random.h)
alpar@962:             * tools for measuring cpu and wall clock time (time_measure.h)
alpar@962:             * tools for counting steps and events (counter.h)
alpar@962:             * tool for parsing command line arguments (arg_parser.h)
alpar@962:             * tool for visualizing graphs (graph_to_eps.h)
alpar@962:             * tools for reading and writing data in LEMON Graph Format
alpar@262:               (lgf_reader.h, lgf_writer.h)
alpar@262:             * tools to handle the anomalies of calculations with
alpar@962:               floating point numbers (tolerance.h)
alpar@262:             * tools to manage RGB colors (color.h)
alpar@962:           * Infrastructure
alpar@962:             * extended assertion handling (assert.h)
alpar@962:             * exception classes and error handling (error.h)
alpar@962:             * concept checking (concept_check.h)
alpar@962:             * commonly used mathematical constants (math.h)