Multiple changes: changes in build system, one workaround and one bug fix
authorJoris Mooij <j.mooij@cs.ru.nl>
Tue, 29 Oct 2013 12:02:34 +0000 (13:02 +0100)
committerJoris Mooij <j.mooij@cs.ru.nl>
Tue, 29 Oct 2013 12:02:34 +0000 (13:02 +0100)
- Optional compilation targets are now set in include/dai/dai_config.h instead of Makefile.ALL
- 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
- Small fix in swig/dai.i

42 files changed:
Makefile
Makefile.ALL
Makefile.LINUX
Makefile.MACOSX
examples/example.cpp
examples/example_sprinkler_gibbs.cpp
include/dai/alldai.h
include/dai/bbp.h
include/dai/bp.h
include/dai/bp_dual.h
include/dai/cbp.h
include/dai/dai_config.h [new file with mode: 0644]
include/dai/decmap.h
include/dai/fbp.h
include/dai/gibbs.h
include/dai/glc.h
include/dai/hak.h
include/dai/jtree.h
include/dai/lc.h
include/dai/mf.h
include/dai/mr.h
include/dai/treeep.h
include/dai/trwbp.h
src/bbp.cpp
src/bp.cpp
src/bp_dual.cpp
src/cbp.cpp
src/decmap.cpp
src/fbp.cpp
src/gibbs.cpp
src/glc.cpp
src/hak.cpp
src/jtree.cpp
src/lc.cpp
src/mf.cpp
src/mr.cpp
src/treeep.cpp
src/trwbp.cpp
swig/dai.i
tests/testbbp.cpp
tests/unit/weightedgraph_test.cpp
utils/fginfo.cpp

index d380833..49d42ae 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -42,58 +42,7 @@ endif
 
 # Define conditional build targets
 NAMES:=graph dag bipgraph varset daialg alldai clustergraph factor factorgraph properties regiongraph cobwebgraph util weightedgraph exceptions exactinf evidence emalg io
-ifdef WITH_BP
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_BP
-  NAMES:=$(NAMES) bp
-endif
-ifdef WITH_FBP
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_FBP
-  NAMES:=$(NAMES) fbp
-endif
-ifdef WITH_TRWBP
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_TRWBP
-  NAMES:=$(NAMES) trwbp
-endif
-ifdef WITH_MF
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_MF
-  NAMES:=$(NAMES) mf
-endif
-ifdef WITH_HAK
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_HAK
-  NAMES:=$(NAMES) hak
-endif
-ifdef WITH_LC
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_LC
-  NAMES:=$(NAMES) lc
-endif
-ifdef WITH_TREEEP
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_TREEEP
-  NAMES:=$(NAMES) treeep
-endif
-ifdef WITH_JTREE
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_JTREE
-  NAMES:=$(NAMES) jtree
-endif
-ifdef WITH_MR
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_MR
-  NAMES:=$(NAMES) mr
-endif
-ifdef WITH_GIBBS
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_GIBBS
-  NAMES:=$(NAMES) gibbs
-endif
-ifdef WITH_CBP
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_CBP
-  NAMES:=$(NAMES) bbp cbp bp_dual
-endif
-ifdef WITH_DECMAP
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_DECMAP
-  NAMES:=$(NAMES) decmap
-endif
-ifdef WITH_GLC
-  WITHFLAGS:=$(WITHFLAGS) -DDAI_WITH_GLC
-  NAMES:=$(NAMES) glc 
-endif
+NAMES:=$(NAMES) bp fbp trwbp mf hak lc treeep jtree mr gibbs bbp cbp bp_dual decmap glc
 
 
 # Define standard libDAI header dependencies, source file names and object file names
@@ -126,9 +75,7 @@ all : $(TARGETS)
        @echo libDAI built successfully!
 
 EXAMPLES=$(foreach name,example example_bipgraph example_varset example_permute example_sprinkler example_sprinkler_em,examples/$(name)$(EE))
-ifdef WITH_GIBBS
-  EXAMPLES:=$(EXAMPLES) examples/example_sprinkler_gibbs$(EE)
-endif
+EXAMPLES:=$(EXAMPLES) examples/example_sprinkler_gibbs$(EE)
 ifdef WITH_CIMG
   EXAMPLES:=$(EXAMPLES) examples/example_imagesegmentation$(EE)
 endif
@@ -236,11 +183,7 @@ tests/testdai$(EE) : tests/testdai.cpp $(HEADERS) $(LIB)/libdai$(LE)
 tests/testem/testem$(EE) : tests/testem/testem.cpp $(HEADERS) $(LIB)/libdai$(LE)
        $(CC) $(CCO)$@ $< $(LIBS) $(BOOSTLIBS_PO)
 tests/testbbp$(EE) : tests/testbbp.cpp $(HEADERS) $(LIB)/libdai$(LE)
-ifdef WITH_CBP
        $(CC) $(CCO)$@ $< $(LIBS)
-else
-       @echo Skipping $@
-endif
 
 
 # MATLAB INTERFACE
index cb1c001..fb58459 100644 (file)
@@ -6,32 +6,18 @@
 
 
 # This file can be used to configure compile time options of libDAI.
-# Here the user can enable or disable various approximate inference 
-# methods and additional build targets (documentation, MatLab interface)
+# Here the user can enable or disable additional build targets (documentation, MatLab interface)
 # and specify whether to build with debug information included.
 #
 # It is platform independent and is included by Makefile.
 #
 # A boolean variable VAR can be set to true ("VAR=true") or to false ("VAR=")
+#
+# Disabling/enabling inference algorithms in libDAI can be done in include/dai/dai_config.h
 
 
 # COMPILATION AND BUILD FLAGS
 
-# Enable/disable various approximate inference methods
-WITH_BP=true
-WITH_FBP=true
-WITH_TRWBP=true
-WITH_MF=true
-WITH_HAK=true
-WITH_LC=true
-WITH_TREEEP=true
-WITH_JTREE=true
-WITH_MR=true
-WITH_GIBBS=true
-WITH_CBP=true
-WITH_DECMAP=true
-WITH_GLC=true
-
 # Build with debug info? (slower but safer)
 DEBUG=true
 
index 9777295..cee2412 100644 (file)
@@ -46,8 +46,8 @@ CCINC=-Iinclude
 # Standard libraries to include
 LIBS=-ldai -lgmpxx -lgmp
 # For linking with BOOST libraries
-BOOSTLIBS_PO=-lboost_program_options-mt
-BOOSTLIBS_UTF=-lboost_unit_test_framework-mt
+BOOSTLIBS_PO=-lboost_program_options
+BOOSTLIBS_UTF=-lboost_unit_test_framework
 # Additional library search paths for linker
 CCLIB=-Llib
 
index 71524f5..d72ce44 100644 (file)
@@ -5,7 +5,7 @@
 # Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
 
-# This template contains configurations for compiling libDAI under Mac OS X (64-bits)
+# This template contains configurations for compiling libDAI under Mac OS X (32 bits)
 #
 # To use it, simply copy this file to 'Makefile.conf' and adapt 'Makefile.conf'
 # to your local setup
index b76c3aa..11835b6 100644 (file)
@@ -19,6 +19,7 @@ using namespace std;
 
 
 int main( int argc, char *argv[] ) {
+#if defined(DAI_WITH_BP) && defined(DAI_WITH_JTREE)
     if ( argc != 2 && argc != 3 ) {
         cout << "Usage: " << argv[0] << " <filename.fg> [maxstates]" << endl << endl;
         cout << "Reads factor graph <filename.fg> and runs" << endl;
@@ -194,4 +195,7 @@ int main( int argc, char *argv[] ) {
     }
 
     return 0;
+#else
+    cout << "libDAI was configured without BP or JunctionTree (this can be changed in include/dai/dai_config.h)." << endl;
+#endif
 }
index c6461e9..2d0503a 100644 (file)
@@ -16,6 +16,7 @@ using namespace std;
 using namespace dai;
 
 int main() {
+#ifdef DAI_WITH_GIBBS
     // This example program illustrates how to use Gibbs sampling
     // to sample from a joint probability distribution described
     // by a factor graph, using the sprinkler network example discussed at
@@ -69,4 +70,7 @@ int main() {
     outfile.close();
 
     return 0;
+#else
+    cout << "libDAI was configured without Gibbs (this can be changed in include/dai/dai_config.h)." << endl;
+#endif
 }
index 882f8d7..9f777df 100644 (file)
@@ -19,6 +19,7 @@
 #define __defined_libdai_alldai_h
 
 
+#include <dai/dai_config.h>
 #include <string>
 #include <dai/daialg.h>
 #include <dai/properties.h>
index aa89659..6bed605 100644 (file)
 #define ___defined_libdai_bbp_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_CBP
+
+
 #include <vector>
 #include <utility>
 
@@ -420,3 +424,6 @@ Real numericBBPTest( const InfAlg &bp, const std::vector<size_t> *state, const P
 
 
 #endif
+
+
+#endif
index 4d0936e..68ce284 100644 (file)
 #define __defined_libdai_bp_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_BP
+
+
 #include <string>
 #include <dai/daialg.h>
 #include <dai/factorgraph.h>
@@ -264,3 +268,6 @@ class BP : public DAIAlgFG {
 
 
 #endif
+
+
+#endif
index 8357771..84b03eb 100644 (file)
 #define __defined_libdai_bp_dual_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_CBP
+
+
 #include <dai/daialg.h>
 #include <dai/factorgraph.h>
 #include <dai/enum.h>
@@ -133,3 +137,6 @@ class BP_dual {
 
 
 #endif
+
+
+#endif
index ccc53ef..578f885 100644 (file)
 #define __defined_libdai_cbp_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_CBP
+
+
 #include <fstream>
 #include <boost/shared_ptr.hpp>
 
@@ -249,3 +253,6 @@ std::pair<size_t, size_t> BBPFindClampVar( const InfAlg &in_bp, bool clampingVar
 
 
 #endif
+
+
+#endif
diff --git a/include/dai/dai_config.h b/include/dai/dai_config.h
new file mode 100644 (file)
index 0000000..1f3ed4f
--- /dev/null
@@ -0,0 +1,32 @@
+/*  This file is part of libDAI - http://www.libdai.org/
+ *
+ *  Copyright (c) 2006-2011, The libDAI authors. All rights reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
+ */
+
+
+/// \file
+/// \brief Allows the user to specify which algorithms will be built into libDAI
+
+
+#ifndef __defined_libdai_config_h
+#define __defined_libdai_config_h
+
+
+//#define DAI_WITH_BP
+//#define DAI_WITH_FBP
+//#define DAI_WITH_TRWBP
+//#define DAI_WITH_MF
+//#define DAI_WITH_HAK
+//#define DAI_WITH_LC
+//#define DAI_WITH_TREEEP
+//#define DAI_WITH_JTREE
+//#define DAI_WITH_MR
+//#define DAI_WITH_GIBBS
+//#define DAI_WITH_CBP
+//#define DAI_WITH_DECMAP
+//#define DAI_WITH_GLC
+
+
+#endif
index 7f7a671..7c73698 100644 (file)
 #define __defined_libdai_decmap_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_DECMAP
+
+
 #include <dai/daialg.h>
 
 
@@ -91,3 +95,6 @@ class DecMAP : public DAIAlgFG {
 
 
 #endif
+
+
+#endif
index 3a237cc..7e1bdc7 100644 (file)
 #define __defined_libdai_fbp_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_FBP
+
+
 #include <string>
 #include <dai/daialg.h>
 #include <dai/factorgraph.h>
@@ -121,3 +125,6 @@ class FBP : public BP {
 
 
 #endif
+
+
+#endif
index 4eb9617..9df3b12 100644 (file)
 #define __defined_libdai_gibbs_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_GIBBS
+
+
 #include <dai/daialg.h>
 #include <dai/factorgraph.h>
 #include <dai/properties.h>
@@ -144,3 +148,6 @@ std::vector<size_t> getGibbsState( const FactorGraph &fg, size_t maxiter );
 
 
 #endif
+
+
+#endif
index 009a101..bfbb4cf 100644 (file)
 #define __defined_libdai_glc_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_GLC
+
+
 #include <algorithm>
 #include <set>
 #include <string>
@@ -363,3 +367,6 @@ class GLC : public DAIAlgCG {
 
 
 #endif
+
+
+#endif
index b62a8f8..8f7f863 100644 (file)
 /// \todo Implement GBP parent-child  algorithm.
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_HAK
+
+
 #ifndef __defined_libdai_hak_h
 #define __defined_libdai_hak_h
 
@@ -161,3 +165,6 @@ class HAK : public DAIAlgRG {
 
 
 #endif
+
+
+#endif
index de329e5..2a30350 100644 (file)
 #define __defined_libdai_jtree_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_JTREE
+
+
 #include <vector>
 #include <string>
 #include <dai/daialg.h>
@@ -209,3 +213,6 @@ std::pair<size_t,BigInt> boundTreewidth( const FactorGraph &fg, greedyVariableEl
 
 
 #endif
+
+
+#endif
index 56d04bc..a77ae1c 100644 (file)
 #define __defined_libdai_lc_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_LC
+
+
 #include <string>
 #include <dai/daialg.h>
 #include <dai/enum.h>
@@ -144,3 +148,6 @@ class LC : public DAIAlgFG {
 
 
 #endif
+
+
+#endif
index 47ef3ea..274dd26 100644 (file)
 #define __defined_libdai_mf_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_MF
+
+
 #include <string>
 #include <dai/enum.h>
 #include <dai/daialg.h>
@@ -121,3 +125,6 @@ class MF : public DAIAlgFG {
 
 
 #endif
+
+
+#endif
index c8bfc80..cc339b9 100644 (file)
 #define __defined_libdai_mr_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_MR
+
+
 #include <vector>
 #include <string>
 #include <dai/factorgraph.h>
@@ -184,3 +188,6 @@ class MR : public DAIAlgFG {
 
 
 #endif
+
+
+#endif
index a2e73ce..7ab46e0 100644 (file)
 #define __defined_libdai_treeep_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_TREEEP
+
+
 #include <vector>
 #include <string>
 #include <dai/daialg.h>
@@ -205,3 +209,6 @@ class TreeEP : public JTree {
 
 
 #endif
+
+
+#endif
index c579417..80b2206 100644 (file)
 #define __defined_libdai_trwbp_h
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_TRWBP
+
+
 #include <string>
 #include <dai/daialg.h>
 #include <dai/factorgraph.h>
@@ -138,3 +142,6 @@ class TRWBP : public BP {
 
 
 #endif
+
+
+#endif
index b651c15..af4a404 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_CBP
+
+
 #include <dai/bp.h>
 #include <dai/bbp.h>
 #include <dai/gibbs.h>
@@ -1189,3 +1193,6 @@ string BBP::Properties::toString() const {
 }
 } // end of namespace dai
 /* }}} END OF GENERATED CODE */
+
+
+#endif
index 1fd9857..3af6352 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_BP
+
+
 #include <iostream>
 #include <sstream>
 #include <map>
@@ -471,3 +475,6 @@ void BP::updateResidual( size_t i, size_t _I, Real r ) {
 
 
 } // end of namespace dai
+
+
+#endif
index 1f1faf0..4cf7bf3 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_CBP
+
+
 #include <iostream>
 #include <sstream>
 #include <algorithm>
@@ -145,3 +149,6 @@ void BP_dual::calcBeliefF( size_t I ) {
 
 
 } // end of namespace dai
+
+
+#endif
index c649fe4..4e08c18 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_CBP
+
+
 #include <iostream>
 #include <sstream>
 #include <map>
@@ -631,3 +635,6 @@ string CBP::Properties::toString() const {
 }
 } // end of namespace dai
 /* }}} END OF GENERATED CODE */
+
+
+#endif
index 78ec919..636ea5c 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_DECMAP
+
+
 #include <dai/alldai.h>
 
 
@@ -177,3 +181,6 @@ Real DecMAP::run() {
 
 
 } // end of namespace dai
+
+
+#endif
index d87f8aa..c1adbe2 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_FBP
+
+
 #include <dai/fbp.h>
 
 
@@ -154,3 +158,6 @@ void FBP::construct() {
 
 
 } // end of namespace dai
+
+
+#endif
index 3dca7e7..85b2379 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_GIBBS
+
+
 #include <iostream>
 #include <sstream>
 #include <map>
@@ -271,3 +275,6 @@ std::vector<size_t> getGibbsState( const FactorGraph &fg, size_t maxiter ) {
 
 
 } // end of namespace dai
+
+
+#endif
index 9d9ff15..f34d635 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_GLC
+
+
 #include <iostream>
 #include <algorithm>
 #include <map>
@@ -598,3 +602,6 @@ void GLC::initCWs(){
 
 
 } // end of namespace dai
+
+
+#endif
index 4b79981..de1303b 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_HAK
+
+
 #include <map>
 #include <dai/hak.h>
 #include <dai/util.h>
@@ -611,3 +615,6 @@ Real HAK::logZ() const {
 
 
 } // end of namespace dai
+
+
+#endif
index 9a38e7a..67fb695 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_JTREE
+
+
 #include <iostream>
 #include <stack>
 #include <dai/jtree.h>
@@ -138,8 +142,8 @@ void JTree::construct( const FactorGraph &fg, const std::vector<VarSet> &cl, boo
     if( props.verbose >= 3 )
         cerr << "Weightedgraph: " << JuncGraph << endl;
 
-    // Construct maximal spanning tree using Prim's algorithm
-    RTree = MaxSpanningTree( JuncGraph, true );
+    // Construct maximal spanning tree
+    RTree = MaxSpanningTree( JuncGraph, /*true*/false ); // WORKAROUND FOR BUG IN BOOST GRAPH LIBRARY VERSION 1.54
     if( props.verbose >= 3 )
         cerr << "Spanning tree: " << RTree << endl;
     DAI_DEBASSERT( RTree.size() == cl.size() - 1 );
@@ -646,3 +650,6 @@ std::vector<size_t> JTree::findMaximum() const {
 
 
 } // end of namespace dai
+
+
+#endif
index 153df27..a1e1fa7 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_LC
+
+
 #include <iostream>
 #include <algorithm>
 #include <map>
@@ -338,3 +342,6 @@ Real LC::run() {
 
 
 } // end of namespace dai
+
+
+#endif
index cc98406..4c1d932 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_MF
+
+
 #include <iostream>
 #include <sstream>
 #include <map>
@@ -223,3 +227,6 @@ void MF::init( const VarSet &ns ) {
 
 
 } // end of namespace dai
+
+
+#endif
index 7270279..18d5f6f 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_MR
+
+
 #include <cstdio>
 #include <ctime>
 #include <cmath>
@@ -481,3 +485,6 @@ MR::MR( const FactorGraph &fg, const PropertySet &opts ) : DAIAlgFG(fg), support
 
 
 } // end of namespace dai
+
+
+#endif
index 2a3a47e..df38aa2 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_TREEEP
+
+
 #include <iostream>
 #include <fstream>
 #include <vector>
@@ -120,7 +124,7 @@ TreeEP::TreeEP( const FactorGraph &fg, const PropertySet &opts ) : JTree(fg, opt
             // find maximal spanning tree
             if( props.verbose >= 3 )
                 cerr << "WeightedGraph: " << wg << endl;
-            RootedTree t = MaxSpanningTree( wg, true );
+            RootedTree t = MaxSpanningTree( wg, /*true*/false ); // WORKAROUND FOR BUG IN BOOST GRAPH LIBRARY VERSION 1.54
             if( props.verbose >= 3 )
                 cerr << "Spanningtree: " << t << endl;
             construct( fg, t );
@@ -380,3 +384,6 @@ Real TreeEP::TreeEPSubTree::logZ( const std::vector<Factor> &Qa, const std::vect
 
 
 } // end of namespace dai
+
+
+#endif
index e277527..bb294a4 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_TRWBP
+
+
 #include <dai/trwbp.h>
 
 
@@ -174,7 +178,7 @@ void TRWBP::sampleWeights( size_t nrTrees ) {
     // now repeatedly change the random weights, find the minimal spanning tree, and add it to the weights
     for( size_t nr = 0; nr < nrTrees; nr++ ) {
         // find minimal spanning tree
-        RootedTree randTree = MinSpanningTree( wg, true );
+        RootedTree randTree = MinSpanningTree( wg, /*true*/false ); // WORKAROUND FOR BUG IN BOOST GRAPH LIBRARY VERSION 1.54
         // add it to the weights
         addTreeToWeights( randTree );
         // resample weights of the graph
@@ -196,3 +200,6 @@ void TRWBP::sampleWeights( size_t nrTrees ) {
 
 
 } // end of namespace dai
+
+
+#endif
index 5faec4e..9f3074f 100644 (file)
 //%include "std_set.i"  /* for python */
 
 %{
-#define DAI_WITH_BP 1
-#define DAI_WITH_FBP 1
-#define DAI_WITH_TRWBP 1
-#define DAI_WITH_MF 1
-#define DAI_WITH_HAK 1
-#define DAI_WITH_LC 1
-#define DAI_WITH_TREEEP 1
-#define DAI_WITH_JTREE 1
-#define DAI_WITH_MR 1
-#define DAI_WITH_GIBBS 1
-#define DAI_WITH_CBP 1
-#define DAI_WITH_DECMAP 1
-#define DAI_WITH_GLC 1
 #include "../include/dai/alldai.h"
 
 using namespace dai;
@@ -73,8 +60,8 @@ using namespace dai;
 %extend dai::TProb<dai::Real> {
     inline dai::Real __getitem__(int i) const {return (*self).get(i);} /* for python */
     inline void __setitem__(int i,dai::Real d) {(*self).set(i,d);}   /* for python */
-    inline dai::Real __paren(int i) const {return (*self).get(i);}     /* for octave */
-    inline void __paren_asgn(int i,dai::Real d) {(*self).set(i,d);}  /* for octave */
+    inline dai::Real __paren__(int i) const {return (*self).get(i);}     /* for octave */
+    inline void __paren_asgn__(int i,dai::Real d) {(*self).set(i,d);}  /* for octave */
     inline const char* __str__() const { return (*self).toString().c_str(); }  /* for python */
     inline std::string __str() const { return (*self).toString(); }  /* for octave */
 };
index 168e5d1..bdf6c9d 100644 (file)
@@ -8,7 +8,6 @@
 
 #include <iostream>
 #include <dai/alldai.h>
-#include <dai/bbp.h>
 
 
 using namespace dai;
@@ -16,6 +15,7 @@ using namespace std;
 
 
 int main( int argc, char *argv[] ) {
+#ifdef DAI_WITH_CBP
     if ( argc != 2 ) {
         cout << "Usage: " << argv[0] << " <filename.fg>" << endl << endl;
         cout << "Reads factor graph <filename.fg> and verifies" << endl;
@@ -104,4 +104,7 @@ int main( int argc, char *argv[] ) {
     }
 
     return 0;
+#else
+    cout << "libDAI is configured not to include CBP (this can be changed in include/dai/dai_config.h)." << endl;
+#endif
 }
index cf3ca4c..a9e1986 100644 (file)
@@ -195,13 +195,13 @@ BOOST_AUTO_TEST_CASE( SpanningTreeTest ) {
     TMax.push_back( DEdge( 2,3 ) );
     TMax.push_back( DEdge( 3,1 ) );
 
-    T = MinSpanningTree( G, true );
-    BOOST_CHECK_EQUAL( T, TMin );
+//  T = MinSpanningTree( G, true ); // disabled because of bug in boost graph library 1.54
+//  BOOST_CHECK_EQUAL( T, TMin );
     T = MinSpanningTree( G, false );
     BOOST_CHECK_EQUAL( T, TMin );
 
-    T = MaxSpanningTree( G, true );
-    BOOST_CHECK_EQUAL( T, TMax );
+//  T = MaxSpanningTree( G, true ); // disabled because of bug in boost graph library 1.54
+//  BOOST_CHECK_EQUAL( T, TMax );
     T = MaxSpanningTree( G, false );
     BOOST_CHECK_EQUAL( T, TMax );
 
index 024d229..25c7a22 100644 (file)
@@ -95,6 +95,7 @@ int main( int argc, char *argv[] ) {
         cout << "Pairwise interactions? " << fg.isPairwise() << endl;
         
         // Calculate treewidth using various heuristics
+#ifdef DAI_WITH_JTREE
         std::pair<size_t,BigInt> tw;
         cout << "Treewidth (MinNeighbors):     ";
         try {
@@ -139,6 +140,7 @@ int main( int argc, char *argv[] ) {
             else
                 cout << "an exception occurred" << endl;
         }
+#endif
         
         // Calculate total state space
         BigInt stsp = 1;