[mlpack-svn] r13385 - mlpack/trunk/src/mlpack/methods/neighbor_search

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Fri Aug 10 16:10:36 EDT 2012


Author: rcurtin
Date: 2012-08-10 16:10:36 -0400 (Fri, 10 Aug 2012)
New Revision: 13385

Modified:
   mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_rules.hpp
   mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_rules_impl.hpp
Log:
Remove unused CanPrune().


Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_rules.hpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_rules.hpp	2012-08-10 20:10:21 UTC (rev 13384)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_rules.hpp	2012-08-10 20:10:36 UTC (rev 13385)
@@ -23,12 +23,6 @@
 
   double BaseCase(const size_t queryIndex, const size_t referenceIndex);
 
-  // For single-tree traversal.
-  bool CanPrune(const size_t queryIndex, TreeType& referenceNode);
-
-  // For dual-tree traversal.
-  bool CanPrune(TreeType& queryNode, TreeType& referenceNode);
-
   // Update bounds.  Needs a better name.
   void UpdateAfterRecursion(TreeType& queryNode, TreeType& referenceNode);
 
@@ -82,6 +76,20 @@
   double Score(TreeType& queryNode, TreeType& referenceNode) const;
 
   /**
+   * Get the score for recursion order, passing the base case result (in the
+   * situation where it may be needed to calculate the recursion order).  A low
+   * score indicates priority for recursion, while DBL_MAX indicates that the
+   * node should not be recursed into at all (it should be pruned).
+   *
+   * @param queryNode Candidate query node to recurse into.
+   * @param referenceNode Candidate reference node to recurse into.
+   * @param baseCaseResult Result of BaseCase(queryIndex, referenceNode).
+   */
+  double Score(TreeType& queryNode,
+               TreeType& referenceNode,
+               const double baseCaseResult) const;
+
+  /**
    * Re-evaluate the score for recursion order.  A low score indicates priority
    * for recursion, while DBL_MAX indicates that the node should not be recursed
    * into at all (it should be pruned).  This is used when the score has already

Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_rules_impl.hpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_rules_impl.hpp	2012-08-10 20:10:21 UTC (rev 13384)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search_rules_impl.hpp	2012-08-10 20:10:36 UTC (rev 13385)
@@ -53,34 +53,6 @@
 }
 
 template<typename SortPolicy, typename MetricType, typename TreeType>
-inline bool NeighborSearchRules<SortPolicy, MetricType, TreeType>::CanPrune(
-    const size_t queryIndex,
-    TreeType& referenceNode)
-{
-  // Find the best distance between the query point and the node.
-  const arma::vec queryPoint = querySet.unsafe_col(queryIndex);
-  const double distance =
-      SortPolicy::BestPointToNodeDistance(queryPoint, &referenceNode);
-  const double bestDistance = distances(distances.n_rows - 1, queryIndex);
-
-  // If this is better than the best distance we've seen so far, maybe there
-  // will be something down this node.
-  return !(SortPolicy::IsBetter(distance, bestDistance));
-}
-
-template<typename SortPolicy, typename MetricType, typename TreeType>
-inline bool NeighborSearchRules<SortPolicy, MetricType, TreeType>::CanPrune(
-    TreeType& queryNode,
-    TreeType& referenceNode)
-{
-  const double distance = SortPolicy::BestNodeToNodeDistance(
-      &queryNode, &referenceNode);
-  const double bestDistance = queryNode.Stat().Bound();
-
-  return !(SortPolicy::IsBetter(distance, bestDistance));
-}
-
-template<typename SortPolicy, typename MetricType, typename TreeType>
 void NeighborSearchRules<
     SortPolicy,
     MetricType,
@@ -167,6 +139,19 @@
 }
 
 template<typename SortPolicy, typename MetricType, typename TreeType>
+inline double NeighborSearchRules<SortPolicy, MetricType, TreeType>::Score(
+    TreeType& queryNode,
+    TreeType& referenceNode,
+    const double baseCaseResult) const
+{
+  const double distance = SortPolicy::BestNodeToNodeDistance(&queryNode,
+      &referenceNode, baseCaseResult);
+  const double bestDistance = queryNode.Stat().Bound();
+
+  return (SortPolicy::IsBetter(distance, bestDistance)) ? distance : DBL_MAX;
+}
+
+template<typename SortPolicy, typename MetricType, typename TreeType>
 inline double NeighborSearchRules<SortPolicy, MetricType, TreeType>::Rescore(
     TreeType& queryNode,
     TreeType& /* referenceNode */,




More information about the mlpack-svn mailing list