[mlpack-git] master: Refactor CoverTree to new TreeType API. (6e3f49e)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Wed Jul 29 16:42:11 EDT 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/f8ceffae0613b350f4d6bdd46c6c8633a40b4897...6ee21879488fe98612a4619b17f8b51e8da5215b
>---------------------------------------------------------------
commit 6e3f49e05cc464765bfad21ff3d61ad6f928171b
Author: ryan <ryan at ratml.org>
Date: Fri Jul 24 14:27:13 2015 -0400
Refactor CoverTree to new TreeType API.
>---------------------------------------------------------------
6e3f49e05cc464765bfad21ff3d61ad6f928171b
src/mlpack/core/tree/cover_tree.hpp | 1 +
src/mlpack/core/tree/cover_tree/cover_tree.hpp | 4 +-
.../core/tree/cover_tree/cover_tree_impl.hpp | 168 ++++++++++-----------
.../core/tree/cover_tree/dual_tree_traverser.hpp | 8 +-
.../tree/cover_tree/dual_tree_traverser_impl.hpp | 30 ++--
.../core/tree/cover_tree/single_tree_traverser.hpp | 10 +-
.../tree/cover_tree/single_tree_traverser_impl.hpp | 24 +--
src/mlpack/core/tree/cover_tree/traits.hpp | 10 +-
8 files changed, 128 insertions(+), 127 deletions(-)
diff --git a/src/mlpack/core/tree/cover_tree.hpp b/src/mlpack/core/tree/cover_tree.hpp
index b82befc..d879b24 100644
--- a/src/mlpack/core/tree/cover_tree.hpp
+++ b/src/mlpack/core/tree/cover_tree.hpp
@@ -15,5 +15,6 @@
#include "cover_tree/dual_tree_traverser.hpp"
#include "cover_tree/dual_tree_traverser_impl.hpp"
#include "cover_tree/traits.hpp"
+#include "cover_tree/typedef.hpp"
#endif
diff --git a/src/mlpack/core/tree/cover_tree/cover_tree.hpp b/src/mlpack/core/tree/cover_tree/cover_tree.hpp
index 6dafc6a..e5e78fc 100644
--- a/src/mlpack/core/tree/cover_tree/cover_tree.hpp
+++ b/src/mlpack/core/tree/cover_tree/cover_tree.hpp
@@ -85,9 +85,9 @@ namespace tree {
* sp_mat).
*/
template<typename MetricType = metric::LMetric<2, true>,
- typename RootPointPolicy = FirstPointIsRoot,
typename StatisticType = EmptyStatistic,
- typename MatType = arma::mat>
+ typename MatType = arma::mat,
+ typename RootPointPolicy = FirstPointIsRoot>
class CoverTree
{
public:
diff --git a/src/mlpack/core/tree/cover_tree/cover_tree_impl.hpp b/src/mlpack/core/tree/cover_tree/cover_tree_impl.hpp
index 4d8247f..cd634d7 100644
--- a/src/mlpack/core/tree/cover_tree/cover_tree_impl.hpp
+++ b/src/mlpack/core/tree/cover_tree/cover_tree_impl.hpp
@@ -19,11 +19,11 @@ namespace tree {
// Create the cover tree.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::CoverTree(
const MatType& dataset,
const double base,
MetricType* metric) :
@@ -106,11 +106,11 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::CoverTree(
const MatType& dataset,
MetricType& metric,
const double base) :
@@ -190,11 +190,11 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::CoverTree(
const MatType& dataset,
const double base,
const size_t pointIndex,
@@ -238,11 +238,11 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
// Manually create a cover tree node.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::CoverTree(
const MatType& dataset,
const double base,
const size_t pointIndex,
@@ -273,11 +273,11 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::CoverTree(
const CoverTree& other) :
dataset(other.dataset),
point(other.point),
@@ -302,11 +302,11 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CoverTree(
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::~CoverTree()
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::~CoverTree()
{
// Delete each child.
for (size_t i = 0; i < children.size(); ++i)
@@ -320,12 +320,12 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::~CoverTree()
//! Return the number of descendant points.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
inline size_t
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
NumDescendants() const
{
return numDescendants;
@@ -334,12 +334,12 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
//! Return the index of a particular descendant point.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
inline size_t
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::Descendant(
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::Descendant(
const size_t index) const
{
// The first descendant is the point contained within this node.
@@ -365,11 +365,11 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::Descendant(
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+double CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MinDistance(const CoverTree* other) const
{
// Every cover tree node will contain points up to base^(scale + 1) away.
@@ -380,11 +380,11 @@ double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+double CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MinDistance(const CoverTree* other, const double distance) const
{
// We already have the distance as evaluated by the metric.
@@ -394,11 +394,11 @@ double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+double CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MinDistance(const arma::vec& other) const
{
return std::max(metric->Evaluate(dataset.col(point), other) -
@@ -407,11 +407,11 @@ double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+double CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MinDistance(const arma::vec& /* other */, const double distance) const
{
return std::max(distance - furthestDescendantDistance, 0.0);
@@ -419,11 +419,11 @@ double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+double CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MaxDistance(const CoverTree* other) const
{
return metric->Evaluate(dataset.col(point),
@@ -433,11 +433,11 @@ double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+double CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MaxDistance(const CoverTree* other, const double distance) const
{
// We already have the distance as evaluated by the metric.
@@ -447,11 +447,11 @@ double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+double CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MaxDistance(const arma::vec& other) const
{
return metric->Evaluate(dataset.col(point), other) +
@@ -460,11 +460,11 @@ double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+double CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MaxDistance(const arma::vec& /* other */, const double distance) const
{
return distance + furthestDescendantDistance;
@@ -473,11 +473,11 @@ double CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
//! Return the minimum and maximum distance to another node.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-math::Range CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+math::Range CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
RangeDistance(const CoverTree* other) const
{
const double distance = metric->Evaluate(dataset.col(point),
@@ -496,11 +496,11 @@ math::Range CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
//! point-to-point distance has already been calculated.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-math::Range CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+math::Range CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
RangeDistance(const CoverTree* other,
const double distance) const
{
@@ -516,11 +516,11 @@ math::Range CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
//! Return the minimum and maximum distance to another point.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-math::Range CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+math::Range CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
RangeDistance(const arma::vec& other) const
{
const double distance = metric->Evaluate(dataset.col(point), other);
@@ -533,11 +533,11 @@ math::Range CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
//! point-to-point distance has already been calculated.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-math::Range CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+math::Range CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
RangeDistance(const arma::vec& /* other */,
const double distance) const
{
@@ -548,12 +548,12 @@ math::Range CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
//! For a newly initialized node, create children using the near and far set.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
inline void
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CreateChildren(
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::CreateChildren(
arma::Col<size_t>& indices,
arma::vec& distances,
size_t nearSetSize,
@@ -743,11 +743,11 @@ CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::CreateChildren(
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-size_t CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+size_t CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
SplitNearFar(arma::Col<size_t>& indices,
arma::vec& distances,
const double bound,
@@ -801,11 +801,11 @@ size_t CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
// Returns the maximum distance between points.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+void CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
ComputeDistances(const size_t pointIndex,
const arma::Col<size_t>& indices,
arma::vec& distances,
@@ -823,11 +823,11 @@ void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-size_t CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+size_t CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
SortPointSet(arma::Col<size_t>& indices,
arma::vec& distances,
const size_t childFarSetSize,
@@ -888,11 +888,11 @@ size_t CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+void CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
MoveToUsedSet(arma::Col<size_t>& indices,
arma::vec& distances,
size_t& nearSetSize,
@@ -1034,11 +1034,11 @@ void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-size_t CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+size_t CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
PruneFarSet(arma::Col<size_t>& indices,
arma::vec& distances,
const double bound,
@@ -1080,11 +1080,11 @@ size_t CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
*/
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-inline void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+inline void CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
RemoveNewImplicitNodes()
{
// If we created an implicit node, take its self-child instead (this could
@@ -1116,11 +1116,11 @@ inline void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
*/
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
-std::string CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+std::string CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
ToString() const
{
std::ostringstream convert;
diff --git a/src/mlpack/core/tree/cover_tree/dual_tree_traverser.hpp b/src/mlpack/core/tree/cover_tree/dual_tree_traverser.hpp
index 963099c..bd053dc 100644
--- a/src/mlpack/core/tree/cover_tree/dual_tree_traverser.hpp
+++ b/src/mlpack/core/tree/cover_tree/dual_tree_traverser.hpp
@@ -15,12 +15,12 @@ namespace tree {
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-class CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+class CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
DualTreeTraverser
{
public:
@@ -59,7 +59,7 @@ class CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
struct DualCoverTreeMapEntry
{
//! The node this entry refers to.
- CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>*
+ CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>*
referenceNode;
//! The score of the node.
double score;
diff --git a/src/mlpack/core/tree/cover_tree/dual_tree_traverser_impl.hpp b/src/mlpack/core/tree/cover_tree/dual_tree_traverser_impl.hpp
index 65e4240..ee8881c 100644
--- a/src/mlpack/core/tree/cover_tree/dual_tree_traverser_impl.hpp
+++ b/src/mlpack/core/tree/cover_tree/dual_tree_traverser_impl.hpp
@@ -15,12 +15,12 @@ namespace tree {
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
DualTreeTraverser<RuleType>::DualTreeTraverser(RuleType& rule) :
rule(rule),
numPrunes(0)
@@ -28,12 +28,12 @@ DualTreeTraverser<RuleType>::DualTreeTraverser(RuleType& rule) :
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+void CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
DualTreeTraverser<RuleType>::Traverse(CoverTree& queryNode,
CoverTree& referenceNode)
{
@@ -57,12 +57,12 @@ DualTreeTraverser<RuleType>::Traverse(CoverTree& queryNode,
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+void CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
DualTreeTraverser<RuleType>::Traverse(
CoverTree& queryNode,
std::map<int, std::vector<DualCoverTreeMapEntry> >& referenceMap)
@@ -143,12 +143,12 @@ DualTreeTraverser<RuleType>::Traverse(
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+void CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
DualTreeTraverser<RuleType>::PruneMap(
CoverTree& queryNode,
std::map<int, std::vector<DualCoverTreeMapEntry> >& referenceMap,
@@ -264,12 +264,12 @@ DualTreeTraverser<RuleType>::PruneMap(
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+void CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
DualTreeTraverser<RuleType>::ReferenceRecursion(
CoverTree& queryNode,
std::map<int, std::vector<DualCoverTreeMapEntry> >& referenceMap)
diff --git a/src/mlpack/core/tree/cover_tree/single_tree_traverser.hpp b/src/mlpack/core/tree/cover_tree/single_tree_traverser.hpp
index 62aefe5..b2622c2 100644
--- a/src/mlpack/core/tree/cover_tree/single_tree_traverser.hpp
+++ b/src/mlpack/core/tree/cover_tree/single_tree_traverser.hpp
@@ -18,12 +18,12 @@ namespace tree {
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-class CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+class CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
SingleTreeTraverser
{
public:
@@ -54,8 +54,8 @@ class CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
size_t numPrunes;
};
-}; // namespace tree
-}; // namespace mlpack
+} // namespace tree
+} // namespace mlpack
// Include implementation.
#include "single_tree_traverser_impl.hpp"
diff --git a/src/mlpack/core/tree/cover_tree/single_tree_traverser_impl.hpp b/src/mlpack/core/tree/cover_tree/single_tree_traverser_impl.hpp
index f0663a0..2c20eb7 100644
--- a/src/mlpack/core/tree/cover_tree/single_tree_traverser_impl.hpp
+++ b/src/mlpack/core/tree/cover_tree/single_tree_traverser_impl.hpp
@@ -19,14 +19,14 @@ namespace tree {
//! This is the structure the cover tree map will use for traversal.
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
struct CoverTreeMapEntry
{
//! The node this entry refers to.
- CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>* node;
+ CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>* node;
//! The score of the node.
double score;
//! The index of the parent node.
@@ -43,12 +43,12 @@ struct CoverTreeMapEntry
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
SingleTreeTraverser<RuleType>::SingleTreeTraverser(RuleType& rule) :
rule(rule),
numPrunes(0)
@@ -56,19 +56,19 @@ SingleTreeTraverser<RuleType>::SingleTreeTraverser(RuleType& rule) :
template<
typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType
+ typename MatType,
+ typename RootPointPolicy
>
template<typename RuleType>
-void CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>::
+void CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>::
SingleTreeTraverser<RuleType>::Traverse(
const size_t queryIndex,
CoverTree& referenceNode)
{
// This is a non-recursive implementation (which should be faster than a
// recursive implementation).
- typedef CoverTreeMapEntry<MetricType, RootPointPolicy, StatisticType, MatType>
+ typedef CoverTreeMapEntry<MetricType, StatisticType, MatType, RootPointPolicy>
MapEntryType;
// We will use this map as a priority queue. Each key represents the scale,
@@ -230,7 +230,7 @@ SingleTreeTraverser<RuleType>::Traverse(
}
}
-}; // namespace tree
-}; // namespace mlpack
+} // namespace tree
+} // namespace mlpack
#endif
diff --git a/src/mlpack/core/tree/cover_tree/traits.hpp b/src/mlpack/core/tree/cover_tree/traits.hpp
index dabc55a..60d6aa1 100644
--- a/src/mlpack/core/tree/cover_tree/traits.hpp
+++ b/src/mlpack/core/tree/cover_tree/traits.hpp
@@ -20,10 +20,10 @@ namespace tree {
* mlpack/core/tree/tree_traits.hpp for more information.
*/
template<typename MetricType,
- typename RootPointPolicy,
typename StatisticType,
- typename MatType>
-class TreeTraits<CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>>
+ typename MatType,
+ typename RootPointPolicy>
+class TreeTraits<CoverTree<MetricType, StatisticType, MatType, RootPointPolicy>>
{
public:
/**
@@ -54,7 +54,7 @@ class TreeTraits<CoverTree<MetricType, RootPointPolicy, StatisticType, MatType>>
static const bool BinaryTree = false;
};
-}; // namespace tree
-}; // namespace mlpack
+} // namespace tree
+} // namespace mlpack
#endif
More information about the mlpack-git
mailing list