12 #ifndef MLPACK_METHODS_EMST_DTB_RULES_HPP 13 #define MLPACK_METHODS_EMST_DTB_RULES_HPP 22 template<
typename MetricType,
typename TreeType>
33 double BaseCase(
const size_t queryIndex,
const size_t referenceIndex);
43 double Score(
const size_t queryIndex, TreeType& referenceNode);
56 double Rescore(
const size_t queryIndex,
57 TreeType& referenceNode,
58 const double oldScore);
68 double Score(TreeType& queryNode, TreeType& referenceNode);
81 double Rescore(TreeType& queryNode,
82 TreeType& referenceNode,
83 const double oldScore)
const;
138 #include "dtb_rules_impl.hpp" A Union-Find data structure.
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.
double BaseCase(const size_t queryIndex, const size_t referenceIndex)
The TraversalInfo class holds traversal information which is used in dual-tree (and single-tree) trav...
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.
arma::vec & neighborsDistances
The distance to the candidate nearest neighbor for each component.
size_t & BaseCases()
Modify the number of base cases performed.
TraversalInfoType traversalInfo
size_t Scores() const
Get the number of node combinations that have been scored.
UnionFind & connections
Stores the tree structure so far.
arma::Col< size_t > & neighborsInComponent
The index of the point in the component that is an endpoint of the candidate edge.
TraversalInfoType & TraversalInfo()
tree::TraversalInfo< TreeType > TraversalInfoType
DTBRules(const arma::mat &dataSet, UnionFind &connections, arma::vec &neighborsDistances, arma::Col< size_t > &neighborsInComponent, arma::Col< size_t > &neighborsOutComponent, MetricType &metric)
double Score(const size_t queryIndex, TreeType &referenceNode)
Get the score for recursion order.
MetricType & metric
The instantiated metric.
size_t baseCases
The number of base cases calculated.
size_t BaseCases() const
Get the number of base cases performed.
const arma::mat & dataSet
The data points.
arma::Col< size_t > & neighborsOutComponent
The index of the point outside of the component that is an endpoint of the candidate edge...
size_t & Scores()
Modify the number of node combinations that have been scored.
double Rescore(const size_t queryIndex, TreeType &referenceNode, const double oldScore)
Re-evaluate the score for recursion order.
const TraversalInfoType & TraversalInfo() const