mlpack 3.4.2
single_tree_traverser.hpp
Go to the documentation of this file.
1
14#ifndef MLPACK_CORE_TREE_RECTANGLE_TREE_SINGLE_TREE_TRAVERSER_HPP
15#define MLPACK_CORE_TREE_RECTANGLE_TREE_SINGLE_TREE_TRAVERSER_HPP
16
17#include <mlpack/prereqs.hpp>
18
19#include "rectangle_tree.hpp"
20
21namespace mlpack {
22namespace tree {
23
24template<typename MetricType,
25 typename StatisticType,
26 typename MatType,
27 typename SplitType,
28 typename DescentType,
29 template<typename> class AuxiliaryInformationType>
30template<typename RuleType>
31class RectangleTree<MetricType, StatisticType, MatType, SplitType,
32 DescentType, AuxiliaryInformationType>::SingleTreeTraverser
33{
34 public:
38 SingleTreeTraverser(RuleType& rule);
39
47 void Traverse(const size_t queryIndex, const RectangleTree& referenceNode);
48
50 size_t NumPrunes() const { return numPrunes; }
52 size_t& NumPrunes() { return numPrunes; }
53
54 private:
55 // We use this class and this function to make the sorting and scoring easy
56 // and efficient:
57 struct NodeAndScore
58 {
59 RectangleTree* node;
60 double score;
61 };
62
63 static bool NodeComparator(const NodeAndScore& obj1, const NodeAndScore& obj2)
64 {
65 return obj1.score < obj2.score;
66 }
67
69 RuleType& rule;
70
72 size_t numPrunes;
73};
74
75} // namespace tree
76} // namespace mlpack
77
78// Include implementation.
79#include "single_tree_traverser_impl.hpp"
80
81#endif
A single traverser for rectangle type trees.
void Traverse(const size_t queryIndex, const RectangleTree &referenceNode)
Traverse the tree with the given point.
size_t NumPrunes() const
Get the number of prunes.
size_t & NumPrunes()
Modify the number of prunes.
SingleTreeTraverser(RuleType &rule)
Instantiate the traverser with the given rule set.
A rectangle type tree tree, such as an R-tree or X-tree.
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.