mlpack
Public Member Functions | List of all members
mlpack::tree::SpillTree< MetricType, StatisticType, MatType, HyperplaneType, SplitType >::SpillDualTreeTraverser< MetricType, StatisticType, MatType, HyperplaneType, SplitType > Class Template Reference

A generic dual-tree traverser for hybrid spill trees; see spill_dual_tree_traverser.hpp for implementation. More...

Public Member Functions

 SpillDualTreeTraverser (RuleType &rule)
 Instantiate the dual-tree traverser with the given rule set.
 
void Traverse (SpillTree &queryNode, SpillTree &referenceNode, const bool bruteForce=false)
 Traverse the two trees. More...
 
size_t NumPrunes () const
 Get the number of prunes.
 
size_t & NumPrunes ()
 Modify the number of prunes.
 
size_t NumVisited () const
 Get the number of visited combinations.
 
size_t & NumVisited ()
 Modify the number of visited combinations.
 
size_t NumScores () const
 Get the number of times a node combination was scored.
 
size_t & NumScores ()
 Modify the number of times a node combination was scored.
 
size_t NumBaseCases () const
 Get the number of times a base case was calculated.
 
size_t & NumBaseCases ()
 Modify the number of times a base case was calculated.
 

Detailed Description

template<typename MetricType, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, template< typename HyperplaneMetricType > class HyperplaneType = AxisOrthogonalHyperplane, template< typename SplitMetricType, typename SplitMatType > class SplitType = MidpointSpaceSplit>
template<typename MetricType, typename StatisticType, typename MatType, template< typename HyperplaneMetricType > class HyperplaneType, template< typename SplitMetricType, typename SplitMatType > class SplitType>
class mlpack::tree::SpillTree< MetricType, StatisticType, MatType, HyperplaneType, SplitType >::SpillDualTreeTraverser< MetricType, StatisticType, MatType, HyperplaneType, SplitType >

A generic dual-tree traverser for hybrid spill trees; see spill_dual_tree_traverser.hpp for implementation.

The Defeatist template parameter determines if the traverser must do defeatist search on overlapping nodes.

Member Function Documentation

◆ Traverse()

template<typename MetricType , typename StatisticType , typename MatType , template< typename HyperplaneMetricType > class HyperplaneType, template< typename SplitMetricType, typename SplitMatType > class SplitType>
template<typename RuleType , bool Defeatist>
void mlpack::tree::SpillTree< MetricType, StatisticType, MatType, HyperplaneType, SplitType >::SpillDualTreeTraverser< RuleType, Defeatist >::Traverse ( SpillTree queryNode,
SpillTree referenceNode,
const bool  bruteForce = false 
)

Traverse the two trees.

This does not reset the number of prunes.

Parameters
queryNodeThe query node to be traversed.
referenceNodeThe reference node to be traversed.
bruteForceIf true, then do a brute-force search on the reference node instead of traversing any further.

The documentation for this class was generated from the following files: