[mlpack-svn] r16225 - mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Thu Feb 6 15:16:28 EST 2014


Author: rcurtin
Date: Thu Feb  6 15:16:28 2014
New Revision: 16225

Log:
Minor changes to SortDistance().


Modified:
   mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/furthest_neighbor_sort.cpp
   mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/furthest_neighbor_sort.hpp
   mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/nearest_neighbor_sort.cpp
   mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/nearest_neighbor_sort.hpp

Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/furthest_neighbor_sort.cpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/furthest_neighbor_sort.cpp	(original)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/furthest_neighbor_sort.cpp	Thu Feb  6 15:16:28 2014
@@ -9,6 +9,7 @@
 using namespace mlpack::neighbor;
 
 size_t FurthestNeighborSort::SortDistance(const arma::vec& list,
+                                          const arma::Col<size_t>& indices,
                                           double newDistance)
 {
   // The first element in the list is the nearest neighbor.  We only want to
@@ -17,9 +18,9 @@
     return (size_t() - 1); // Do not insert.
 
   // Search from the beginning.  This may not be the best way.
-  for (size_t i = 0; i < list.n_elem; i++)  
-    if (newDistance >= list[i])
-      return i;  
+  for (size_t i = 0; i < list.n_elem; i++)
+    if (newDistance >= list[i] || indices[i] == (size_t() - 1))
+      return i;
 
   // Control should never reach here.
   return (size_t() - 1);

Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/furthest_neighbor_sort.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/furthest_neighbor_sort.hpp	(original)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/furthest_neighbor_sort.hpp	Thu Feb  6 15:16:28 2014
@@ -36,7 +36,9 @@
    * @return size_t containing the position to insert into, or (size_t() - 1)
    *     if the new distance should not be inserted.
    */
-  static size_t SortDistance(const arma::vec& list, double newDistance);
+  static size_t SortDistance(const arma::vec& list,
+                             const arma::Col<size_t>& indices,
+                             double newDistance);
 
   /**
    * Return whether or not value is "better" than ref.  In this case, that means

Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/nearest_neighbor_sort.cpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/nearest_neighbor_sort.cpp	(original)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/nearest_neighbor_sort.cpp	Thu Feb  6 15:16:28 2014
@@ -9,6 +9,7 @@
 using namespace mlpack::neighbor;
 
 size_t NearestNeighborSort::SortDistance(const arma::vec& list,
+                                         const arma::Col<size_t>& indices,
                                          double newDistance)
 {
   // The first element in the list is the nearest neighbor.  We only want to
@@ -18,8 +19,8 @@
 
   // Search from the beginning.  This may not be the best way.
   for (size_t i = 0; i < list.n_elem; i++)
-    if (newDistance <= list[i])
-      return i;  
+    if (newDistance <= list[i] || indices[i] == (size_t() - 1))
+      return i;
 
   // Control should never reach here.
   return (size_t() - 1);

Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/nearest_neighbor_sort.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/nearest_neighbor_sort.hpp	(original)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/sort_policies/nearest_neighbor_sort.hpp	Thu Feb  6 15:16:28 2014
@@ -40,7 +40,9 @@
    * @return size_t containing the position to insert into, or (size_t() - 1)
    *     if the new distance should not be inserted.
    */
-  static size_t SortDistance(const arma::vec& list, double newDistance);
+  static size_t SortDistance(const arma::vec& list,
+                             const arma::Col<size_t>& indices,
+                             double newDistance);
 
   /**
    * Return whether or not value is "better" than ref.  In this case, that means



More information about the mlpack-svn mailing list