[Alexander Gerhard Schwing] Fixed error in BP that occured with damping and using...
authorJoris Mooij <joris.mooij@tuebingen.mpg.de>
Sun, 20 Dec 2009 17:20:06 +0000 (18:20 +0100)
committerJoris Mooij <joris.mooij@tuebingen.mpg.de>
Sun, 20 Dec 2009 17:20:06 +0000 (18:20 +0100)
AUTHORS
ChangeLog
src/bp.cpp

diff --git a/AUTHORS b/AUTHORS
index 1b5e048..100492a 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -12,6 +12,7 @@ Claudio Lima
 Jiuxiang Hu
 Peter Gober
 Sebastian Nowozin
+Alexander Gerhard Schwing
 
 This work is part of the Interactive Collaborative Information Systems (ICIS) 
 project, supported by the Dutch Ministry of Economic Affairs, grant BSIK03024.
index 705c736..981dc63 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+* [Alexander Gerhard Schwing] Fixed error in BP that occured with damping
+  and using log-domain updates
+* Fixed FTBFS errors on MACOSX (thanks to Sebastian Riedel for reporting this bug)
+* [Frederik Eaton] Two small patches for src/jtree.cpp and utils/createfg.cpp
+* Fixed regression in scripts/regenerate-properties (now all errors are 
+  gathered before throwing the exception, as used to be the case)
+* [Frederik Eaton] Added constructors for BBPCostFunction
+* [Frederik Eaton] Added accessor/mutator for the elements of a SmallSet<>
+* [Frederik Eaton] Added unary minus to TProb<>
+* [Frederik Eaton] Added Hellinger distance to TProb<>::DistType
+* Some small modifications to AUTHORS and main page of documentation
 * Removed obsolete/deprecated stuff
 
 
index 7786b50..7020726 100644 (file)
@@ -477,7 +477,10 @@ void BP::updateMessage( size_t i, size_t _I ) {
         if( props.updates == Properties::UpdateType::SEQMAX )
             updateResidual( i, _I, 0.0 );
     } else {
-        message(i,_I) = (message(i,_I) ^ props.damping) * (newMessage(i,_I) ^ (1.0 - props.damping));
+        if( props.logdomain )
+            message(i,_I) = (message(i,_I) * props.damping) + (newMessage(i,_I) * (1.0 - props.damping));
+        else
+            message(i,_I) = (message(i,_I) ^ props.damping) * (newMessage(i,_I) ^ (1.0 - props.damping));
         if( props.updates == Properties::UpdateType::SEQMAX )
             updateResidual( i, _I, dist( newMessage(i,_I), message(i,_I), Prob::DISTLINF ) );
     }