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);
211 #endif // MLPACK_METHODS_EMST_DTB_HPP
A Union-Find data structure.
Definition: union_find.hpp:30
An edge pair is simply two indices and a distance.
Definition: edge_pair.hpp:28
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
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.
Definition: binary_space_tree.hpp:54
double Distance() const
Get the distance.
Definition: edge_pair.hpp:63
void ComputeMST(arma::mat &results)
Iteratively find the nearest neighbor of each component until the MST is complete.
Definition: dtb_impl.hpp:119
DualTreeBoruvka(const MatType &dataset, const bool naive=false, const MetricType metric=MetricType())
Create the tree from the given dataset.
Definition: dtb_impl.hpp:52
The L_p metric for arbitrary integer p, with an option to take the root.
Definition: lmetric.hpp:63
~DualTreeBoruvka()
Delete the tree, if it was created inside the object.
Definition: dtb_impl.hpp:103
TreeType< MetricType, DTBStat, MatType > Tree
Convenience typedef.
Definition: dtb.hpp:87
Performs the MST calculation using the Dual-Tree Boruvka algorithm, using any type of tree...
Definition: dtb.hpp:83