New git HEAD version
[libdai.git] / src / gibbs.cpp
index a07ee03..85b2379 100644 (file)
@@ -1,14 +1,15 @@
 /*  This file is part of libDAI - http://www.libdai.org/
  *
- *  libDAI is licensed under the terms of the GNU General Public License version
- *  2, or (at your option) any later version. libDAI is distributed without any
- *  warranty. See the file COPYING for more details.
+ *  Copyright (c) 2006-2011, The libDAI authors. All rights reserved.
  *
- *  Copyright (C) 2008  Frederik Eaton  [frederik at ofb dot net]
- *  Copyright (C) 2008-2010  Joris Mooij  [joris dot mooij at libdai dot org]
+ *  Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
  */
 
 
+#include <dai/dai_config.h>
+#ifdef DAI_WITH_GIBBS
+
+
 #include <iostream>
 #include <sstream>
 #include <map>
@@ -25,16 +26,9 @@ namespace dai {
 using namespace std;
 
 
-const char *Gibbs::Name = "GIBBS";
-
-
 void Gibbs::setProperties( const PropertySet &opts ) {
-    /// \deprecated The 'iters' property has been renamed into 'maxiters'
-    DAI_ASSERT( opts.hasKey("maxiter") || opts.hasKey("iters") );
-    if( opts.hasKey("maxiter") )
-        props.maxiter = opts.getStringAs<size_t>("maxiter");
-    else
-        props.maxiter = opts.getStringAs<size_t>("iters");
+    DAI_ASSERT( opts.hasKey("maxiter") );
+    props.maxiter = opts.getStringAs<size_t>("maxiter");
 
     if( opts.hasKey("restart") )
         props.restart = opts.getStringAs<size_t>("restart");
@@ -151,7 +145,7 @@ Prob Gibbs::getVarDist( size_t i ) {
     Prob i_given_MB( i_states, 1.0 );
 
     // use Markov blanket of var(i) to calculate distribution
-    foreach( const Neighbor &I, nbV(i) ) {
+    bforeach( const Neighbor &I, nbV(i) ) {
         const Factor &f_I = factor(I);
         size_t I_skip = getFactorEntryDiff( I, i );
         size_t I_entry = getFactorEntry(I) - (_state[i] * I_skip);
@@ -217,7 +211,7 @@ Real Gibbs::run() {
     }
 
     if( props.verbose >= 3 )
-        cerr << Name << "::run:  ran " << _iters << " passes (" << toc() - tic << " seconds)." << endl;
+        cerr << name() << "::run:  ran " << _iters << " passes (" << toc() - tic << " seconds)." << endl;
 
     if( _iters == 0 )
         return INFINITY;
@@ -269,9 +263,9 @@ Factor Gibbs::belief( const VarSet &ns ) const {
 }
 
 
-std::vector<size_t> getGibbsState( const FactorGraph &fg, size_t iters ) {
+std::vector<size_t> getGibbsState( const FactorGraph &fg, size_t maxiter ) {
     PropertySet gibbsProps;
-    gibbsProps.set( "maxiter", iters );
+    gibbsProps.set( "maxiter", maxiter );
     gibbsProps.set( "burnin", size_t(0) );
     gibbsProps.set( "verbose", size_t(0) );
     Gibbs gibbs( fg, gibbsProps );
@@ -281,3 +275,6 @@ std::vector<size_t> getGibbsState( const FactorGraph &fg, size_t iters ) {
 
 
 } // end of namespace dai
+
+
+#endif