From: Joris Mooij Date: Tue, 4 Aug 2009 15:35:49 +0000 (+0200) Subject: Merge branch 'eaton' X-Git-Tag: v0.2.3~74 X-Git-Url: http://git.tuebingen.mpg.de/?p=libdai.git;a=commitdiff_plain;h=ae0fc30e10be6683cbfc209dcee56f34234a6cb8 Merge branch 'eaton' Conflicts: ChangeLog Makefile include/dai/daialg.h --- ae0fc30e10be6683cbfc209dcee56f34234a6cb8 diff --cc ChangeLog index 734e9c3,1dc0efe..45e54c5 --- a/ChangeLog +++ b/ChangeLog @@@ -1,15 -1,25 +1,33 @@@ - Branch master: -git b6efbfd9e4e76de65c44e4060a9b56f99543b70a (head of branch eaton before merge) --------------------------------------------------------------------------------- +* Added work-around for bug in Boost Graph Library +* Improvements of TFactor: + - Extended functionality of TFactor::operators +,-,+=,-= to handle different VarSets + - Added TFactor::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 diff --cc Makefile index 12eff2f,d47ce9e..749847b --- a/Makefile +++ b/Makefile @@@ -104,7 -109,7 +109,7 @@@ examples : examples/example$(EE) exampl 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) @@@ -199,9 -207,10 +213,12 @@@ examples/example_sprinkler$(EE) : examp 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 ################### @@@ -289,8 -292,7 +306,7 @@@ clean -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 diff --cc README index c164cd6,1d85a74..06c144a --- a/README +++ b/README @@@ -88,11 -87,9 +88,12 @@@ Currently, libDAI supports the followin * Generalized Belief Propagation [YFW05]; * Double-loop GBP [HAK03]; * Various variants of Loop Corrected Belief Propagation [MoK07, MoR05]; - * Gibbs sampler. + * Gibbs sampler; + * Conditioned BP [EaG09]. +In addition, libDAI supports parameter learning of conditional probability +tables by Expectation Maximization. + Why C++? -------- diff --cc include/dai/doc.h index a87c5ff,53e7362..e7f9071 --- a/include/dai/doc.h +++ b/include/dai/doc.h @@@ -144,11 -144,9 +144,12 @@@ * - 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).