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 }; // namespace tree
00091 }; // namespace mlpack
00092 
00093 // Include implementation.
00094 #include "dual_tree_traverser_impl.hpp"
00095 
00096 #endif // __MLPACK_CORE_TREE_BINARY_SPACE_TREE_DUAL_TREE_TRAVERSER_HPP
00097 

Generated on 13 Aug 2014 for MLPACK by  doxygen 1.6.1