Cleaned up example_imagesegmentation
[libdai.git] / ChangeLog
index cf02e77..1d475a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,176 @@
-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(), 
+    ClusterGraph::vars() and ClusterGraph::clusters() methods which offer 
+    read-only access to these members.
+  - Deprecated ClusterGraph::toVector()
+  - Added ClusterGraph::nrVars() method
+  - Renamed ClusterGraph::size() method into ClusterGraph::nrClusters()
+  - Added ClusterGraph::var( size_t ) method
+  - Added ClusterGraph::cluster( size_t ) method
+* 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> & )
+  - Added TFactor<T>::takeAbs()
+  - Added TFactor<T>::takeExp()
+  - Added TFactor<T>::takeLog( bool )
+  - Added TFactor<T>::operator-() const
+  - Added TFactor<T>::sumAbs() const
+  - Added TFactor<T>::operator==( const TFactor<T> &y )
+  - Renamed TFactor<T>::states() into TFactor<T>::nrStates()
+  - Added TFactor<T>::get(size_t) and TFactor<T>::set(size_t,T) operators; 
+    get() is equivalent to "operator[](size_t) const" and set() should
+    be used instead of the non-const operator[], which has been deprecated
+* Improved prob.h/cpp:
+  - Deprecated TProb::TProb( TIterator begin, TIterator end, size_t sizeHint=0 )
+    constructor: the sizeHint argument no longer defaults to 0
+  - Deprecated TProb::accumulate( T init, binOp op1, unOp op2 );
+    instead, TProb::accumulateSum( T init, unOp op ) and
+    TProb::accumulateMax( T init, unOp op, bool minimize ) should be used.
+  - Deprecated TProb::NormType and TProb::DistType;
+    ProbNormType and ProbDistType should be used instead.
+  - Added TProb<T>::operator==( const TProb<T> &q )
+  - TProb<T>::accumulate() now also applies op2 to init
+  - Fixed bug by renaming TProb<T>::operator<=() to TProb<T>::operator<()
+  - TProb<T>& operator/= (T x) now yields 0 when dividing by 0
+  - Changed format of TProb<T> when streamed to an ostream
+  - Added TProb<T>::get(size_t) and TProb<T>::set(size_t,T) operators; 
+    get() is equivalent to "operator[](size_t) const" and set() should
+    be used instead of the non-const operator[], which has been deprecated
+  - Added TProb<T>::resize(size_t)
+* Improved index.h/cpp:
+  - Added multifor::reset()
+* Improved properties.h/cpp:
+  - Renamed PropertySet::Set() -> PropertySet::set()
+  - Renamed PropertySet::Get() -> PropertySet::get()
+  - Renamed PropertySet::GetAs<T>() -> PropertySet::getAs<T>()
+  - Renamed PropertySet::ConvertTo<T>() -> PropertySet::convertTo<T>()
+  - Added PropertySet::size()
+  - Added PropertySet::clear()
+  - 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:
+  - Renamed MaxSpanningTreePrims into MaxSpanningTree
+  - Renamed MinSpanningTreePrims into MinSpanningTree
+  - Added option to MaxSpanningTree and MinSpanningTree for
+    choosing between Prim's algorithm and Kruskal's algorithm
+  - Better error checking in RootedTree constructor
+  - The vertices in DEdge and UEdge are now named "first" and "second"
+    for compatibility with a std::pair<size_t,size_t>
+  - Added GraphEL::GraphEL( const GraphAL& G ) constructor
+* Improved bipgraph.h/cpp:
+  - Fixed bug in BipartiteGraph::eraseNode1()
+  - Fixed bug in BipartiteGraph::eraseNode2()
+  - Fixed bug in BipartiteGraph::isTree()
+  - 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()
+  - Fixed bug in GraphAL::isTree()
+  - Fixed bug in GraphAL::eraseNode()
+  - Fixed bug in GraphAL::printDot()
+  - Fixed bug in createGraphGrid3D()
+  - 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 )
+    no longer has a default value in order to avoid confusion with the
+     SmallSet::SmallSet( const T &t1, const T &t2 )
+    constructor.
+  - Added SmallSet::insert( const T& t ) method
+* Removed RandomDRegularGraph(), please use createGraphRegular() instead
 * Compressed Makefile
-* Added unit tests for Var, SmallSet
+* Added unit tests for var, smallset, varset, graph, bipgraph,
+  weightedgraph, enum, util, exceptions, properties, index, prob, 
+  factor, factorgraph, clustergraph, regiongraph, daialg, alldai
 * Added unit testing framework
 * Added initialization of TRWBP weights by sampling spanning trees
 * Cleaned up MR code:
@@ -694,4 +862,4 @@ description in the help).
 
 0.1.0   (2006-02-28)
 --------------------
-First version worthy a version number.
+First version worthy of a version number.