Made all "verbose" properties optional and unit tests should now also work on WINDOWS
authorJoris Mooij <joris.mooij@tuebingen.mpg.de>
Fri, 9 Apr 2010 13:02:17 +0000 (15:02 +0200)
committerJoris Mooij <joris.mooij@tuebingen.mpg.de>
Fri, 9 Apr 2010 13:02:17 +0000 (15:02 +0200)
30 files changed:
ChangeLog
Makefile
Makefile.WINDOWS
include/dai/bbp.h
src/bbp.cpp
src/exactinf.cpp
src/hak.cpp
src/jtree.cpp
src/lc.cpp
src/mr.cpp
src/treeep.cpp
tests/aliases.conf
tests/unit/alldai.cpp
tests/unit/bipgraph.cpp
tests/unit/clustergraph.cpp
tests/unit/daialg.cpp
tests/unit/enum.cpp
tests/unit/exceptions.cpp
tests/unit/factor.cpp
tests/unit/factorgraph.cpp
tests/unit/graph.cpp
tests/unit/index.cpp
tests/unit/prob.cpp
tests/unit/properties.cpp
tests/unit/regiongraph.cpp
tests/unit/smallset.cpp
tests/unit/util.cpp
tests/unit/var.cpp
tests/unit/varset.cpp
tests/unit/weightedgraph.cpp

index 231352f..2825f55 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
-git HEAD
---------
+git master HEAD
+---------------
 
+* 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
index 07ed794..8369f34 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -34,17 +34,14 @@ else
 endif
 
 # Define build targets
-TARGETS:=tests utils lib examples
-ifneq ($(OS),WINDOWS)
-  TARGETS:=$(TARGETS) unittests
+TARGETS:=lib tests utils examples
+ifdef WITH_MATLAB
+  TARGETS:=$(TARGETS) matlabs
 endif
-TARGETS:=$(TARGETS) testregression testem
+TARGETS:=$(TARGETS) unittests testregression testem
 ifdef WITH_DOC
   TARGETS:=$(TARGETS) doc
 endif
-ifdef WITH_MATLAB
-  TARGETS:=$(TARGETS) matlabs
-endif
 
 # Define conditional build targets
 NAMES:=bipgraph graph varset daialg alldai clustergraph factor factorgraph properties regiongraph util weightedgraph exceptions exactinf evidence emalg
@@ -188,7 +185,11 @@ examples/%$(EE) : examples/%.cpp $(HEADERS) $(LIB)/libdai$(LE)
 #############
 
 tests/unit/%$(EE) : tests/unit/%.cpp $(HEADERS) $(LIB)/libdai$(LE)
-       $(CC) $(CCO)$@ $< $(LIBS) $(BOOSTLIBS_UTF)
+ifneq ($(OS),WINDOWS)
+       $(CC) -DBOOST_TEST_DYN_LINK $(CCO)$@ $< $(LIBS) $(BOOSTLIBS_UTF)
+else
+       $(CC) $(CCO)$@ $< $(LIBS) $(BOOSTLIBS_UTF) /SUBSYSTEM:CONSOLE
+endif
 
 
 # TESTS
@@ -322,24 +323,8 @@ clean :
        -del utils\*.ilk
        -del tests\unit\*.ilk
        -del tests\unit\*.pdb
-       -del tests\unit\var$(EE)
-       -del tests\unit\smallset$(EE)
-       -del tests\unit\varset$(EE)
-       -del tests\unit\graph$(EE)
-       -del tests\unit\bipgraph$(EE)
-       -del tests\unit\weightedgraph$(EE)
-       -del tests\unit\enum$(EE)
-       -del tests\unit\util$(EE)
-       -del tests\unit\exceptions$(EE)
-       -del tests\unit\properties$(EE)
-       -del tests\unit\index$(EE)
-       -del tests\unit\prob$(EE)
-       -del tests\unit\factor$(EE)
-       -del tests\unit\factorgraph$(EE)
-       -del tests\unit\clustergraph$(EE)
-       -del tests\unit\regiongraph$(EE)
-       -del tests\unit\daialg$(EE)
-       -del tests\unit\alldai$(EE)
+       -del tests\unit\*$(EE)
+       -del tests\unit\*$(EE).manifest
        -del factorgraph_test.fg
        -del alldai_test.aliases
        -del $(LIB)\libdai$(LE)
index f3760bf..56748d9 100644 (file)
@@ -34,9 +34,9 @@ CC=cl
 # Output filename option of the compiler
 CCO=/Fe
 # Flags for the C++ compiler
-CCFLAGS=/EHsc /GR /W3 /DWINDOWS /DNOMINMAX
-# For MatLab R2008b, the following flags seem to be necessary: /MD /D_SECURE_SCL=0
-# but the last one generates exceptions in executables... therefore, the MatLab 
+CCFLAGS=/EHac /GR /W3 /DWINDOWS /DNOMINMAX /MD
+# For MatLab R2008b, the following flag seems to be necessary: /D_SECURE_SCL=0
+# but it generates exceptions in normal executables... therefore, the MatLab 
 # interface is now built from source completely using mex
 # Flags to add in debugging mode (if DEBUG=true)
 CCDEBUGFLAGS=/Ox /Zi /DDAI_DEBUG
index ed61a9c..9784c46 100644 (file)
@@ -348,7 +348,7 @@ class BBP {
            DAI_ENUM(UpdateType,SEQ_FIX,SEQ_MAX,SEQ_BP_REV,SEQ_BP_FWD,PAR);
 
            /// Verbosity (amount of output sent to stderr)
-           size_t verbose;
+           size_t verbose = 0;
 
            /// Maximum number of iterations
            size_t maxiter;
index 9bf9741..b4bd072 100644 (file)
@@ -1153,8 +1153,6 @@ void BBP::Properties::set(const PropertySet &opts)
     }
     if( !errormsg.empty() )
         DAI_THROWE(UNKNOWN_PROPERTY, errormsg);
-    if( !opts.hasKey("verbose") )
-        errormsg = errormsg + "BBP: Missing property \"verbose\" for method \"BBP\"\n";
     if( !opts.hasKey("maxiter") )
         errormsg = errormsg + "BBP: Missing property \"maxiter\" for method \"BBP\"\n";
     if( !opts.hasKey("tol") )
@@ -1165,7 +1163,11 @@ void BBP::Properties::set(const PropertySet &opts)
         errormsg = errormsg + "BBP: Missing property \"updates\" for method \"BBP\"\n";
     if( !errormsg.empty() )
         DAI_THROWE(NOT_ALL_PROPERTIES_SPECIFIED,errormsg);
-    verbose = opts.getStringAs<size_t>("verbose");
+    if( opts.hasKey("verbose") ) {
+        verbose = opts.getStringAs<size_t>("verbose");
+    } else {
+        verbose = 0;
+    }
     maxiter = opts.getStringAs<size_t>("maxiter");
     tol = opts.getStringAs<Real>("tol");
     damping = opts.getStringAs<Real>("damping");
index 080f2e5..980c9c5 100644 (file)
@@ -23,9 +23,10 @@ const char *ExactInf::Name = "EXACT";
 
 
 void ExactInf::setProperties( const PropertySet &opts ) {
-    DAI_ASSERT( opts.hasKey("verbose") );
-
-    props.verbose = opts.getStringAs<size_t>("verbose");
+    if( opts.hasKey("verbose") )
+        props.verbose = opts.getStringAs<size_t>("verbose");
+    else
+        props.verbose = 0;
 }
 
 
index 0c83060..8eec96d 100644 (file)
@@ -46,16 +46,18 @@ TFactor<T>& makeZero( TFactor<T> &f, T epsilon ) {
 void HAK::setProperties( const PropertySet &opts ) {
     DAI_ASSERT( opts.hasKey("tol") );
     DAI_ASSERT( opts.hasKey("maxiter") );
-    DAI_ASSERT( opts.hasKey("verbose") );
     DAI_ASSERT( opts.hasKey("doubleloop") );
     DAI_ASSERT( opts.hasKey("clusters") );
 
     props.tol = opts.getStringAs<Real>("tol");
     props.maxiter = opts.getStringAs<size_t>("maxiter");
-    props.verbose = opts.getStringAs<size_t>("verbose");
     props.doubleloop = opts.getStringAs<bool>("doubleloop");
     props.clusters = opts.getStringAs<Properties::ClustersType>("clusters");
 
+    if( opts.hasKey("verbose") )
+        props.verbose = opts.getStringAs<size_t>("verbose");
+    else
+        props.verbose = 0;
     if( opts.hasKey("loopdepth") )
         props.loopdepth = opts.getStringAs<size_t>("loopdepth");
     else
index e74aa85..9877972 100644 (file)
@@ -24,11 +24,13 @@ const char *JTree::Name = "JTREE";
 
 
 void JTree::setProperties( const PropertySet &opts ) {
-    DAI_ASSERT( opts.hasKey("verbose") );
     DAI_ASSERT( opts.hasKey("updates") );
 
-    props.verbose = opts.getStringAs<size_t>("verbose");
     props.updates = opts.getStringAs<Properties::UpdateType>("updates");
+    if( opts.hasKey("verbose") )
+        props.verbose = opts.getStringAs<size_t>("verbose");
+    else
+        props.verbose = 0;
     if( opts.hasKey("inference") )
         props.inference = opts.getStringAs<Properties::InfType>("inference");
     else
index 5b360aa..0f71507 100644 (file)
@@ -30,15 +30,17 @@ const char *LC::Name = "LC";
 void LC::setProperties( const PropertySet &opts ) {
     DAI_ASSERT( opts.hasKey("tol") );
     DAI_ASSERT( opts.hasKey("maxiter") );
-    DAI_ASSERT( opts.hasKey("verbose") );
     DAI_ASSERT( opts.hasKey("cavity") );
     DAI_ASSERT( opts.hasKey("updates") );
 
     props.tol = opts.getStringAs<Real>("tol");
     props.maxiter = opts.getStringAs<size_t>("maxiter");
-    props.verbose = opts.getStringAs<size_t>("verbose");
     props.cavity = opts.getStringAs<Properties::CavityType>("cavity");
     props.updates = opts.getStringAs<Properties::UpdateType>("updates");
+    if( opts.hasKey("verbose") )
+        props.verbose = opts.getStringAs<size_t>("verbose");
+    else
+        props.verbose = 0;
     if( opts.hasKey("cavainame") )
         props.cavainame = opts.getStringAs<string>("cavainame");
     if( opts.hasKey("cavaiopts") )
index d175f6b..e780e26 100644 (file)
@@ -32,14 +32,16 @@ const char *MR::Name = "MR";
 
 void MR::setProperties( const PropertySet &opts ) {
     DAI_ASSERT( opts.hasKey("tol") );
-    DAI_ASSERT( opts.hasKey("verbose") );
     DAI_ASSERT( opts.hasKey("updates") );
     DAI_ASSERT( opts.hasKey("inits") );
 
     props.tol = opts.getStringAs<Real>("tol");
-    props.verbose = opts.getStringAs<size_t>("verbose");
     props.updates = opts.getStringAs<Properties::UpdateType>("updates");
     props.inits = opts.getStringAs<Properties::InitType>("inits");
+    if( opts.hasKey("verbose") )
+        props.verbose = opts.getStringAs<size_t>("verbose");
+    else
+        props.verbose = 0;
 }
 
 
index 37863eb..15e8b8b 100644 (file)
@@ -29,13 +29,15 @@ const char *TreeEP::Name = "TREEEP";
 void TreeEP::setProperties( const PropertySet &opts ) {
     DAI_ASSERT( opts.hasKey("tol") );
     DAI_ASSERT( opts.hasKey("maxiter") );
-    DAI_ASSERT( opts.hasKey("verbose") );
     DAI_ASSERT( opts.hasKey("type") );
 
     props.tol = opts.getStringAs<Real>("tol");
     props.maxiter = opts.getStringAs<size_t>("maxiter");
-    props.verbose = opts.getStringAs<size_t>("verbose");
     props.type = opts.getStringAs<Properties::TypeType>("type");
+    if( opts.hasKey("verbose") )
+        props.verbose = opts.getStringAs<size_t>("verbose");
+    else
+        props.verbose = 0;
 }
 
 
index 75c4d80..d692553 100644 (file)
 # the colon and possible whitespace).
 
 
-# --- EXACT -------------------
-
-EXACT:                          EXACT[verbose=0]
-
 # --- BP ----------------------
 
-BP:                             BP[updates=SEQFIX,tol=1e-9,maxiter=10000,logdomain=0]
-BP_SEQFIX:                      BP[updates=SEQFIX,tol=1e-9,maxiter=10000,logdomain=0]
-BP_SEQRND:                      BP[updates=SEQRND,tol=1e-9,maxiter=10000,logdomain=0]
-BP_SEQMAX:                      BP[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0]
-BP_PARALL:                      BP[updates=PARALL,tol=1e-9,maxiter=10000,logdomain=0]
-BP_SEQFIX_LOG:                  BP[updates=SEQFIX,tol=1e-9,maxiter=10000,logdomain=1]
-BP_SEQRND_LOG:                  BP[updates=SEQRND,tol=1e-9,maxiter=10000,logdomain=1]
-BP_SEQMAX_LOG:                  BP[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=1]
-BP_PARALL_LOG:                  BP[updates=PARALL,tol=1e-9,maxiter=10000,logdomain=1]
-MP_SEQFIX:                      BP[updates=SEQFIX,tol=1e-9,maxiter=10000,logdomain=0,inference=MAXPROD]
-MP_SEQRND:                      BP[updates=SEQRND,tol=1e-9,maxiter=10000,logdomain=0,inference=MAXPROD]
-MP_SEQMAX:                      BP[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0,inference=MAXPROD]
-MP_PARALL:                      BP[updates=PARALL,tol=1e-9,maxiter=10000,logdomain=0,inference=MAXPROD]
-MP_SEQFIX_LOG:                  BP[updates=SEQFIX,tol=1e-9,maxiter=10000,logdomain=1,inference=MAXPROD]
-MP_SEQRND_LOG:                  BP[updates=SEQRND,tol=1e-9,maxiter=10000,logdomain=1,inference=MAXPROD]
-MP_SEQMAX_LOG:                  BP[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=1,inference=MAXPROD]
-MP_PARALL_LOG:                  BP[updates=PARALL,tol=1e-9,maxiter=10000,logdomain=1,inference=MAXPROD]
+BP:                             BP[inference=SUMPROD,updates=SEQMAX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+
+BP_SEQFIX:                      BP[inference=SUMPROD,updates=SEQFIX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+BP_SEQRND:                      BP[inference=SUMPROD,updates=SEQRND,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+BP_SEQMAX:                      BP[inference=SUMPROD,updates=SEQMAX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+BP_PARALL:                      BP[inference=SUMPROD,updates=PARALL,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+BP_SEQFIX_LOG:                  BP[inference=SUMPROD,updates=SEQFIX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+BP_SEQRND_LOG:                  BP[inference=SUMPROD,updates=SEQRND,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+BP_SEQMAX_LOG:                  BP[inference=SUMPROD,updates=SEQMAX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+BP_PARALL_LOG:                  BP[inference=SUMPROD,updates=PARALL,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+MP_SEQFIX:                      BP[inference=MAXPROD,updates=SEQFIX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+MP_SEQRND:                      BP[inference=MAXPROD,updates=SEQRND,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+MP_SEQMAX:                      BP[inference=MAXPROD,updates=SEQMAX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+MP_PARALL:                      BP[inference=MAXPROD,updates=PARALL,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+MP_SEQFIX_LOG:                  BP[inference=MAXPROD,updates=SEQFIX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+MP_SEQRND_LOG:                  BP[inference=MAXPROD,updates=SEQRND,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+MP_SEQMAX_LOG:                  BP[inference=MAXPROD,updates=SEQMAX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+MP_PARALL_LOG:                  BP[inference=MAXPROD,updates=PARALL,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
 
 # --- FBP ---------------------
 
-FBP:                            FBP[updates=SEQFIX,tol=1e-9,maxiter=10000,logdomain=0]
+FBP:                            FBP[inference=SUMPROD,updates=SEQMAX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+
+FBP_SEQFIX:                     FBP[inference=SUMPROD,updates=SEQFIX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+FBP_SEQRND:                     FBP[inference=SUMPROD,updates=SEQRND,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+FBP_SEQMAX:                     FBP[inference=SUMPROD,updates=SEQMAX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+FBP_PARALL:                     FBP[inference=SUMPROD,updates=PARALL,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+FBP_SEQFIX_LOG:                 FBP[inference=SUMPROD,updates=SEQFIX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+FBP_SEQRND_LOG:                 FBP[inference=SUMPROD,updates=SEQRND,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+FBP_SEQMAX_LOG:                 FBP[inference=SUMPROD,updates=SEQMAX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+FBP_PARALL_LOG:                 FBP[inference=SUMPROD,updates=PARALL,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+FMP_SEQFIX:                     FBP[inference=MAXPROD,updates=SEQFIX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+FMP_SEQRND:                     FBP[inference=MAXPROD,updates=SEQRND,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+FMP_SEQMAX:                     FBP[inference=MAXPROD,updates=SEQMAX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+FMP_PARALL:                     FBP[inference=MAXPROD,updates=PARALL,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0]
+FMP_SEQFIX_LOG:                 FBP[inference=MAXPROD,updates=SEQFIX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+FMP_SEQRND_LOG:                 FBP[inference=MAXPROD,updates=SEQRND,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+FMP_SEQMAX_LOG:                 FBP[inference=MAXPROD,updates=SEQMAX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
+FMP_PARALL_LOG:                 FBP[inference=MAXPROD,updates=PARALL,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0]
 
 # --- TRWBP -------------------
 
 TRWBP:                          TRWBP[updates=SEQFIX,tol=1e-9,maxiter=10000,logdomain=0,nrtrees=0]
 
+TRWBP_SEQFIX:                   TRWBP[inference=SUMPROD,updates=SEQFIX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWBP_SEQRND:                   TRWBP[inference=SUMPROD,updates=SEQRND,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWBP_SEQMAX:                   TRWBP[inference=SUMPROD,updates=SEQMAX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWBP_PARALL:                   TRWBP[inference=SUMPROD,updates=PARALL,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWBP_SEQFIX_LOG:               TRWBP[inference=SUMPROD,updates=SEQFIX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWBP_SEQRND_LOG:               TRWBP[inference=SUMPROD,updates=SEQRND,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWBP_SEQMAX_LOG:               TRWBP[inference=SUMPROD,updates=SEQMAX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWBP_PARALL_LOG:               TRWBP[inference=SUMPROD,updates=PARALL,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWMP_SEQFIX:                   TRWBP[inference=MAXPROD,updates=SEQFIX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWMP_SEQRND:                   TRWBP[inference=MAXPROD,updates=SEQRND,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWMP_SEQMAX:                   TRWBP[inference=MAXPROD,updates=SEQMAX,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWMP_PARALL:                   TRWBP[inference=MAXPROD,updates=PARALL,logdomain=0,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWMP_SEQFIX_LOG:               TRWBP[inference=MAXPROD,updates=SEQFIX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWMP_SEQRND_LOG:               TRWBP[inference=MAXPROD,updates=SEQRND,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWMP_SEQMAX_LOG:               TRWBP[inference=MAXPROD,updates=SEQMAX,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+TRWMP_PARALL_LOG:               TRWBP[inference=MAXPROD,updates=PARALL,logdomain=1,tol=1e-9,maxiter=10000,damping=0.0,nrtrees=0]
+
 # --- JTREE -------------------
 
-JTREE_HUGIN:                    JTREE[updates=HUGIN,verbose=0]
-JTREE_SHSH:                     JTREE[updates=SHSH,verbose=0]
-JTREE_HUGIN_MAP:               JTREE[updates=HUGIN,verbose=0,inference=MAXPROD]
-JTREE_SHSH_MAP:                        JTREE[updates=SHSH,verbose=0,inference=MAXPROD]
+JTREE_HUGIN:                    JTREE[inference=SUMPROD,updates=HUGIN]
+JTREE_SHSH:                     JTREE[inference=SUMPROD,updates=SHSH]
+
+JTREE_MINFILL_HUGIN:            JTREE[inference=SUMPROD,heuristic=MINFILL,updates=HUGIN]
+JTREE_MINFILL_SHSH:             JTREE[inference=SUMPROD,heuristic=MINFILL,updates=SHSH]
+JTREE_MINFILL_HUGIN_MAP:        JTREE[inference=MAXPROD,heuristic=MINFILL,updates=HUGIN]
+JTREE_MINFILL_SHSH_MAP:         JTREE[inference=MAXPROD,heuristic=MINFILL,updates=SHSH]
+JTREE_WEIGHTEDMINFILL_HUGIN:    JTREE[inference=SUMPROD,heuristic=WEIGHTEDMINFILL,updates=HUGIN]
+JTREE_WEIGHTEDMINFILL_SHSH:     JTREE[inference=SUMPROD,heuristic=WEIGHTEDMINFILL,updates=SHSH]
+JTREE_WEIGHTEDMINFILL_HUGIN_MAP:JTREE[inference=MAXPROD,heuristic=WEIGHTEDMINFILL,updates=HUGIN]
+JTREE_WEIGHTEDMINFILL_SHSH_MAP: JTREE[inference=MAXPROD,heuristic=WEIGHTEDMINFILL,updates=SHSH]
+JTREE_MINWEIGHT_HUGIN:          JTREE[inference=SUMPROD,heuristic=MINWEIGHT,updates=HUGIN]
+JTREE_MINWEIGHT_SHSH:           JTREE[inference=SUMPROD,heuristic=MINWEIGHT,updates=SHSH]
+JTREE_MINWEIGHT_HUGIN_MAP:      JTREE[inference=MAXPROD,heuristic=MINWEIGHT,updates=HUGIN]
+JTREE_MINWEIGHT_SHSH_MAP:       JTREE[inference=MAXPROD,heuristic=MINWEIGHT,updates=SHSH]
+JTREE_MINNEIGHBORS_HUGIN:       JTREE[inference=SUMPROD,heuristic=MINNEIGHBORS,updates=HUGIN]
+JTREE_MINNEIGHBORS_SHSH:        JTREE[inference=SUMPROD,heuristic=MINNEIGHBORS,updates=SHSH]
+JTREE_MINNEIGHBORS_HUGIN_MAP:   JTREE[inference=MAXPROD,heuristic=MINNEIGHBORS,updates=HUGIN]
+JTREE_MINNEIGHBORS_SHSH_MAP:    JTREE[inference=MAXPROD,heuristic=MINNEIGHBORS,updates=SHSH]
 
 # --- MF ----------------------
 
-MF_SEQRND:                      MF[tol=1e-9,maxiter=10000]
+MF_SEQRND:                      MF[tol=1e-9,maxiter=10000,damping=0.0]
 
 # --- TREEEP ------------------
 
-TREEEP:                         TREEEP[type=ORG,tol=1e-9,maxiter=10000,verbose=0]
-TREEEPWC:                       TREEEP[type=ALT,tol=1e-9,maxiter=10000,verbose=0]
+TREEEP:                         TREEEP[type=ORG,tol=1e-9,maxiter=10000]
+TREEEPWC:                       TREEEP[type=ALT,tol=1e-9,maxiter=10000]
 
 # --- MR ----------------------
 
-MR_DEFAULT:                     MR[updates=FULL,inits=RESPPROP,verbose=0,tol=1e-9]
-MR_RESPPROP_FULL:               MR[updates=FULL,inits=RESPPROP,verbose=0,tol=1e-9]
-MR_RESPPROP_LINEAR:             MR[updates=LINEAR,inits=RESPPROP,verbose=0,tol=1e-9]
-MR_CLAMPING_FULL:               MR[updates=FULL,inits=CLAMPING,verbose=0,tol=1e-9]
-MR_CLAMPING_LINEAR:             MR[updates=LINEAR,inits=CLAMPING,verbose=0,tol=1e-9]
-MR_EXACT_FULL:                  MR[updates=FULL,inits=EXACT,verbose=0,tol=1e-9]
-MR_EXACT_LINEAR:                MR[updates=LINEAR,inits=EXACT,verbose=0,tol=1e-9]
+MR_DEFAULT:                     MR[updates=FULL,inits=RESPPROP,tol=1e-9]
+MR_RESPPROP_FULL:               MR[updates=FULL,inits=RESPPROP,tol=1e-9]
+MR_RESPPROP_LINEAR:             MR[updates=LINEAR,inits=RESPPROP,tol=1e-9]
+MR_CLAMPING_FULL:               MR[updates=FULL,inits=CLAMPING,tol=1e-9]
+MR_CLAMPING_LINEAR:             MR[updates=LINEAR,inits=CLAMPING,tol=1e-9]
+MR_EXACT_FULL:                  MR[updates=FULL,inits=EXACT,tol=1e-9]
+MR_EXACT_LINEAR:                MR[updates=LINEAR,inits=EXACT,tol=1e-9]
 
 # --- HAK ---------------------
 
-GBP_MIN:                        HAK[doubleloop=0,clusters=MIN,init=UNIFORM,tol=1e-9,maxiter=10000,verbose=0]
-GBP_BETHE:                      HAK[doubleloop=0,clusters=BETHE,init=UNIFORM,tol=1e-9,maxiter=10000,verbose=0]
-GBP_DELTA:                      HAK[doubleloop=0,clusters=DELTA,init=UNIFORM,tol=1e-9,maxiter=10000,verbose=0]
-GBP_LOOP3:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=3,tol=1e-9,maxiter=10000,verbose=0]
-GBP_LOOP4:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=4,tol=1e-9,maxiter=10000,verbose=0]
-GBP_LOOP5:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=5,tol=1e-9,maxiter=10000,verbose=0]
-GBP_LOOP6:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=6,tol=1e-9,maxiter=10000,verbose=0]
-GBP_LOOP7:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=7,tol=1e-9,maxiter=10000,verbose=0]
-GBP_LOOP8:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=8,tol=1e-9,maxiter=10000,verbose=0]
-
-HAK_MIN:                        HAK[doubleloop=1,clusters=MIN,init=UNIFORM,tol=1e-9,maxiter=10000,verbose=0]
-HAK_BETHE:                      HAK[doubleloop=1,clusters=BETHE,init=UNIFORM,tol=1e-9,maxiter=10000,verbose=0]
-HAK_DELTA:                      HAK[doubleloop=1,clusters=DELTA,init=UNIFORM,tol=1e-9,maxiter=10000,verbose=0]
-HAK_LOOP3:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=3,tol=1e-9,maxiter=10000,verbose=0]
-HAK_LOOP4:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=4,tol=1e-9,maxiter=10000,verbose=0]
-HAK_LOOP5:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=5,tol=1e-9,maxiter=10000,verbose=0]
-HAK_LOOP6:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=6,tol=1e-9,maxiter=10000,verbose=0]
-HAK_LOOP7:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=7,tol=1e-9,maxiter=10000,verbose=0]
-HAK_LOOP8:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=8,tol=1e-9,maxiter=10000,verbose=0]
+GBP_MIN:                        HAK[doubleloop=0,clusters=MIN,init=UNIFORM,tol=1e-9,maxiter=10000]
+GBP_BETHE:                      HAK[doubleloop=0,clusters=BETHE,init=UNIFORM,tol=1e-9,maxiter=10000]
+GBP_DELTA:                      HAK[doubleloop=0,clusters=DELTA,init=UNIFORM,tol=1e-9,maxiter=10000]
+GBP_LOOP3:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=3,tol=1e-9,maxiter=10000]
+GBP_LOOP4:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=4,tol=1e-9,maxiter=10000]
+GBP_LOOP5:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=5,tol=1e-9,maxiter=10000]
+GBP_LOOP6:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=6,tol=1e-9,maxiter=10000]
+GBP_LOOP7:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=7,tol=1e-9,maxiter=10000]
+GBP_LOOP8:                      HAK[doubleloop=0,clusters=LOOP,init=UNIFORM,loopdepth=8,tol=1e-9,maxiter=10000]
+
+HAK_MIN:                        HAK[doubleloop=1,clusters=MIN,init=UNIFORM,tol=1e-9,maxiter=10000]
+HAK_BETHE:                      HAK[doubleloop=1,clusters=BETHE,init=UNIFORM,tol=1e-9,maxiter=10000]
+HAK_DELTA:                      HAK[doubleloop=1,clusters=DELTA,init=UNIFORM,tol=1e-9,maxiter=10000]
+HAK_LOOP3:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=3,tol=1e-9,maxiter=10000]
+HAK_LOOP4:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=4,tol=1e-9,maxiter=10000]
+HAK_LOOP5:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=5,tol=1e-9,maxiter=10000]
+HAK_LOOP6:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=6,tol=1e-9,maxiter=10000]
+HAK_LOOP7:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=7,tol=1e-9,maxiter=10000]
+HAK_LOOP8:                      HAK[doubleloop=1,clusters=LOOP,init=UNIFORM,loopdepth=8,tol=1e-9,maxiter=10000]
 
 # --- LC ----------------------
 
-LCBP_FULLCAVin_SEQFIX:          LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_FULLCAVin_SEQRND:          LC[cavity=FULL,reinit=1,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_FULLCAVin_NONE:            LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_FULLCAV_SEQFIX:            LC[cavity=FULL,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_FULLCAV_SEQRND:            LC[cavity=FULL,reinit=0,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_FULLCAV_NONE:              LC[cavity=FULL,reinit=0,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIRCAVin_SEQFIX:          LC[cavity=PAIR,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIRCAVin_SEQRND:          LC[cavity=PAIR,reinit=1,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIRCAVin_NONE:            LC[cavity=PAIR,reinit=1,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIRCAV_SEQFIX:            LC[cavity=PAIR,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIRCAV_SEQRND:            LC[cavity=PAIR,reinit=0,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIRCAV_NONE:              LC[cavity=PAIR,reinit=0,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIR2CAVin_SEQFIX:         LC[cavity=PAIR2,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIR2CAVin_SEQRND:         LC[cavity=PAIR2,reinit=1,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIR2CAVin_NONE:           LC[cavity=PAIR2,reinit=1,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIR2CAV_SEQFIX:           LC[cavity=PAIR2,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIR2CAV_SEQRND:           LC[cavity=PAIR2,reinit=0,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_PAIR2CAV_NONE:             LC[cavity=PAIR2,reinit=0,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9,verbose=0]
-LCBP_UNICAV_SEQFIX:             LC[cavity=UNIFORM,updates=SEQFIX,maxiter=10000,tol=1e-9,verbose=0,cavaiopts=[],cavainame=NONE]
-LCBP_UNICAV_SEQRND:             LC[cavity=UNIFORM,updates=SEQRND,maxiter=10000,tol=1e-9,verbose=0,cavaiopts=[],cavainame=NONE]
-
-LCTREEEP:                       LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=TREEEP,cavaiopts=[type=ORG,tol=1e-9,maxiter=10000,verbose=0],tol=1e-9,verbose=0]
-LCMF:                           LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=MF,cavaiopts=[tol=1e-9,maxiter=10000,verbose=0],tol=1e-9,verbose=0]
+LCBP_FULLCAVin_SEQFIX:          LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_FULLCAVin_SEQRND:          LC[cavity=FULL,reinit=1,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_FULLCAVin_NONE:            LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_FULLCAV_SEQFIX:            LC[cavity=FULL,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_FULLCAV_SEQRND:            LC[cavity=FULL,reinit=0,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_FULLCAV_NONE:              LC[cavity=FULL,reinit=0,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIRCAVin_SEQFIX:          LC[cavity=PAIR,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIRCAVin_SEQRND:          LC[cavity=PAIR,reinit=1,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIRCAVin_NONE:            LC[cavity=PAIR,reinit=1,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIRCAV_SEQFIX:            LC[cavity=PAIR,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIRCAV_SEQRND:            LC[cavity=PAIR,reinit=0,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIRCAV_NONE:              LC[cavity=PAIR,reinit=0,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIR2CAVin_SEQFIX:         LC[cavity=PAIR2,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIR2CAVin_SEQRND:         LC[cavity=PAIR2,reinit=1,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIR2CAVin_NONE:           LC[cavity=PAIR2,reinit=1,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIR2CAV_SEQFIX:           LC[cavity=PAIR2,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIR2CAV_SEQRND:           LC[cavity=PAIR2,reinit=0,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_PAIR2CAV_NONE:             LC[cavity=PAIR2,reinit=0,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,logdomain=0],tol=1e-9]
+LCBP_UNICAV_SEQFIX:             LC[cavity=UNIFORM,updates=SEQFIX,maxiter=10000,tol=1e-9,cavaiopts=[],cavainame=NONE]
+LCBP_UNICAV_SEQRND:             LC[cavity=UNIFORM,updates=SEQRND,maxiter=10000,tol=1e-9,cavaiopts=[],cavainame=NONE]
+
+LCTREEEP:                       LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=TREEEP,cavaiopts=[type=ORG,tol=1e-9,maxiter=10000],tol=1e-9]
+LCMF:                           LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=MF,cavaiopts=[tol=1e-9,maxiter=10000],tol=1e-9]
 LCBP:                           LCBP_FULLCAVin_SEQRND
 
 # --- GIBBS -------------------
 
-GIBBS:                          GIBBS[iters=1000,burnin=100,verbose=0]
-GIBBS_1e1:                      GIBBS[iters=10,burnin=1,verbose=0]
-GIBBS_1e2:                      GIBBS[iters=100,burnin=10,verbose=0]
-GIBBS_1e3:                      GIBBS[iters=1000,burnin=100,verbose=0]
-GIBBS_1e4:                      GIBBS[iters=10000,burnin=1000,verbose=0]
-GIBBS_1e5:                      GIBBS[iters=100000,burnin=10000,verbose=0]
-GIBBS_1e6:                      GIBBS[iters=1000000,burnin=100000,verbose=0]
-GIBBS_1e7:                      GIBBS[iters=10000000,burnin=100000,verbose=0]
-GIBBS_1e8:                      GIBBS[iters=100000000,burnin=100000,verbose=0]
-GIBBS_1e9:                      GIBBS[iters=1000000000,burnin=100000,verbose=0]
+GIBBS:                          GIBBS[iters=1000,burnin=100]
+GIBBS_1e1:                      GIBBS[iters=10,burnin=1]
+GIBBS_1e2:                      GIBBS[iters=100,burnin=10]
+GIBBS_1e3:                      GIBBS[iters=1000,burnin=100]
+GIBBS_1e4:                      GIBBS[iters=10000,burnin=1000]
+GIBBS_1e5:                      GIBBS[iters=100000,burnin=10000]
+GIBBS_1e6:                      GIBBS[iters=1000000,burnin=100000]
+GIBBS_1e7:                      GIBBS[iters=10000000,burnin=100000]
+GIBBS_1e8:                      GIBBS[iters=100000000,burnin=100000]
+GIBBS_1e9:                      GIBBS[iters=1000000000,burnin=100000]
 
 # --- CBP ---------------------
 
-CBP:                            CBP[max_levels=12,updates=SEQMAX,tol=1e-9,rec_tol=1e-9,maxiter=500,choose=CHOOSE_RANDOM,recursion=REC_FIXED,clamp=CLAMP_VAR,min_max_adj=1.0e-9,bbp_cfn=CFN_FACTOR_ENT,verbose=0,rand_seed=0,bbp_props=[verbose=0,tol=1.0e-9,maxiter=10000,damping=0,updates=SEQ_BP_REV],clamp_outfile=]
+CBP:                            CBP[max_levels=12,updates=SEQMAX,tol=1e-9,rec_tol=1e-9,maxiter=500,choose=CHOOSE_RANDOM,recursion=REC_FIXED,clamp=CLAMP_VAR,min_max_adj=1.0e-9,bbp_cfn=CFN_FACTOR_ENT,rand_seed=0,bbp_props=[tol=1.0e-9,maxiter=10000,damping=0,updates=SEQ_BP_REV],clamp_outfile=]
 BBP:                            CBP[choose=CHOOSE_BBP]
index eddd07d..1d11eda 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/alldai.h>
 #include <strstream>
 #include <fstream>
index c72d271..f69cd4f 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/bipgraph.h>
 #include <vector>
 #include <strstream>
index 2f84617..d245b83 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/clustergraph.h>
 #include <vector>
 #include <strstream>
index 5b0aeda..0c6cfc4 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/daialg.h>
 #include <dai/alldai.h>
 #include <strstream>
index eac3332..0ea60d1 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/enum.h>
 #include <strstream>
 #include <iostream>
index fa10674..85586d4 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/exceptions.h>
 #include <strstream>
 
@@ -49,12 +46,12 @@ BOOST_AUTO_TEST_CASE( ExceptionsTest ) {
     try {
         DAI_THROW(NOT_IMPLEMENTED);
     } catch( std::runtime_error& e ) {
-        BOOST_CHECK_EQUAL( e.what(), std::string("Feature not implemented [tests/unit/exceptions.cpp, line 50]") );
+        BOOST_CHECK_EQUAL( e.what(), std::string("Feature not implemented [tests/unit/exceptions.cpp, line 47]") );
     }
 
     try {
         DAI_THROWE(NOT_IMPLEMENTED,"Detailed error message");
     } catch( std::runtime_error& e ) {
-        BOOST_CHECK_EQUAL( e.what(), std::string("Feature not implemented [tests/unit/exceptions.cpp, line 56]") );
+        BOOST_CHECK_EQUAL( e.what(), std::string("Feature not implemented [tests/unit/exceptions.cpp, line 53]") );
     }
 }
index 72fe390..3cf56af 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/factor.h>
 #include <strstream>
 
@@ -156,7 +153,7 @@ BOOST_AUTO_TEST_CASE( QueriesTest ) {
     // test entropy
     BOOST_CHECK( x.entropy() < Prob(5).entropy() );
     for( size_t i = 1; i < 100; i++ )
-        BOOST_CHECK_CLOSE( Factor( Var(0,i) ).entropy(), std::log(i), tol );
+        BOOST_CHECK_CLOSE( Factor( Var(0,i) ).entropy(), std::log((Real)i), tol );
 
     // test hasNaNs and hasNegatives
     BOOST_CHECK( !Factor( 0.0 ).hasNaNs() );
index 618ff83..f5e5589 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/bipgraph.h>
 #include <dai/factorgraph.h>
 #include <vector>
index 92dcb5f..9adfef1 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/graph.h>
 #include <vector>
 #include <strstream>
index a32a701..a60d308 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/index.h>
 #include <strstream>
 #include <map>
index c9a99d3..c757537 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/prob.h>
 #include <strstream>
 
@@ -180,7 +177,7 @@ BOOST_AUTO_TEST_CASE( QueriesTest ) {
     // test entropy
     BOOST_CHECK( x.entropy() < Prob(5).entropy() );
     for( size_t i = 1; i < 100; i++ )
-        BOOST_CHECK_CLOSE( Prob(i).entropy(), std::log(i), tol );
+        BOOST_CHECK_CLOSE( Prob(i).entropy(), std::log((Real)i), tol );
 
     // test hasNaNs and hasNegatives
     BOOST_CHECK( !Prob( 3, 0.0 ).hasNaNs() );
index adf3605..5b09899 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/properties.h>
 #include <strstream>
 
index ef193c2..5724e71 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/regiongraph.h>
 #include <vector>
 #include <strstream>
index c77fa3a..a55f381 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/smallset.h>
 #include <vector>
 
index 12c9c0b..249351f 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/util.h>
 #include <strstream>
 #include <string>
index 6e362f8..891729f 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/var.h>
 #include <strstream>
 
index f385268..a482cc6 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/varset.h>
 #include <vector>
 #include <map>
index 732b57f..d0548bd 100644 (file)
@@ -8,9 +8,6 @@
  */
 
 
-#define BOOST_TEST_DYN_LINK
-
-
 #include <dai/weightedgraph.h>
 #include <dai/exceptions.h>
 #include <strstream>