New git HEAD version
[libdai.git] / ChangeLog
index cc5a39e..62789e7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 git HEAD
 --------
 git HEAD
 --------
-* Added FactorGraph::logScore( const std::vector<size_t>& statevec )
-* Improved Gibbs
-  - renamed 'iters' property into 'maxiter'
-  - added 'maxtime' property
-  - added 'restart' property
-  - added Gibbs::findMaximum()
-* Improved BP (added 'maxtime' property)
-* Added fromString<>( const std::string& x )
-* Added SmallSet::erase( const T& t )
-* Added DECMAP algorithm.
-* Added createFactorDelta( const VarSet& vs, size_t state )
-* [Peter Rockett] Improved Makefiles for image segmentation example.
-* Removed deprecated interfaces.
-* Added FactorGraph::isMaximal(size_t) and FactorGraph::maximalFactor(size_t).
-* Added optional reverse argument to Permute::Permute( const std::vector<Var>& )
-  constructor.
-* Added Permute::ranges() accessor.
-* Added Permute::inverse() method.
-* Optimized region graph construction for HAK/GBP with clusters=BETHE.
+
+
+libDAI-0.3.2 (2015-07-17)
+-------------------------
+
+Miscellaneous improvements:
+* [Charles Vaske] Various improvements to EM code, including interface changes
+* Added 'inclusive' argument to DAG::ancestors() and DAG::descendants()
+* [Julien Rebetez] added FactorGraph::printDot() to SWIG interface
+* Extended SWIG python interface (inspired by Kyle Ellrott): inference is possible in Python now!
+* Added toString() formatting functions to the classes that had an output streaming operator<<
+* Merged Generalized Loop Correction code kindly provided by Siamak Ravanbakhsh
+
+Build system improvements:
+* Build system: optional compilation targets are now set in include/dai/dai_config.h instead of Makefile.ALL
+
+Bug fixes:
+* Disabled debugging output in src/cobwebgraph.cpp to fix compilation issue under OSX
+* [Lee C Baker] patch in include/dai/enum.h to fix compilation issues on OSX related to std::wistream and std::wostream (another workaround would be to specify -std=c++11)
+* Fixed regression in SWIG interface caused by new build system (thanks to Benjamin Mumm for reporting this)
+* Workaround for bug in Boost Graph Library version 1.54 ("The graph may not contain an edge with negative weight") by not using Prim's minimum spanning tree algorithm anymore
+* Removed conversion script FastInf->libDAI because it is buggy (uses wrong permutation of factor entries)
+* Replaced all occurrences of std::size_t by size_t to avoid SWIG problems
+* Fixed division-by-zero issue in pow() which caused problems for GLC+ with sparse factors
+* Fixed bugs in unit test prob_test.cpp: replaced all occurences of
+  BOOST_CHECK_CLOSE(...,(Real)0.0,tol) with BOOST_CHECK_SMALL(...,tol)
+
+
+libDAI-0.3.1 (2012-09-17)
+-------------------------
+
+Miscellaneous improvements:
+* Full 64-bit support on all supported platforms (Linux, OSX, Windows)
+* Added special MatLab interface for junction tree algorithm (dai_jtree)
+* Optimized ClusterGraph( const FactorGraph&, bool) constructor
+
+Build system improvements:
+* Added Makefile.WINDOWS64, kindly provided by Lin Ming
+* [Arman Aksoy] Added Makefile.MACOSX64
+* Added VC10 build files, kindly provided by Sameh Khamis
+
+Bug fixes:
+* Fixed bug (found by Sameh Khamis): define NAN (Windows)
+* Fixed bug (found by Sameh Khamis): add some necessary casts of size_t to BigInt (Windows)
+* Fixed bug (found by Yan): replaced GNU extension __PRETTY_FUNCTION__ by __FUNCTION__ (Visual Studio) or __func__ (other compilers)
+* Fixed bug (found by Andy Mueller): added GMP library invocations to swig Makefile
+* Fixed bug (found by cax): when building MatLab MEX files, GMP/MPIR libraries were not linked
+* Fixed bug in findMaximum (it only considered a single connected component of the factor graph)
+* [Benjamin Piwowarski] Renamed "foreach" macro into "bforeach" to avoid conflicts with newer Boost library versions
+* Fixed "typename" bug in src/alldai.cpp which resulted in FTBFS with older g++ compilers
+* Fixed memory leak in alldai.cpp and removed the function builtinInfAlgs()
+* Fixed memory leak in CBP::run()
+* Fixed typo in Priya's name
+
+
+libDAI-0.3.0 (2011-07-12)
+-------------------------
+
+New license:
+* Changed license from GPL v2+ to FreeBSD (BSD 2-clause)
+
+Miscellaneous improvements:
+* Improved Exception class 
+  (it now stores more information and doesn't print to stderr by default)
+* Added builtinInfAlgs() and builtinInfAlgNames()
+
+Bug fixes:
+* [Laurens van der Maaten] src/matlab/dai.cpp now correctly handles missing logZ() 
+  and maxDiff() implementations
+* Now uses GMP big integer type to represent linear states and the number of
+  states of VarSets (in some cases). This fixes a bug Jerome Maye and Priya 
+  found in the State class. Unfortunately, the supplied Makefile.WINDOWS now 
+  no longer works out-of-the-box.
+* Fixed numerical issues in MF, FBP and TRWBP (discovered in sparse branch)
+* Fixed bug in findMaximum(): inconsistent max-beliefs are now detected,
+  instead of returning a MAP state with zero joint probability
+  (reported by Hynek Urban)
+* Fixed a Boost-related bug in src/util.cpp (reported by Avneesh Saluja)
+  (the random seed needs to be an unsigned int on some platforms)
+* Fixed two bugs in examples/example_sprinkler_gibbs (reported by Priya)
+* Fixed bug in tokenizeString() and Evidence::addEvidenceTabFile()
+  (a tab character at the end of a line was incorrectly discarded - bug reported by Priya)
+* Replaced all Name members by name() virtual functions and removed global variable DAINames
+  (this fixes a bug in matlab/dai.cpp reported by Thomas Mensink)
+
+
+libDAI-0.2.7 (2010-08-19)
+-------------------------
+
+* Removed interfaces deprecated in 0.2.6.
+* Fixed a bug in JTree::findMaximum() (reported by zhengyun84 and Dhruv Batra):
+  if one or more variables had a MAP belief with more than one maximum, an 
+  incorrect MAP state could result.
+
+
+libDAI-0.2.6 (2010-08-05)
+-------------------------
+
+New features:
+* Added decimation algorithm DecMAP for MAP inference (decmap.h/cpp).
+* Added source code for one of the winning solvers of the 
+  UAI 2010 Approximate Inference Challenge (examples/uai2010-aie-solver.cpp).
+* Added support for reading files in the UAI Approximate Inference Challenge
+  format, supporting both the 2006/2008 evidence file format and the 2010
+  evidence file format (io.h/cpp).
+
+Miscellaneous improvements:
+* 'maxtime' property added to various algorithms (BP, Gibbs, HAK, TreeEP)
+  for setting an upper limit on execution time.
+* 'maxmem' property added to JTree for setting an upper limit on memory usage.
+* SmallSet:
+  - Added SmallSet::erase( const T& t ).
+* VarSet:
+  - nrStates() now returns a long double instead of a size_t.
+* Permute:
+  - Added ranges() accessor.
+  - Added inverse() method.
+  - Added optional reverse argument to Permute( const std::vector<Var>& ) constructor.
+* Factor:
+  - Added createFactorDelta( const VarSet& vs, size_t state ).
+* ClusterGraph:
+  - Added ClusterGraph(const FactorGraph& fg, bool onlyMaximal) constructor.
+  - Added findCluster( const VarSet& cl ).
+  - Added elimVar( size_t i ).
+  - Added 'maxStates' argument to VarElim( EliminationChoice f, size_t maxStates=0 ).
+* FactorGraph:
+  - Added isMaximal(size_t).
+  - Added maximalFactor(size_t).
+  - Added FactorGraph::logScore( const std::vector<size_t>& statevec ).
+* Gibbs:
+  - Added 'restart' property.
+  - Added Gibbs::findMaximum() for MAP inference.
+* HAK:
+  - Optimized region graph construction for HAK/GBP with clusters=BETHE.
+* examples/examples_imagesegmentation.cpp:
+  - [Peter Rockett] Improved Makefiles for image segmentation example.
+  - Added build flag to specify the CImg version.
+* util.h/cpp:
+  - Added fromString<>( const std::string& x ).
+
+Interface changes (the old interface is marked obsolete and will be removed in the next release):
+* Added InfAlg::setMaxIter(size_t) for setting the maximum number of iterations.
+* Deprecated Graph::Neighbor, BipartiteGraph::Neighbor and DAG::Neighbor
+  and replaced them by a globally defined Neighbor structure
+* Deprecated Graph::Neighbors, BipartiteGraph::Neighbors and DAG::Neighbors
+  and replaced them by a globally defined Neighbors type
+* Deprecated Graph::Edge, BipartiteGraph::Edge and DAG::Edge
+  and replaced them by a globally defined Edge type
+* Renamed 'iters' property of Gibbs algorithm into 'maxiter'.
+* ClusterGraph::findVar( const Var& n ) no longer throws an exception if the
+  variable is not found.
+* Deprecated 'void tokenizeString( const string&, vector<string>&, const string& )'
+  and replaced it with an improved version
+  'vector<string> tokenizeString( const string&, bool, const string& )'
+* Removed interfaces deprecated in 0.2.5.
+
+Bug fixes:
 * Fixed a problem with isnan() on FreeBSD; it is now in the dai namespace.
 * Workaround for older g++ compilers (e.g. version 4.0.0 on Darwin 9.8.0)
   which have problems when comparing const_reverse_iterator with
   reverse_iterator.
 * Fixed a problem with isnan() on FreeBSD; it is now in the dai namespace.
 * Workaround for older g++ compilers (e.g. version 4.0.0 on Darwin 9.8.0)
   which have problems when comparing const_reverse_iterator with
   reverse_iterator.
+* [Matt Dunham] Fixed a bug in Factors2mx in src/matlab/matlab.cpp
+  (segfault if factors depending on 0 variables were passed to MatLab)
 
 
 libDAI-0.2.5 (2010-05-09)
 
 
 libDAI-0.2.5 (2010-05-09)