Cleaned up example_imagesegmentation
[libdai.git] / ChangeLog
index c9acbc3..1d475a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,18 +1,57 @@
-git HEAD
---------
-
+git master HEAD
+---------------
+
+* Added examples/example_imagesegmentation
+* [Ofer Meshi] Added a script for converting from FastInf to libDAI format
+* Made all "verbose" properties optional
+* Unit tests should now also work on WINDOWS
+* [Stefano Pellegrini] Fixed bug in JTree::findMaximum()
 * Fixed some bugs in the MatLab interface build system
 * Fixed a bug in utils/fginfo.cpp
+* Added utils/uai2fg, a utility to convert the UAI inference competition file
+  formats to the libDAI factor graph file format
+* utils/createfg now has a new factor type ('ISINGUNIFORM') and the old
+  'ISING' factor type has been renamed to 'ISINGGAUSS'
+* tests/testdai option "marginals" now has five possible values: NONE
+  outputs no marginals, VAR only variable marginals, FAC only factor
+  marginals, VARFAC both types of marginals, and ALL outputs all
+  marginals calculated by the algorithm.
+* Improved mf.h/cpp:
+  - Added an "init" option that allows to initialize randomly
+  - Added an "updates" option that allows to choose between standard
+    mean field and "hard-spin" mean field
+* Improved exactinf.h/cpp:
+  - Added ExactInf::findMaximum()
+* Improved treeep.h/cpp:
+  - changed TreeEP::construct( const RootedTree& ) into
+    TreeEP::construct( const FactorGraph&, const RootedTree& )
+  - Now also supports disconnected factor graphs
 * Improved jtree.h/cpp:
   - changed JTree::construct( const std::vector<VarSet>&, bool ) into
     JTree::construct( const FactorGraph&, const std::vector<VarSet>&, bool )
   - changed JTree::GenerateJT( const std::vector<VarSet> & )
     into JTree::GenerateJT( const FactorGraph &, const std::vector<VarSet> & )
+  - Now also supports disconnected factor graphs
+  - Fixed a bug in JTree::findMaximum() and simplified the code
 * Improved regiongraph.h/cpp:
   - Made (previously public) members RegionGraph::G, RegionGraph::ORs,
     RegionGraph::IRs and RegionGraph::fac2OR protected.
   - Removed partial constructor RegionGraph::RegionGraph( const FactorGraph& fg )
   - Added some error checking code
+  - Renamed RegionGraph::calcCountingNumbers() into
+    RegionGraph::calcCVMCountingNumbers() and made it protected, because
+    exposing it to the world serves no purpose.
+  - Added RegionGraph::DAG() accessor which returns a reference to the 
+    region graph DAG structure (currently implemented as a BipartiteGraph)
+  - Made RegionGraph::RecomputeORs(), RegionGraph::RecomputeORs( const VarSet& )
+    and RegionGraph::RecomputeOR( size_t ) protected and renamed them by changing
+    the "Recompute" into "recompute", because exposing them to the world serves no 
+    purpose.
+  - RegionGraph::WriteToFile( const char* ), RegionGraph::ReadFromFile( const char * )
+    and RegionGraph::printDot( std::ostream& ) incorrectly called their respective
+    FactorGraph ancestor methods; this has been corrected by letting them throw a
+    NOT_IMPLEMENTED exception.
+  - Changed the way a RegionGraph is streamed to an std::ostream.
 * Improved clustergraph.h/cpp:
   - Made (previously public) members ClusterGraph::G, ClusterGraph::vars and 
     ClusterGraph::clusters private and added ClusterGraph::bipGraph(), 
@@ -26,12 +65,21 @@ git HEAD
 * Improved factorgraph.h/cpp:
   - FactorGraph::clamped() now contains a delta factor for the clamped variable
   - Renamed FactorGraph::Cliques() into FactorGraph::maximalFactorDomains()
+    and made it faster
   - Added FactorGraph::MarkovGraph()
   - Fixed bug in FactorGraph::clone()
   - FactorGraph::findVars( const VarSet& ) now returns a SmallSet<size_t>
     and its argument now has a const-qualifier (which fixes a small bug).
   - Made (previously public) member FactorGraph::G private and added the 
     FactorGraph::bipGraph() method, which offers read-only access to it.
+  - Deprecated the iterator interface:
+    o FactorGraph::iterator typedef
+    o FactorGraph::const_iterator typedef
+    o FactorGraph::begin() members
+    o FactorGraph::end() members
+  - Deprecated FactorGraph::factor(size_t) which offered write access to a factor
+    because using this functionality in the descendant RegionGraph is dangerous,
+    as the outer regions are not automatically recomputed.
 * Improved factor.h/cpp:
   - Fixed bug in min( const TFactor<T> &, const TFactor<T> & )
   - Fixed bug in max( const TFactor<T> &, const TFactor<T> & )
@@ -74,6 +122,7 @@ git HEAD
   - Added PropertySet::erase()
   - Fixed bug in PropertySet::setAsString<T>()
 * Improved util.h/cpp:
+  - Added std::string toString( const T& x )
   - Fixed a bug in rnd_seed()
   - Removed max( const std::vector<Real> &v )
 * Improved weightedgraph.h/cpp:
@@ -92,10 +141,13 @@ git HEAD
   - Added BipartiteGraph::hasEdge()
   - Added BipartiteGraph::findNb1()
   - Added BipartiteGraph::findNb2()
+  - Added BipartiteGraph::nb1Set()
+  - Added BipartiteGraph::nb2Set()
   - BipartiteGraph::delta1() and BipartiteGraph::delta2() now 
     return a SmallSet<size_t> instead of a vector<size_t>
   - Added BipartiteGraph::operator==( const BipartiteGraph& )
   - Added BipartiteGraph( size_t nr1, size_t nr2 ) constructor
+  - Added operator<<( std::ostream&, const BipartiteGraph& )
 * Improved graph.h/cpp:
   - Fixed bug in GraphAL::nrEdges()
   - Fixed bug in GraphAL::addEdge()
@@ -106,6 +158,7 @@ git HEAD
   - Fixed bug in createGraphRegular()
   - Added GraphAL::hasEdge(size_t,size_t)
   - Added GraphAL::operator==( const GraphAL& )
+  - Added operator<<( std::ostream&, const GraphAL& )
 * Improved smallset.h/cpp:
   - The sizeHint argument of the iterator constructor
      SmallSet::SmallSet( TIterator begin, TIterator end, size_t sizeHint=0 )
@@ -117,7 +170,7 @@ git HEAD
 * Compressed Makefile
 * Added unit tests for var, smallset, varset, graph, bipgraph,
   weightedgraph, enum, util, exceptions, properties, index, prob, 
-  factor, factorgraph, clustergraph
+  factor, factorgraph, clustergraph, regiongraph, daialg, alldai
 * Added unit testing framework
 * Added initialization of TRWBP weights by sampling spanning trees
 * Cleaned up MR code: