Merged regiongraph.* and daialg.* from SVN head,
[libdai.git] / include / dai / treeep.h
index 9b18a4c..9120085 100644 (file)
@@ -89,7 +89,7 @@ class TreeEP : public JTree {
             size_t verbose;
             size_t maxiter;
             double tol;
-            ENUM2(TypeType,ORG,ALT)
+            DAI_ENUM(TypeType,ORG,ALT)
             TypeType type;
         } props;
         double maxdiff;
@@ -104,6 +104,8 @@ class TreeEP : public JTree {
                     _Q[I].I() = &factor(I);
         }
         TreeEP* clone() const { return new TreeEP(*this); }
+        /// Create (virtual constructor)
+        virtual TreeEP* create() const { return new TreeEP(); }
         TreeEP & operator=( const TreeEP& x ) {
             if( this != &x ) {
                 JTree::operator=(x);
@@ -122,16 +124,18 @@ class TreeEP : public JTree {
         static const char *Name;
         std::string identify() const;
         void init();
+        /// Clear messages and beliefs corresponding to the nodes in ns
+        virtual void init( const VarSet &/*ns*/ ) { init(); }
         double run();
-        Complex logZ() const;
+        Real logZ() const;
 
         bool offtree( size_t I ) const { return (fac2OR[I] == -1U); }
 
-        void init( const VarSet &/*ns*/ ) { init(); }
-        void undoProbs( const VarSet &ns ) { RegionGraph::undoProbs( ns ); init( ns ); }
+        void restoreFactors( const VarSet &ns ) { RegionGraph::restoreFactors( ns ); init( ns ); }
 
         void setProperties( const PropertySet &opts );
         PropertySet getProperties() const;
+        std::string printProperties() const;
         double maxDiff() const { return maxdiff; }
 };