[mlpack-svn] r13345 - mlpack/trunk/src/mlpack/core/tree/binary_space_tree

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Mon Aug 6 15:22:20 EDT 2012


Author: rcurtin
Date: 2012-08-06 15:22:20 -0400 (Mon, 06 Aug 2012)
New Revision: 13345

Modified:
   mlpack/trunk/src/mlpack/core/tree/binary_space_tree/dual_tree_traverser_impl.hpp
Log:
Ensure we check if we can prune before descending the query tree (this case is
possible and it seems, happens quite frequently).


Modified: mlpack/trunk/src/mlpack/core/tree/binary_space_tree/dual_tree_traverser_impl.hpp
===================================================================
--- mlpack/trunk/src/mlpack/core/tree/binary_space_tree/dual_tree_traverser_impl.hpp	2012-08-06 19:21:47 UTC (rev 13344)
+++ mlpack/trunk/src/mlpack/core/tree/binary_space_tree/dual_tree_traverser_impl.hpp	2012-08-06 19:22:20 UTC (rev 13345)
@@ -42,8 +42,19 @@
   {
     // We have to recurse down the query node.  In this case the recursion order
     // does not matter.
-    Traverse(*queryNode.Left(), referenceNode);
-    Traverse(*queryNode.Right(), referenceNode);
+    double leftScore = rule.Score(*queryNode.Left(), referenceNode);
+
+    if (leftScore != DBL_MAX)
+      Traverse(*queryNode.Left(), referenceNode);
+    else
+      ++numPrunes;
+
+    double rightScore = rule.Score(*queryNode.Right(), referenceNode);
+
+    if (rightScore != DBL_MAX)
+      Traverse(*queryNode.Right(), referenceNode);
+    else
+      ++numPrunes;
   }
   else if (queryNode.IsLeaf() && (!referenceNode.IsLeaf()))
   {




More information about the mlpack-svn mailing list