[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