From 28aba742510b6470995d1c4cd55d92e580efdb1b Mon Sep 17 00:00:00 2001
From: Manuel Guenther <manuel.guenther@idiap.ch>
Date: Fri, 8 May 2015 16:12:19 +0200
Subject: [PATCH] Moved initialization of cache of KMeansTrainer to where it
 belongs.

---
 bob/learn/em/cpp/KMeansTrainer.cpp             | 18 +++++++++---------
 .../em/include/bob.learn.em/KMeansTrainer.h    |  4 ++--
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/bob/learn/em/cpp/KMeansTrainer.cpp b/bob/learn/em/cpp/KMeansTrainer.cpp
index 9ab18d6..0c6e3c6 100644
--- a/bob/learn/em/cpp/KMeansTrainer.cpp
+++ b/bob/learn/em/cpp/KMeansTrainer.cpp
@@ -24,11 +24,11 @@ m_firstOrderStats(0)
 
 
 bob::learn::em::KMeansTrainer::KMeansTrainer(const bob::learn::em::KMeansTrainer& other){
-    
-  m_initialization_method = other.m_initialization_method;  
+
+  m_initialization_method = other.m_initialization_method;
   m_rng                   = other.m_rng;
   m_average_min_distance  = other.m_average_min_distance;
-  m_zeroethOrderStats     = bob::core::array::ccopy(other.m_zeroethOrderStats); 
+  m_zeroethOrderStats     = bob::core::array::ccopy(other.m_zeroethOrderStats);
   m_firstOrderStats       = bob::core::array::ccopy(other.m_firstOrderStats);
 }
 
@@ -160,9 +160,6 @@ void bob::learn::em::KMeansTrainer::initialize(bob::learn::em::KMeansMachine& km
       kmeans.setMean(m, new_mean);
     }
   }
-   // Resize the accumulator
-  m_zeroethOrderStats.resize(kmeans.getNMeans());
-  m_firstOrderStats.resize(kmeans.getNMeans(), kmeans.getNInputs());
 }
 
 void bob::learn::em::KMeansTrainer::eStep(bob::learn::em::KMeansMachine& kmeans,
@@ -206,12 +203,16 @@ double bob::learn::em::KMeansTrainer::computeLikelihood(bob::learn::em::KMeansMa
 }
 
 
-bool bob::learn::em::KMeansTrainer::resetAccumulators(bob::learn::em::KMeansMachine& kmeans)
+void bob::learn::em::KMeansTrainer::resetAccumulators(bob::learn::em::KMeansMachine& kmeans)
 {
+   // Resize the accumulator
+  m_zeroethOrderStats.resize(kmeans.getNMeans());
+  m_firstOrderStats.resize(kmeans.getNMeans(), kmeans.getNInputs());
+
+  // initialize with 0
   m_average_min_distance = 0;
   m_zeroethOrderStats = 0;
   m_firstOrderStats = 0;
-  return true;
 }
 
 void bob::learn::em::KMeansTrainer::setZeroethOrderStats(const blitz::Array<double,1>& zeroethOrderStats)
@@ -225,4 +226,3 @@ void bob::learn::em::KMeansTrainer::setFirstOrderStats(const blitz::Array<double
   bob::core::array::assertSameShape(m_firstOrderStats, firstOrderStats);
   m_firstOrderStats = firstOrderStats;
 }
-
diff --git a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
index de59020..8845b50 100644
--- a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
+++ b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
@@ -105,7 +105,7 @@ class KMeansTrainer
      * @brief Reset the statistics accumulators
      * to the correct size and a value of zero.
      */
-    bool resetAccumulators(bob::learn::em::KMeansMachine& kMeansMachine);
+    void resetAccumulators(bob::learn::em::KMeansMachine& kMeansMachine);
 
     /**
      * @brief Sets the Random Number Generator
@@ -144,7 +144,7 @@ class KMeansTrainer
 
 
   private:
-  
+
     /**
      * @brief The initialization method
      * Check that there is no duplicated means during the random initialization
-- 
GitLab