Removed stuff from InfAlg, moved it to individual inference algorithms
[libdai.git] / tests / test.cpp
index d5f1422..02ca982 100644 (file)
 #include <numeric>
 #include <cmath>
 #include <cstdlib>
-#include "util.h"
-#include "alldai.h"
 #include <boost/program_options.hpp>
+#include <dai/util.h>
+#include <dai/alldai.h>
 
 
 using namespace std;
+using namespace dai;
 namespace po = boost::program_options;
 
 
@@ -44,10 +45,10 @@ class TestAI {
         vector<Factor>  q;
         double          logZ;
         double          maxdiff;
-        clock_t         time;
+        double          time;
 
-        TestAI( const FactorGraph &fg, const string &_name, const Properties &opts ) : obj(NULL), name(_name), err(), q(), logZ(0.0), maxdiff(0.0), time(0) {
-            clock_t tic = toc();
+        TestAI( const FactorGraph &fg, const string &_name, const PropertySet &opts ) : obj(NULL), name(_name), err(), q(), logZ(0.0), maxdiff(0.0), time(0) {
+            double tic = toc();
             obj = newInfAlg( name, fg, opts );
             time += toc() - tic;
 /*
@@ -95,7 +96,7 @@ class TestAI {
         }
 
         void doAI() {
-            clock_t tic = toc();
+            double tic = toc();
 //            if( name == "EXACT" ) {
 //                // calculation has already been done
 //            } 
@@ -104,7 +105,7 @@ class TestAI {
                 obj->run();
                 time += toc() - tic;
                 logZ = real(obj->logZ());
-                maxdiff = obj->MaxDiff();
+                maxdiff = obj->maxDiff();
                 q = allBeliefs();
             };
         }
@@ -133,14 +134,14 @@ class TestAI {
 };
 
 
-pair<string, Properties> parseMethod( const string &_s, const map<string,string> & aliases ) {
+pair<string, PropertySet> parseMethod( const string &_s, const map<string,string> & aliases ) {
     string s = _s;
     if( aliases.find(_s) != aliases.end() )
         s = aliases.find(_s)->second;
 
-    pair<string, Properties> result;
+    pair<string, PropertySet> result;
     string & name = result.first;
-    Properties & opts = result.second;
+    PropertySet & opts = result.second;
 
     string::size_type pos = s.find_first_of('[');
     name = s.substr( 0, pos );
@@ -250,7 +251,7 @@ int main( int argc, char *argv[] ) {
             cout.width( 40 );
             cout << left << "# METHOD" << "  ";
             cout.width( 10 );
-            cout << right << "CLOCKS" << "    ";
+            cout << right << "SECONDS" << "   ";
             cout.width( 10 );
             cout << "MAX ERROR" << "  ";
             cout.width( 10 );
@@ -261,7 +262,7 @@ int main( int argc, char *argv[] ) {
             cout << "MAXDIFF" << endl;
 
             for( size_t m = 0; m < methods.size(); m++ ) {
-                pair<string, Properties> meth = parseMethod( methods[m], Aliases );
+                pair<string, PropertySet> meth = parseMethod( methods[m], Aliases );
 
                 if( vm.count("tol") )
                     meth.second.Set("tol",tol);