- Branch master:
-git b6efbfd9e4e76de65c44e4060a9b56f99543b70a (head of branch eaton before merge)
---------------------------------------------------------------------------------
+* Added work-around for bug in Boost Graph Library
+* Improvements of TFactor<T>:
+ - Extended functionality of TFactor<T>::operators +,-,+=,-= to handle different VarSets
+ - Added TFactor<T>::maxMarginal (similar to marginal but with max instead of sum)
+* Added BipartiteGraph::eraseEdge
+* Removed all the virtual default constructors *::create(), as they are not used.
+* Fixed bug in MaxSpanningTree (it wrongly assumed that the tree was not empty).
+* [Charlie Vaske] Added Expectation Maximization code.
+* Added MatLab QuickStart to README.
+* MEX file dai now also returns variable and factor beliefs.
-
+ * Cleanups and extra documentation of the code contributed by Frederik Eaton
+ * Removed erroneous 'inline' directives in gibbs.cpp
+ * [Frederik Eaton] Added script for automatically generating properties code (used by CBP and BBP)
+ * [Frederik Eaton] Updated doxygen.conf to version 1.5.9
+ * [Frederik Eaton] Added newInfAlgFromString to alldai.h/cpp
+ * [Frederik Eaton] Added FactorGraph::clampVar and FactorGraph::clampFactor
+ * [Frederik Eaton] Changed BP to be able to record order in which messages are sent (for use by BBP)
+ * [Frederik Eaton] Improved documentation of BipartiteGraph::Neighbor
+ * [Frederik Eaton]: Extended InfAlg interface with beliefV() and beliefF() methods;
+ * [Frederik Eaton]: Improved PropertySet class:
+ - Added default constructor
+ - Allow construction from string
+ - Added method allKeys() to produce list of keys
+ - In getStringAs(), check for typeid(ValueType) before typeid(std::string)
+ (this fixes a strange bug for empty string property)
+ * [Frederik Eaton]: Added some utility macros (DAI_PV, DAI_DMSG, DAI_ACCMUT, DAI_IFVERB)
+ and functions (concat(),rnd()) to include/dai/util.h
+ * [Frederik Eaton] Added backwards compatibility layer for edge interface to
+ BipartiteGraph and FactorGraph (which will be obsoleted soon)
+ * [Frederik Eaton] Added BP_dual, BBP and CBP algorithms
* [Frederik Eaton] Added Gibbs::state() accessors/mutators
* [Frederik Eaton] Fixed Gibbs::getVarDist(size_t) to return uniform
distribution if no state is allowed
matlabs : matlab/dai$(ME) matlab/dai_readfg$(ME) matlab/dai_writefg$(ME) matlab/dai_potstrength$(ME)
- tests : tests/testdai$(EE) tests/testem/testem$(EE)
-tests : tests/testdai$(EE) tests/testbbp$(EE)
++tests : tests/testdai$(EE) tests/testem/testem$(EE) tests/testbbp$(EE)
utils : utils/createfg$(EE) utils/fg2dot$(EE) utils/fginfo$(EE)
tests/testdai$(EE) : tests/testdai.cpp $(HEADERS) $(LIB)/libdai$(LE)
$(CC) $(CCO)tests/testdai$(EE) tests/testdai.cpp $(LIBS) $(BOOSTLIBS)
+tests/testem/testem$(EE) : tests/testem/testem.cpp $(HEADERS) $(LIB)/libdai$(LE)
+ $(CC) $(CCO)$@ $< $(LIBS) $(BOOSTLIBS)
+ tests/testbbp$(EE) : tests/testbbp.cpp $(HEADERS) $(LIB)/libdai$(LE)
+ $(CC) $(CCO)tests/testbbp$(EE) tests/testbbp.cpp $(LIBS)
+
# MATLAB INTERFACE
###################
-rm *$(OE)
-rm matlab/*$(ME)
-rm examples/example$(EE) examples/example_bipgraph$(EE) examples/example_varset$(EE) examples/example_sprinkler$(EE)
- -rm tests/testdai$(EE)
- -rm tests/testem/testem$(EE)
- -rm tests/testdai$(EE) tests/testbbp$(EE)
++ -rm tests/testdai$(EE) tests/testem/testem$(EE) tests/testbbp$(EE)
-rm utils/fg2dot$(EE) utils/createfg$(EE) utils/fginfo$(EE)
-rm -R doc
-rm -R lib
* - Double-loop GBP [\ref HAK03];
* - Various variants of Loop Corrected Belief Propagation
* [\ref MoK07, \ref MoR05];
- * - Gibbs sampler.
+ * - Gibbs sampler;
+ * - Conditioned BP [\ref EaG09];
*
+ * In addition, libDAI supports parameter learning of conditional probability
+ * tables by Expectation Maximization.
+ *
* \section language Why C++?
* Because libDAI is implemented in C++, it is very fast compared with
* implementations in MatLab (a factor 1000 faster is not uncommon).