mlpack  2.0.1
dual_tree_traverser.hpp
Go to the documentation of this file.
1 
17 #ifndef __MLPACK_CORE_TREE_BINARY_SPACE_TREE_DUAL_TREE_TRAVERSER_HPP
18 #define __MLPACK_CORE_TREE_BINARY_SPACE_TREE_DUAL_TREE_TRAVERSER_HPP
19 
20 #include <mlpack/core.hpp>
21 
22 #include "binary_space_tree.hpp"
23 
24 namespace mlpack {
25 namespace tree {
26 
27 template<typename MetricType,
28  typename StatisticType,
29  typename MatType,
30  template<typename BoundMetricType> class BoundType,
31  template<typename SplitBoundType, typename SplitMatType>
32  class SplitType>
33 template<typename RuleType>
34 class BinarySpaceTree<MetricType, StatisticType, MatType, BoundType,
35  SplitType>::DualTreeTraverser
36 {
37  public:
41  DualTreeTraverser(RuleType& rule);
42 
50  void Traverse(BinarySpaceTree& queryNode,
51  BinarySpaceTree& referenceNode);
52 
54  size_t NumPrunes() const { return numPrunes; }
56  size_t& NumPrunes() { return numPrunes; }
57 
59  size_t NumVisited() const { return numVisited; }
61  size_t& NumVisited() { return numVisited; }
62 
64  size_t NumScores() const { return numScores; }
66  size_t& NumScores() { return numScores; }
67 
69  size_t NumBaseCases() const { return numBaseCases; }
71  size_t& NumBaseCases() { return numBaseCases; }
72 
73  private:
75  RuleType& rule;
76 
78  size_t numPrunes;
79 
81  size_t numVisited;
82 
84  size_t numScores;
85 
87  size_t numBaseCases;
88 
91  typename RuleType::TraversalInfoType traversalInfo;
92 };
93 
94 } // namespace tree
95 } // namespace mlpack
96 
97 // Include implementation.
98 #include "dual_tree_traverser_impl.hpp"
99 
100 #endif // __MLPACK_CORE_TREE_BINARY_SPACE_TREE_DUAL_TREE_TRAVERSER_HPP
101 
size_t numVisited
The number of node combinations that have been visited during traversal.
size_t numScores
The number of times a node combination was scored.
Linear algebra utility functions, generally performed on matrices or vectors.
size_t NumPrunes() const
Get the number of prunes.
RuleType & rule
Reference to the rules with which the trees will be traversed.
size_t NumBaseCases() const
Get the number of times a base case was calculated.
size_t NumVisited() const
Get the number of visited combinations.
RuleType::TraversalInfoType traversalInfo
Traversal information, held in the class so that it isn&#39;t continually being reallocated.
size_t NumScores() const
Get the number of times a node combination was scored.
BinarySpaceTree()
A default constructor.
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
size_t & NumScores()
Modify the number of times a node combination was scored.
size_t & NumVisited()
Modify the number of visited combinations.
size_t & NumPrunes()
Modify the number of prunes.
size_t & NumBaseCases()
Modify the number of times a base case was calculated.
size_t numBaseCases
The number of times a base case was calculated.