MLPACK  1.0.10
dtb_rules.hpp
Go to the documentation of this file.
1 
22 #ifndef __MLPACK_METHODS_EMST_DTB_RULES_HPP
23 #define __MLPACK_METHODS_EMST_DTB_RULES_HPP
24 
25 #include <mlpack/core.hpp>
26 
27 #include "../neighbor_search/ns_traversal_info.hpp"
28 
29 namespace mlpack {
30 namespace emst {
31 
32 template<typename MetricType, typename TreeType>
33 class DTBRules
34 {
35  public:
36  DTBRules(const arma::mat& dataSet,
38  arma::vec& neighborsDistances,
39  arma::Col<size_t>& neighborsInComponent,
40  arma::Col<size_t>& neighborsOutComponent,
41  MetricType& metric);
42 
43  double BaseCase(const size_t queryIndex, const size_t referenceIndex);
44 
53  double Score(const size_t queryIndex, TreeType& referenceNode);
54 
65  double Score(const size_t queryIndex,
66  TreeType& referenceNode,
67  const double baseCaseResult);
68 
80  double Rescore(const size_t queryIndex,
81  TreeType& referenceNode,
82  const double oldScore);
83 
92  double Score(TreeType& queryNode, TreeType& referenceNode);
93 
104  double Score(TreeType& queryNode,
105  TreeType& referenceNode,
106  const double baseCaseResult);
107 
119  double Rescore(TreeType& queryNode,
120  TreeType& referenceNode,
121  const double oldScore) const;
122 
124 
125  const TraversalInfoType& TraversalInfo() const { return traversalInfo; }
127 
129  size_t BaseCases() const { return baseCases; }
131  size_t& BaseCases() { return baseCases; }
132 
134  size_t Scores() const { return scores; }
136  size_t& Scores() { return scores; }
137 
138  private:
140  const arma::mat& dataSet;
141 
144 
146  arma::vec& neighborsDistances;
147 
150  arma::Col<size_t>& neighborsInComponent;
151 
154  arma::Col<size_t>& neighborsOutComponent;
155 
157  MetricType& metric;
158 
162  inline double CalculateBound(TreeType& queryNode) const;
163 
165 
167  size_t baseCases;
169  size_t scores;
170 
171 }; // class DTBRules
172 
173 } // emst namespace
174 } // mlpack namespace
175 
176 #include "dtb_rules_impl.hpp"
177 
178 #endif
A Union-Find data structure.
Definition: union_find.hpp:40
double CalculateBound(TreeType &queryNode) const
Update the bound for the given query node.
size_t scores
The number of node combinations that have been scored.
Definition: dtb_rules.hpp:169
double BaseCase(const size_t queryIndex, const size_t referenceIndex)
arma::vec & neighborsDistances
The distance to the candidate nearest neighbor for each component.
Definition: dtb_rules.hpp:146
size_t & BaseCases()
Modify the number of base cases performed.
Definition: dtb_rules.hpp:131
TraversalInfoType traversalInfo
Definition: dtb_rules.hpp:164
size_t Scores() const
Get the number of node combinations that have been scored.
Definition: dtb_rules.hpp:134
UnionFind & connections
Stores the tree structure so far.
Definition: dtb_rules.hpp:143
arma::Col< size_t > & neighborsInComponent
The index of the point in the component that is an endpoint of the candidate edge.
Definition: dtb_rules.hpp:150
Traversal information for NeighborSearch.
TraversalInfoType & TraversalInfo()
Definition: dtb_rules.hpp:126
DTBRules(const arma::mat &dataSet, UnionFind &connections, arma::vec &neighborsDistances, arma::Col< size_t > &neighborsInComponent, arma::Col< size_t > &neighborsOutComponent, MetricType &metric)
neighbor::NeighborSearchTraversalInfo< TreeType > TraversalInfoType
Definition: dtb_rules.hpp:123
double Score(const size_t queryIndex, TreeType &referenceNode)
Get the score for recursion order.
MetricType & metric
The instantiated metric.
Definition: dtb_rules.hpp:157
size_t baseCases
The number of base cases calculated.
Definition: dtb_rules.hpp:167
size_t BaseCases() const
Get the number of base cases performed.
Definition: dtb_rules.hpp:129
const arma::mat & dataSet
The data points.
Definition: dtb_rules.hpp:140
arma::Col< size_t > & neighborsOutComponent
The index of the point outside of the component that is an endpoint of the candidate edge...
Definition: dtb_rules.hpp:154
size_t & Scores()
Modify the number of node combinations that have been scored.
Definition: dtb_rules.hpp:136
double Rescore(const size_t queryIndex, TreeType &referenceNode, const double oldScore)
Re-evaluate the score for recursion order.
const TraversalInfoType & TraversalInfo() const
Definition: dtb_rules.hpp:125