Merged SVN head ...
[libdai.git] / include / dai / alldai.h
index 111a9b6..3f46faa 100644 (file)
 
 #include <string>
 #include <dai/daialg.h>
-#include <dai/bp.h>
-#include <dai/lc.h>
-#include <dai/hak.h>
-#include <dai/mf.h>
-#include <dai/jtree.h>
-#include <dai/treeep.h>
-#include <dai/mr.h>
+#include <dai/properties.h>
+#include <dai/exactinf.h>
+#ifdef WITH_BP
+    #include <dai/bp.h>
+#endif
+#ifdef WITH_MF
+    #include <dai/mf.h>
+#endif
+#ifdef WITH_HAK
+    #include <dai/hak.h>
+#endif
+#ifdef WITH_LC
+    #include <dai/lc.h>
+#endif
+#ifdef WITH_TREEEP
+    #include <dai/treeep.h>
+#endif
+#ifdef WITH_JTREE
+    #include <dai/jtree.h>
+#endif
+#ifdef WITH_MR
+    #include <dai/mr.h>
+#endif
 
 
 namespace dai {
@@ -40,11 +56,36 @@ namespace dai {
 /// newInfAlg constructs a new approximate inference algorithm named name for the
 /// FactorGraph fg with optionts opts and returns a pointer to the new object.
 /// The caller needs to delete it (maybe some sort of smart_ptr might be useful here).
-InfAlg *newInfAlg( const std::string &name, const FactorGraph &fg, const Properties &opts );
+InfAlg *newInfAlg( const std::string &name, const FactorGraph &fg, const PropertySet &opts );
+
 
+/// DAINames contains the names of all approximate inference algorithms
 
-/// AINames contains the names of all approximate inference algorithms
-static const char* DAINames[] = {BP::Name, MF::Name, HAK::Name, LC::Name, TreeEP::Name, MR::Name, JTree::Name};
+static const char* DAINames[] = {
+    ExactInf::Name,
+#ifdef WITH_BP
+    BP::Name, 
+#endif
+#ifdef WITH_MF
+    MF::Name,
+#endif
+#ifdef WITH_HAK
+    HAK::Name,
+#endif
+#ifdef WITH_LC
+    LC::Name,
+#endif
+#ifdef WITH_TREEEP
+    TreeEP::Name,
+#endif
+#ifdef WITH_JTREE
+    JTree::Name,
+#endif
+#ifdef WITH_MR
+    MR::Name,
+#endif
+    ""
+};
 
 
 } // end of namespace dai