dual_tree_traverser.hpp

Go to the documentation of this file.
00001 
00022 #ifndef __MLPACK_CORE_TREE_COVER_TREE_DUAL_TREE_TRAVERSER_HPP
00023 #define __MLPACK_CORE_TREE_COVER_TREE_DUAL_TREE_TRAVERSER_HPP
00024 
00025 #include <mlpack/core.hpp>
00026 #include <queue>
00027 
00028 namespace mlpack {
00029 namespace tree {
00030 
00032 template<typename MetricType, typename RootPointPolicy, typename StatisticType>
00033 struct DualCoverTreeMapEntry;
00034 
00035 template<typename MetricType, typename RootPointPolicy, typename StatisticType>
00036 template<typename RuleType>
00037 class CoverTree<MetricType, RootPointPolicy, StatisticType>::DualTreeTraverser
00038 {
00039  public:
00043   DualTreeTraverser(RuleType& rule);
00044 
00051   void Traverse(CoverTree& queryNode, CoverTree& referenceNode);
00052 
00056   void Traverse(CoverTree& queryNode,
00057                 std::map<int, std::vector<DualCoverTreeMapEntry<
00058                     MetricType, RootPointPolicy, StatisticType> > >&
00059                     referenceMap);
00060 
00062   size_t NumPrunes() const { return numPrunes; }
00064   size_t& NumPrunes() { return numPrunes; }
00065 
00068   size_t NumVisited() const { return 0; }
00069   size_t NumScores() const { return 0; }
00070   size_t NumBaseCases() const { return 0; }
00071 
00072  private:
00074   RuleType& rule;
00075 
00077   size_t numPrunes;
00078 
00080   void PruneMap(CoverTree& queryNode,
00081                 std::map<int, std::vector<DualCoverTreeMapEntry<
00082                     MetricType, RootPointPolicy, StatisticType> > >&
00083                     referenceMap,
00084                 std::map<int, std::vector<DualCoverTreeMapEntry<
00085                     MetricType, RootPointPolicy, StatisticType> > >& childMap);
00086 
00087   void ReferenceRecursion(CoverTree& queryNode,
00088                           std::map<int, std::vector<DualCoverTreeMapEntry<
00089                               MetricType, RootPointPolicy, StatisticType> > >&
00090                               referenceMap);
00091 };
00092 
00093 }; // namespace tree
00094 }; // namespace mlpack
00095 
00096 // Include implementation.
00097 #include "dual_tree_traverser_impl.hpp"
00098 
00099 #endif

Generated on 13 Aug 2014 for MLPACK by  doxygen 1.6.1