Replaced complex numbers by real numbers
[libdai.git] / src / mf.cpp
index 1dd0cfd..921692b 100644 (file)
@@ -111,7 +111,7 @@ double MF::run() {
 
         if( jan.hasNaNs() ) {
             cout << "MF::run():  ERROR: jan has NaNs!" << endl;
-            return NAN;
+            return 1.0;
         }
 
         diffs.push( dist( jan, _beliefs[i], Prob::DISTLINF ) );
@@ -168,8 +168,8 @@ vector<Factor> MF::beliefs() const {
 }
 
 
-Complex MF::logZ() const {
-    Complex sum = 0.0;
+Real MF::logZ() const {
+    Real sum = 0.0;
     
     for(size_t i=0; i < nrVars(); i++ )
         sum -= beliefV(i).entropy();
@@ -181,7 +181,7 @@ Complex MF::logZ() const {
         Factor piet;
         piet = factor(I).log0();
         piet *= henk;
-        sum -= Complex( piet.totalSum() );
+        sum -= piet.totalSum();
     }
 
     return -sum;
@@ -190,7 +190,7 @@ Complex MF::logZ() const {
 
 void MF::init( const VarSet &ns ) {
     for( size_t i = 0; i < nrVars(); i++ ) {
-        if( ns && var(i) )
+        if( ns.contains(var(i) ) )
             _beliefs[i].fill( 1.0 );
     }
 }