[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