dual_tree_traverser.hpp
Go to the documentation of this file.00001
00025 #ifndef __MLPACK_CORE_TREE_BINARY_SPACE_TREE_DUAL_TREE_TRAVERSER_HPP
00026 #define __MLPACK_CORE_TREE_BINARY_SPACE_TREE_DUAL_TREE_TRAVERSER_HPP
00027
00028 #include <mlpack/core.hpp>
00029
00030 #include "binary_space_tree.hpp"
00031
00032 namespace mlpack {
00033 namespace tree {
00034
00035 template<typename BoundType, typename StatisticType, typename MatType>
00036 template<typename RuleType>
00037 class BinarySpaceTree<BoundType, StatisticType, MatType>::DualTreeTraverser
00038 {
00039 public:
00043 DualTreeTraverser(RuleType& rule);
00044
00051 void Traverse(BinarySpaceTree& queryNode, BinarySpaceTree& referenceNode);
00052
00054 size_t NumPrunes() const { return numPrunes; }
00056 size_t& NumPrunes() { return numPrunes; }
00057
00059 size_t NumVisited() const { return numVisited; }
00061 size_t& NumVisited() { return numVisited; }
00062
00064 size_t NumScores() const { return numScores; }
00066 size_t& NumScores() { return numScores; }
00067
00069 size_t NumBaseCases() const { return numBaseCases; }
00071 size_t& NumBaseCases() { return numBaseCases; }
00072
00073 private:
00075 RuleType& rule;
00076
00078 size_t numPrunes;
00079
00081 size_t numVisited;
00082
00084 size_t numScores;
00085
00087 size_t numBaseCases;
00088 };
00089
00090 };
00091 };
00092
00093
00094 #include "dual_tree_traverser_impl.hpp"
00095
00096 #endif // __MLPACK_CORE_TREE_BINARY_SPACE_TREE_DUAL_TREE_TRAVERSER_HPP
00097