25 #ifndef MLPACK_METHODS_EMST_DTB_HPP    26 #define MLPACK_METHODS_EMST_DTB_HPP    78     typename MatType = arma::mat,
    79     template<
typename TreeMetricType,
    80              typename TreeStatType,
    87   typedef TreeType<MetricType, DTBStat, MatType> 
Tree;
    91   std::vector<size_t> oldFromNew;
   103   std::vector<EdgePair> edges; 
   109   arma::Col<size_t> neighborsInComponent;
   111   arma::Col<size_t> neighborsOutComponent;
   113   arma::vec neighborsDistances;
   122   struct SortEdgesHelper
   140                   const bool naive = 
false,
   141                   const MetricType metric = MetricType());
   160                   const MetricType metric = MetricType());
   182   void AddEdge(
const size_t e1, 
const size_t e2, 
const double distance);
   192   void EmitResults(arma::mat& results);
   198   void CleanupHelper(Tree* tree);
   209 #include "dtb_impl.hpp"   211 #endif // MLPACK_METHODS_EMST_DTB_HPP A Union-Find data structure. 
 
An edge pair is simply two indices and a distance. 
 
Linear algebra utility functions, generally performed on matrices or vectors. 
 
The core includes that mlpack expects; standard C++ includes and Armadillo. 
 
A binary space partitioning tree, such as a KD-tree or a ball tree. 
 
DualTreeBoruvka(const MatType &dataset, const bool naive=false, const MetricType metric=MetricType())
Create the tree from the given dataset. 
 
TreeType< MetricType, DTBStat, MatType > Tree
Convenience typedef. 
 
double Distance() const
Get the distance. 
 
void ComputeMST(arma::mat &results)
Iteratively find the nearest neighbor of each component until the MST is complete. 
 
LMetric< 2, true > EuclideanDistance
The Euclidean (L2) distance. 
 
~DualTreeBoruvka()
Delete the tree, if it was created inside the object. 
 
Performs the MST calculation using the Dual-Tree Boruvka algorithm, using any type of tree...