Merge branch 'eaton'
[libdai.git] / include / dai / daialg.h
index 4b1001e..4dbae3a 100644 (file)
@@ -63,6 +63,18 @@ class InfAlg {
         /// Returns the "belief" (i.e., approximate marginal probability distribution) of a set of variables
         virtual Factor belief( const VarSet &n ) const = 0;
 
+        /// Returns marginal for a variable.
+        /** Sometimes preferred to belief() for performance reasons.
+          * Faster implementations exist in e.g. BP.
+          */
+        virtual Factor beliefV( size_t i ) const { return belief( fg().var(i) ); }
+
+        /// Returns marginal for a factor.
+        /** Sometimes preferred to belief() for performance reasons.
+          * Faster implementations exist in e.g. BP.
+          */
+        virtual Factor beliefF( size_t I ) const { return belief( fg().factor(I).vars() ); }
+
         /// Returns all "beliefs" (i.e., approximate marginal probability distribution) calculated by the algorithm
         virtual std::vector<Factor> beliefs() const = 0;