[mlpack-git] master: Fix a bug. And LastUpperBound() doesn't work. The bugfix speeds thigns up, too. (51e14ec)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Thu Mar 12 16:04:58 EDT 2015


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

On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/eddd7167d69b6c88b271ef2e51d1c20e13f1acd8...70342dd8e5c17e0c164cfb8189748671e9c0dd44

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

commit 51e14ecf1a364bbedfd1e72f95612e2b78e6eaa6
Author: Ryan Curtin <ryan at ratml.org>
Date:   Tue Feb 17 17:00:56 2015 -0500

    Fix a bug. And LastUpperBound() doesn't work. The bugfix speeds thigns up, too.


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

51e14ecf1a364bbedfd1e72f95612e2b78e6eaa6
 src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp | 2 +-
 src/mlpack/methods/kmeans/dtnn_rules_impl.hpp  | 3 +--
 src/mlpack/methods/kmeans/dtnn_statistic.hpp   | 7 -------
 3 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp b/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
index ddf7c43..4f5377c 100644
--- a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
+++ b/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
@@ -204,7 +204,7 @@ void DTNNKMeans<MetricType, MatType, TreeType>::UpdateTree(
   {
     node.Stat().UpperBound() = DBL_MAX;
     node.Stat().LowerBound() = DBL_MAX;
-    node.Stat().Pruned() = 0;
+    node.Stat().Pruned() = size_t(-1);
     node.Stat().Owner() = clusterDistances.n_elem - 1;
     node.Stat().StaticPruned() = false;
   }
diff --git a/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp b/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp
index 26e549a..195cd1a 100644
--- a/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp
+++ b/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp
@@ -107,8 +107,7 @@ inline double DTNNKMeansRules<MetricType, TreeType>::Score(
   math::Range distances = queryNode.RangeDistance(&referenceNode);
   double score = distances.Lo();
   ++scores;
-  if (distances.Lo() > queryNode.Stat().UpperBound() ||
-      distances.Lo() > queryNode.Stat().LastUpperBound())
+  if (distances.Lo() > queryNode.Stat().UpperBound())
   {
     // The reference node can own no points in this query node.  We may improve
     // the lower bound on pruned nodes, though.
diff --git a/src/mlpack/methods/kmeans/dtnn_statistic.hpp b/src/mlpack/methods/kmeans/dtnn_statistic.hpp
index e549afe..82e02c1 100644
--- a/src/mlpack/methods/kmeans/dtnn_statistic.hpp
+++ b/src/mlpack/methods/kmeans/dtnn_statistic.hpp
@@ -20,7 +20,6 @@ class DTNNStatistic : public
       neighbor::NeighborSearchStat<neighbor::NearestNeighborSort>(),
       upperBound(DBL_MAX),
       lowerBound(DBL_MAX),
-      lastUpperBound(DBL_MAX),
       owner(size_t(-1)),
       pruned(size_t(-1)),
       staticPruned(false),
@@ -34,7 +33,6 @@ class DTNNStatistic : public
       neighbor::NeighborSearchStat<neighbor::NearestNeighborSort>(),
       upperBound(DBL_MAX),
       lowerBound(DBL_MAX),
-      lastUpperBound(DBL_MAX),
       owner(size_t(-1)),
       pruned(size_t(-1)),
       staticPruned(false)
@@ -57,9 +55,6 @@ class DTNNStatistic : public
   double LowerBound() const { return lowerBound; }
   double& LowerBound() { return lowerBound; }
 
-  double LastUpperBound() const { return lastUpperBound; }
-  double& LastUpperBound() { return lastUpperBound; }
-
   const arma::vec& Centroid() const { return centroid; }
   arma::vec& Centroid() { return centroid; }
 
@@ -78,7 +73,6 @@ class DTNNStatistic : public
     o << "DTNNStatistic [" << this << "]:\n";
     o << "  Upper bound: " << upperBound << ".\n";
     o << "  Lower bound: " << lowerBound << ".\n";
-    o << "  Last upper bound: " << lastUpperBound << ".\n";
     o << "  Pruned: " << pruned << ".\n";
     o << "  Static pruned: " << staticPruned << ".\n";
     o << "  Owner: " << owner << ".\n";
@@ -88,7 +82,6 @@ class DTNNStatistic : public
  private:
   double upperBound;
   double lowerBound;
-  double lastUpperBound;
   size_t owner;
   size_t pruned;
   bool staticPruned;



More information about the mlpack-git mailing list