[mlpack-git] master: Remove duplicated code for traversal info. (eef40b9)

gitdub at mlpack.org gitdub at mlpack.org
Tue May 24 13:40:27 EDT 2016


Repository : https://github.com/mlpack/mlpack
On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/1f562a1aba7ae55475afcc95659511c2b7f694e5...5b8fdce471328f722fcd8c0f22a6d995ce22c98b

>---------------------------------------------------------------

commit eef40b993fd1cc859cf1808f49404a8b4fbd5a07
Author: MarcosPividori <marcos.pividori at gmail.com>
Date:   Tue May 24 14:07:16 2016 -0300

     Remove duplicated code for traversal info.
    
     Instead of including: methods/neighbor_search/ns_traversal_info.hpp
     Include the definition in: core/tree/traversal_info.hpp


>---------------------------------------------------------------

eef40b993fd1cc859cf1808f49404a8b4fbd5a07
 src/mlpack/core/tree/traversal_info.hpp            |  6 ++
 src/mlpack/methods/emst/dtb_rules.hpp              |  4 +-
 src/mlpack/methods/fastmks/fastmks_rules.hpp       |  5 +-
 .../methods/kmeans/dual_tree_kmeans_rules.hpp      |  4 +-
 src/mlpack/methods/neighbor_search/CMakeLists.txt  |  1 -
 .../neighbor_search/neighbor_search_rules.hpp      |  4 +-
 .../methods/neighbor_search/ns_traversal_info.hpp  | 70 ----------------------
 .../methods/range_search/range_search_rules.hpp    |  4 +-
 src/mlpack/methods/rann/ra_search_rules.hpp        |  4 +-
 9 files changed, 18 insertions(+), 84 deletions(-)

diff --git a/src/mlpack/core/tree/traversal_info.hpp b/src/mlpack/core/tree/traversal_info.hpp
index 43941e2..4ad0184 100644
--- a/src/mlpack/core/tree/traversal_info.hpp
+++ b/src/mlpack/core/tree/traversal_info.hpp
@@ -9,6 +9,9 @@
 #ifndef MLPACK_CORE_TREE_TRAVERSAL_INFO_HPP
 #define MLPACK_CORE_TREE_TRAVERSAL_INFO_HPP
 
+namespace mlpack {
+namespace tree {
+
 /**
  * The TraversalInfo class holds traversal information which is used in
  * dual-tree (and single-tree) traversals.  A traversal should be updating the
@@ -82,4 +85,7 @@ class TraversalInfo
   double lastBaseCase;
 };
 
+} // namespace tree
+} // namespace mlpack
+
 #endif
diff --git a/src/mlpack/methods/emst/dtb_rules.hpp b/src/mlpack/methods/emst/dtb_rules.hpp
index e8527a6..7f275cf 100644
--- a/src/mlpack/methods/emst/dtb_rules.hpp
+++ b/src/mlpack/methods/emst/dtb_rules.hpp
@@ -9,7 +9,7 @@
 
 #include <mlpack/core.hpp>
 
-#include "../neighbor_search/ns_traversal_info.hpp"
+#include <mlpack/core/tree/traversal_info.hpp>
 
 namespace mlpack {
 namespace emst {
@@ -105,7 +105,7 @@ class DTBRules
                  TreeType& referenceNode,
                  const double oldScore) const;
 
-  typedef neighbor::NeighborSearchTraversalInfo<TreeType> TraversalInfoType;
+  typedef typename tree::TraversalInfo<TreeType> TraversalInfoType;
 
   const TraversalInfoType& TraversalInfo() const { return traversalInfo; }
   TraversalInfoType& TraversalInfo() { return traversalInfo; }
diff --git a/src/mlpack/methods/fastmks/fastmks_rules.hpp b/src/mlpack/methods/fastmks/fastmks_rules.hpp
index eb612f2..0f4ad34 100644
--- a/src/mlpack/methods/fastmks/fastmks_rules.hpp
+++ b/src/mlpack/methods/fastmks/fastmks_rules.hpp
@@ -9,8 +9,7 @@
 
 #include <mlpack/core.hpp>
 #include <mlpack/core/tree/cover_tree/cover_tree.hpp>
-
-#include "../neighbor_search/ns_traversal_info.hpp"
+#include <mlpack/core/tree/traversal_info.hpp>
 
 namespace mlpack {
 namespace fastmks {
@@ -91,7 +90,7 @@ class FastMKSRules
   //! Modify the number of times Score() was called.
   size_t& Scores() { return scores; }
 
-  typedef neighbor::NeighborSearchTraversalInfo<TreeType> TraversalInfoType;
+  typedef typename tree::TraversalInfo<TreeType> TraversalInfoType;
 
   const TraversalInfoType& TraversalInfo() const { return traversalInfo; }
   TraversalInfoType& TraversalInfo() { return traversalInfo; }
diff --git a/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
index fbfe929..1c7a7c4 100644
--- a/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
@@ -9,7 +9,7 @@
 #ifndef MLPACK_METHODS_KMEANS_DUAL_TREE_KMEANS_RULES_HPP
 #define MLPACK_METHODS_KMEANS_DUAL_TREE_KMEANS_RULES_HPP
 
-#include <mlpack/methods/neighbor_search/ns_traversal_info.hpp>
+#include <mlpack/core/tree/traversal_info.hpp>
 
 namespace mlpack {
 namespace kmeans {
@@ -39,7 +39,7 @@ class DualTreeKMeansRules
                  TreeType& referenceNode,
                  const double oldScore);
 
-  typedef neighbor::NeighborSearchTraversalInfo<TreeType> TraversalInfoType;
+  typedef typename tree::TraversalInfo<TreeType> TraversalInfoType;
 
   TraversalInfoType& TraversalInfo() { return traversalInfo; }
   const TraversalInfoType& TraversalInfo() const { return traversalInfo; }
diff --git a/src/mlpack/methods/neighbor_search/CMakeLists.txt b/src/mlpack/methods/neighbor_search/CMakeLists.txt
index 1c01e2e..6b61e18 100644
--- a/src/mlpack/methods/neighbor_search/CMakeLists.txt
+++ b/src/mlpack/methods/neighbor_search/CMakeLists.txt
@@ -8,7 +8,6 @@ set(SOURCES
   neighbor_search_stat.hpp
   ns_model.hpp
   ns_model_impl.hpp
-  ns_traversal_info.hpp
   sort_policies/nearest_neighbor_sort.hpp
   sort_policies/nearest_neighbor_sort.cpp
   sort_policies/nearest_neighbor_sort_impl.hpp
diff --git a/src/mlpack/methods/neighbor_search/neighbor_search_rules.hpp b/src/mlpack/methods/neighbor_search/neighbor_search_rules.hpp
index e428708..474d22b 100644
--- a/src/mlpack/methods/neighbor_search/neighbor_search_rules.hpp
+++ b/src/mlpack/methods/neighbor_search/neighbor_search_rules.hpp
@@ -8,7 +8,7 @@
 #ifndef MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
 #define MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
 
-#include "ns_traversal_info.hpp"
+#include <mlpack/core/tree/traversal_info.hpp>
 
 namespace mlpack {
 namespace neighbor {
@@ -94,7 +94,7 @@ class NeighborSearchRules
   size_t& Scores() { return scores; }
 
   //! Convenience typedef.
-  typedef NeighborSearchTraversalInfo<TreeType> TraversalInfoType;
+  typedef typename tree::TraversalInfo<TreeType> TraversalInfoType;
 
   //! Get the traversal info.
   const TraversalInfoType& TraversalInfo() const { return traversalInfo; }
diff --git a/src/mlpack/methods/neighbor_search/ns_traversal_info.hpp b/src/mlpack/methods/neighbor_search/ns_traversal_info.hpp
deleted file mode 100644
index 27bc70e..0000000
--- a/src/mlpack/methods/neighbor_search/ns_traversal_info.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * @file ns_traversal_info.hpp
- * @author Ryan Curtin
- *
- * This class holds traversal information for dual-tree traversals that are
- * using the NeighborSearchRules RuleType.
- */
-#ifndef MLPACK_METHODS_NEIGHBOR_SEARCH_TRAVERSAL_INFO_HPP
-#define MLPACK_METHODS_NEIGHBOR_SEARCH_TRAVERSAL_INFO_HPP
-
-namespace mlpack {
-namespace neighbor {
-
-/**
- * Traversal information for NeighborSearch.  This information is used to make
- * parent-child prunes or parent-parent prunes in Score() without needing to
- * evaluate the distance between two nodes.
- *
- * The information held by this class is the last node combination visited
- * before the current node combination was recursed into and the distance
- * between the node centroids.
- */
-template<typename TreeType>
-class NeighborSearchTraversalInfo
-{
- public:
-  /**
-   * Create the TraversalInfo object and initialize the pointers to NULL.
-   */
-  NeighborSearchTraversalInfo() :
-      lastQueryNode(NULL),
-      lastReferenceNode(NULL),
-      lastScore(0.0),
-      lastBaseCase(0.0) { /* Nothing to do. */ }
-
-   //! Get the last query node.
-  TreeType* LastQueryNode() const { return lastQueryNode; }
-  //! Modify the last query node.
-  TreeType*& LastQueryNode() { return lastQueryNode; }
-
-  //! Get the last reference node.
-  TreeType* LastReferenceNode() const { return lastReferenceNode; }
-  //! Modify the last reference node.
-  TreeType*& LastReferenceNode() { return lastReferenceNode; }
-
-  //! Get the score associated with the last query and reference nodes.
-  double LastScore() const { return lastScore; }
-  //! Modify the score associated with the last query and reference nodes.
-  double& LastScore() { return lastScore; }
-
-  //! Get the base case associated with the last node combination.
-  double LastBaseCase() const { return lastBaseCase; }
-  //! Modify the base case associated with the last node combination.
-  double& LastBaseCase() { return lastBaseCase; }
-
- private:
-  //! The last query node.
-  TreeType* lastQueryNode;
-  //! The last reference node.
-  TreeType* lastReferenceNode;
-  //! The last distance.
-  double lastScore;
-  //! The last base case.
-  double lastBaseCase;
-};
-
-} // namespace neighbor
-} // namespace mlpack
-
-#endif
diff --git a/src/mlpack/methods/range_search/range_search_rules.hpp b/src/mlpack/methods/range_search/range_search_rules.hpp
index bfa82d0..e392ee4 100644
--- a/src/mlpack/methods/range_search/range_search_rules.hpp
+++ b/src/mlpack/methods/range_search/range_search_rules.hpp
@@ -7,7 +7,7 @@
 #ifndef MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_RULES_HPP
 #define MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_RULES_HPP
 
-#include "../neighbor_search/ns_traversal_info.hpp"
+#include <mlpack/core/tree/traversal_info.hpp>
 
 namespace mlpack {
 namespace range {
@@ -96,7 +96,7 @@ class RangeSearchRules
                  TreeType& referenceNode,
                  const double oldScore) const;
 
-  typedef neighbor::NeighborSearchTraversalInfo<TreeType> TraversalInfoType;
+  typedef typename tree::TraversalInfo<TreeType> TraversalInfoType;
 
   const TraversalInfoType& TraversalInfo() const { return traversalInfo; }
   TraversalInfoType& TraversalInfo() { return traversalInfo; }
diff --git a/src/mlpack/methods/rann/ra_search_rules.hpp b/src/mlpack/methods/rann/ra_search_rules.hpp
index 25be8c0..1037af4 100644
--- a/src/mlpack/methods/rann/ra_search_rules.hpp
+++ b/src/mlpack/methods/rann/ra_search_rules.hpp
@@ -9,7 +9,7 @@
 #ifndef MLPACK_METHODS_RANN_RA_SEARCH_RULES_HPP
 #define MLPACK_METHODS_RANN_RA_SEARCH_RULES_HPP
 
-#include "../neighbor_search/ns_traversal_info.hpp"
+#include <mlpack/core/tree/traversal_info.hpp>
 
 namespace mlpack {
 namespace neighbor {
@@ -185,7 +185,7 @@ class RASearchRules
       return arma::sum(numSamplesMade);
   }
 
-  typedef neighbor::NeighborSearchTraversalInfo<TreeType> TraversalInfoType;
+  typedef typename tree::TraversalInfo<TreeType> TraversalInfoType;
 
   const TraversalInfoType& TraversalInfo() const { return traversalInfo; }
   TraversalInfoType& TraversalInfo() { return traversalInfo; }




More information about the mlpack-git mailing list