mlpack  master
Classes | Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType > Class Template Reference

A dual tree traverser for rectangle type trees. More...

Classes

struct  NodeAndScore
 

Public Member Functions

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

Static Private Member Functions

static bool nodeComparator (const NodeAndScore &obj1, const NodeAndScore &obj2)
 

Private Attributes

size_t numBaseCases
 The number of times a base case was calculated. More...
 
size_t numPrunes
 The number of prunes. More...
 
size_t numScores
 The number of times a node combination was scored. More...
 
size_t numVisited
 The number of node combinations that have been visited during traversal. More...
 
RuleType & rule
 Reference to the rules with which the trees will be traversed. More...
 
RuleType::TraversalInfoType traversalInfo
 Traversal information, held in the class so that it isn't continually being reallocated. More...
 

Detailed Description

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType, typename StatisticType, typename MatType, typename SplitType, typename DescentType, template< typename > class AuxiliaryInformationType>
class mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >

A dual tree traverser for rectangle type trees.

Definition at line 31 of file dual_tree_traverser.hpp.

Constructor & Destructor Documentation

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser ( RuleType &  rule)

Instantiate the dual-tree traverser with the given rule set.

Member Function Documentation

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
static bool mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::nodeComparator ( const NodeAndScore obj1,
const NodeAndScore obj2 
)
inlinestaticprivate
template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::NumBaseCases ( ) const
inline

Get the number of times a base case was calculated.

Definition at line 65 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t& mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::NumBaseCases ( )
inline

Modify the number of times a base case was calculated.

Definition at line 67 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::NumPrunes ( ) const
inline

Get the number of prunes.

Definition at line 50 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t& mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::NumPrunes ( )
inline

Modify the number of prunes.

Definition at line 52 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::NumScores ( ) const
inline

Get the number of times a node combination was scored.

Definition at line 60 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t& mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::NumScores ( )
inline

Modify the number of times a node combination was scored.

Definition at line 62 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::NumVisited ( ) const
inline

Get the number of visited combinations.

Definition at line 55 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t& mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::NumVisited ( )
inline

Modify the number of visited combinations.

Definition at line 57 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
void mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::Traverse ( RectangleTree queryNode,
RectangleTree referenceNode 
)

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.
scoreThe score of the current node combination.

Member Data Documentation

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::numBaseCases
private

The number of times a base case was calculated.

Definition at line 99 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::numPrunes
private

The number of prunes.

Definition at line 90 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::numScores
private

The number of times a node combination was scored.

Definition at line 96 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
size_t mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::numVisited
private

The number of node combinations that have been visited during traversal.

Definition at line 93 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
RuleType& mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::rule
private

Reference to the rules with which the trees will be traversed.

Definition at line 87 of file dual_tree_traverser.hpp.

template<typename MetricType = metric::EuclideanDistance, typename StatisticType = EmptyStatistic, typename MatType = arma::mat, typename SplitType = RTreeSplit, typename DescentType = RTreeDescentHeuristic, template< typename > class AuxiliaryInformationType = NoAuxiliaryInformation>
template<typename MetricType , typename StatisticType , typename MatType , typename SplitType , typename DescentType , template< typename > class AuxiliaryInformationType>
RuleType::TraversalInfoType mlpack::tree::RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::DualTreeTraverser< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::traversalInfo
private

Traversal information, held in the class so that it isn't continually being reallocated.

Definition at line 103 of file dual_tree_traverser.hpp.


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