[mlpack-git] master: Only unmap if necessary. (ac2d3a0)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Wed May 20 23:06:06 EDT 2015


Repository : https://github.com/mlpack/mlpack

On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/77d750c8fd46140b1d6060424f68768a21c89377...7e9cd46afb53817ae93ccbd02637d7726137ce4d

>---------------------------------------------------------------

commit ac2d3a0f480c75ce4bc8bb5833b57f4223225db8
Author: Ryan Curtin <ryan at ratml.org>
Date:   Fri May 8 16:18:07 2015 -0400

    Only unmap if necessary.


>---------------------------------------------------------------

ac2d3a0f480c75ce4bc8bb5833b57f4223225db8
 src/mlpack/methods/kmeans/dual_tree_kmeans_impl.hpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/mlpack/methods/kmeans/dual_tree_kmeans_impl.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans_impl.hpp
index 78d7b77..8ccdb43 100644
--- a/src/mlpack/methods/kmeans/dual_tree_kmeans_impl.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans_impl.hpp
@@ -113,10 +113,13 @@ double DualTreeKMeans<MetricType, MatType, TreeType>::Iterate(
     nns.Search(1, closestClusters, interclusterDistancesTemp);
     distanceCalculations += nns.BaseCases() + nns.Scores();
 
-    // We need to do the unmapping ourselves.
-    for (size_t i = 0; i < interclusterDistances.n_elem; ++i)
-      interclusterDistances[oldFromNewCentroids[i]] =
-          interclusterDistancesTemp[i];
+    // We need to do the unmapping ourselves, if the tree does mapping.
+    if (tree::TreeTraits<TreeType>::RearrangesDataset)
+    {
+      for (size_t i = 0; i < interclusterDistances.n_elem; ++i)
+        interclusterDistances[oldFromNewCentroids[i]] =
+            interclusterDistancesTemp[i];
+    }
 
     Timer::Stop("knn");
 



More information about the mlpack-git mailing list