[mlpack-svn] r16677 - in mlpack/trunk/src/mlpack: core/tree core/tree/rectangle_tree methods/neighbor_search

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Mon Jun 9 11:24:52 EDT 2014


Author: andrewmw94
Date: Mon Jun  9 11:24:51 2014
New Revision: 16677

Log:
comment out compilation.  Some small changes to support R tree in all_knn

Modified:
   mlpack/trunk/src/mlpack/core/tree/rectangle_tree.hpp
   mlpack/trunk/src/mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic.hpp
   mlpack/trunk/src/mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic_impl.hpp
   mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree.hpp
   mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_impl.hpp
   mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_traverser.hpp
   mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp
   mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search.hpp

Modified: mlpack/trunk/src/mlpack/core/tree/rectangle_tree.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/core/tree/rectangle_tree.hpp	(original)
+++ mlpack/trunk/src/mlpack/core/tree/rectangle_tree.hpp	Mon Jun  9 11:24:51 2014
@@ -14,6 +14,8 @@
 #include "bounds.hpp"
 #include "rectangle_tree/rectangle_tree.hpp"
 #include "rectangle_tree/rectangle_tree_traverser.hpp"
+#include "rectangle_tree/r_tree_split.hpp"
+#include "rectangle_tree/r_tree_descent_heuristic.hpp"
 #include "rectangle_tree/traits.hpp"
 
 #endif

Modified: mlpack/trunk/src/mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic.hpp	(original)
+++ mlpack/trunk/src/mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic.hpp	Mon Jun  9 11:24:51 2014
@@ -5,8 +5,8 @@
  * Definition of RTreeDescentHeuristic, a class that chooses the best child of a node in
  * an R tree when inserting a new point.
  */
-#ifndef __MLPACK_CORE_TREE_RECTANGLE_TREE_R_TREE_DESCENT_HEURISTIC.HPP
-#define __MLPACK_CORE_TREE_RECTANGLE_TREE_R_TREE_DESCENT_HEURISTIC.HPP
+#ifndef __MLPACK_CORE_TREE_RECTANGLE_TREE_R_TREE_DESCENT_HEURISTIC_HPP
+#define __MLPACK_CORE_TREE_RECTANGLE_TREE_R_TREE_DESCENT_HEURISTIC_HPP
 
 #include <mlpack/core.hpp>
 
@@ -39,4 +39,4 @@
 // Include implementation.
 #include "r_tree_descent_heuristic_impl.hpp"
 
-#endif
\ No newline at end of file
+#endif

Modified: mlpack/trunk/src/mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic_impl.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic_impl.hpp	(original)
+++ mlpack/trunk/src/mlpack/core/tree/rectangle_tree/r_tree_descent_heuristic_impl.hpp	Mon Jun  9 11:24:51 2014
@@ -5,8 +5,8 @@
  * Definition of RTreeDescentHeuristic, a class that chooses the best child of a node in
  * an R tree when inserting a new point.
  */
-#ifndef __MLPACK_CORE_TREE_RECTANGLE_TREE_R_TREE_DESCENT_HEURISTIC_IMPL.HPP
-#define __MLPACK_CORE_TREE_RECTANGLE_TREE_R_TREE_DESCENT_HEURISTIC_IMPL.HPP
+#ifndef __MLPACK_CORE_TREE_RECTANGLE_TREE_R_TREE_DESCENT_HEURISTIC_IMPL_HPP
+#define __MLPACK_CORE_TREE_RECTANGLE_TREE_R_TREE_DESCENT_HEURISTIC_IMPL_HPP
 
 #include "r_tree_descent_heuristic.hpp"
 

Modified: mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree.hpp	(original)
+++ mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree.hpp	Mon Jun  9 11:24:51 2014
@@ -26,6 +26,8 @@
  * @tparam StatisticType Extra data contained in the node.  See statistic.hpp
  *     for the necessary skeleton interface.
  * @tparam MatType The dataset class.
+ * @tparam SplitType The type of split to use when inserting points.
+ * @tparam DescentType The heuristic to use when descending the tree to insert points.
  */   
 
 template<typename StatisticType = EmptyStatistic,
@@ -72,7 +74,7 @@
   //! So other classes can use TreeType::Mat.
   typedef MatType Mat;
 
-  //! A traverser for rectangle type trees; see
+  //! A traverser for rectangle type trees.  See
   //! rectangle_tree_traverser.hpp for implementation.
   template<typename RuleType>
   class RectangleTreeTraverser;

Modified: mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_impl.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_impl.hpp	(original)
+++ mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_impl.hpp	Mon Jun  9 11:24:51 2014
@@ -26,7 +26,8 @@
     const size_t maxLeafSize,
     const size_t minLeafSize,
     const size_t maxNumChildren,
-    const size_t minNumChildren):
+    const size_t minNumChildren,
+    const size_t firstDataIndex = 0):
 
 {
   this.maxNumChildren = maxNumChildren;
@@ -45,9 +46,12 @@
   this.children = new std::vector<RectangleTree*>(maxNumChildren+1); // ibid.
   
   // For now, just insert the points in order.
-  // This won't actually work for any meaningful size of data since the root changes.
-  for(int i = 0; i < n_cols; i++) {
-    insertPoint(data.col(i));
+  RectangleTree* root = this;
+  for(int i = firstDataIndex; i < n_cols; i++) {
+    root.insertPoint(data.col(i));
+    if(root.Parent() != NULL) {
+      root = root.Parent(); // OK since the level increases by at most one per iteration.
+    }
   }
   
 }

Modified: mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_traverser.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_traverser.hpp	(original)
+++ mlpack/trunk/src/mlpack/core/tree/rectangle_tree/rectangle_tree_traverser.hpp	Mon Jun  9 11:24:51 2014
@@ -2,9 +2,9 @@
   * @file rectangle_tree_traverser.hpp
   * @author Andrew Wells
   *
-  * A class for traversing rectangle type trees with a given set of rules
-  * which indicate the branches to prune and the order in which to recurse.
-  * This is a depth-first traverser.
+  * A nested class of Rectangle Tree for traversing rectangle type trees
+  * with a given set of rules which indicate the branches to prune and the
+  * order in which to recurse.  This is a depth-first traverser.
   */
 #ifndef __MLPACK_CORE_TREE_RECTANGLE_TREE_RECTANGLE_TREE_TRAVERSER_HPP
 #define __MLPACK_CORE_TREE_RECTANGLE_TREE_RECTANGLE_TREE_TRAVERSER_HPP
@@ -17,9 +17,9 @@
 namespace tree {
 
 template<typename StatisticType,
-    typename MatType,
-    typename SplitType
-    typename DescentType>
+         typename MatType,
+         typename SplitType,
+         typename DescentType>
 template<typename RuleType>
 class RectangleTree<StatisticType, MatType, SplitType, DescentType>::
     RectangleTreeTraverser
@@ -50,7 +50,7 @@
 
   //! The number of nodes which have been prenud during traversal.
   size_t numPrunes;
-}
+};
 
 
 }; // namespace tree
@@ -59,4 +59,4 @@
 // Include implementation.
 #include "rectangle_tree_traverser_impl.hpp"
 
-#endif
\ No newline at end of file
+#endif

Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp	(original)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp	Mon Jun  9 11:24:51 2014
@@ -266,8 +266,19 @@
 
       delete allknn;
     } else { // R tree.
+      // Make sure to notify the user that they are using an r tree.
+      Log::Info << "Using r tree for nearest-neighbor calculation." << endl;
       
-      
+      // Build the reference tree.
+      Log::Info << "Building reference tree..." << endl;
+      Timer::Start("tree_building");
+//       RectangleTree<NeighborSearchStat<NearestNeighborSort>,
+//                                  arma::mat,
+//                                  tree::RTreeSplit,
+//                                  tree::RTreeDescentHeuristic>
+//       refTree(referenceData, leafSize);
+      Timer::Stop("tree_building");
+        
     }
   }
   else // Cover trees.

Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search.hpp	(original)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/neighbor_search.hpp	Mon Jun  9 11:24:51 2014
@@ -13,6 +13,7 @@
 #include <string>
 
 #include <mlpack/core/tree/binary_space_tree.hpp>
+//#include <mlpack/core/tree/rectangle_tree.hpp>
 
 #include <mlpack/core/metrics/lmetric.hpp>
 #include "neighbor_search_stat.hpp"



More information about the mlpack-svn mailing list