15#ifndef MLPACK_CORE_TREE_BINARY_SPACE_TREE_BF_DUAL_TREE_TRAVERSER_HPP
16#define MLPACK_CORE_TREE_BINARY_SPACE_TREE_BF_DUAL_TREE_TRAVERSER_HPP
21#include "../binary_space_tree.hpp"
26template<
typename TreeType,
typename TraversalInfoType>
36template<
typename MetricType,
37 typename StatisticType,
39 template<
typename BoundMetricType,
typename...>
class BoundType,
40 template<
typename SplitBoundType,
typename SplitMatType>
42template<
typename RuleType>
64 std::priority_queue<QueueFrameType>& referenceQueue);
104 typename RuleType::TraversalInfoType traversalInfo;
111#include "breadth_first_dual_tree_traverser_impl.hpp"
QueueFrame< BinarySpaceTree, typename RuleType::TraversalInfoType > QueueFrameType
size_t & NumScores()
Modify the number of times a node combination was scored.
size_t & NumBaseCases()
Modify the number of times a base case was calculated.
size_t & NumVisited()
Modify the number of visited combinations.
size_t NumVisited() const
Get the number of visited combinations.
size_t NumScores() const
Get the number of times a node combination was scored.
size_t NumPrunes() const
Get the number of prunes.
BreadthFirstDualTreeTraverser(RuleType &rule)
Instantiate the dual-tree traverser with the given rule set.
void Traverse(BinarySpaceTree &queryNode, BinarySpaceTree &referenceNode)
Traverse the two trees.
size_t & NumPrunes()
Modify the number of prunes.
void Traverse(BinarySpaceTree &queryNode, std::priority_queue< QueueFrameType > &referenceQueue)
size_t NumBaseCases() const
Get the number of times a base case was calculated.
A binary space partitioning tree, such as a KD-tree or a ball tree.
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.
TraversalInfoType traversalInfo