---
name: "mlpack_tree_CoverTree_DualTreeTraverser"
section: "3"
platform: "linux"
package: "mlpack-doc"
version: "1.0.10-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/mlpack_tree_CoverTree_DualTreeTraverser"
---

# mlpack\_tree\_CoverTree\_DualTreeTraverser(3)

A dual-tree cover tree traverser; see dual\_tree\_traverser.hpp.

## NAME

mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \> -

A dual-tree cover tree traverser; see dual\_tree\_traverser.hpp.

## SYNOPSIS

### Classes

struct **DualCoverTreeMapEntry**\
 *Struct used for traversal.*

### Public Member Functions

**DualTreeTraverser** (RuleType &**rule**)\
 *Initialize the dual tree traverser with the given rule type.*  size\_t **NumBaseCases** () const \
 size\_t **NumPrunes** () const \
 *Get the number of pruned nodes.*  size\_t & **NumPrunes** ()\
 *Modify the number of pruned nodes.*  size\_t **NumScores** () const \
 size\_t **NumVisited** () const \
 void **Traverse** (**CoverTree** &queryNode, **CoverTree** &referenceNode)\
 *Traverse the two specified trees.*

### Private Member Functions

void **PruneMap** (**CoverTree** &queryNode, std::map\< int, std::vector\< **DualCoverTreeMapEntry** \> \> &referenceMap, std::map\< int, std::vector\< **DualCoverTreeMapEntry** \> \> &childMap)\
 *Prepare map for recursion.*  void **ReferenceRecursion** (**CoverTree** &queryNode, std::map\< int, std::vector\< **DualCoverTreeMapEntry** \> \> &referenceMap)\
 void **Traverse** (**CoverTree** &queryNode, std::map\< int, std::vector\< **DualCoverTreeMapEntry** \> \> &referenceMap)\
 *Helper function for traversal of the two trees.*

### Private Attributes

size\_t **numPrunes**\
 *The number of pruned nodes.*  RuleType & **rule**\
 *The instantiated rule set for pruning branches.*

## Detailed Description

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\>template\<typename RuleType\>class mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>

A dual-tree cover tree traverser; see dual\_tree\_traverser.hpp.

Definition at line 224 of file cover\_tree.hpp.

## Constructor & Destructor Documentation

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::DualTreeTraverser (RuleType &rule)

Initialize the dual tree traverser with the given rule type.

## Member Function Documentation

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> size\_t mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::NumBaseCases () const` [inline]`

Definition at line 58 of file dual\_tree\_traverser.hpp.

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> size\_t mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::NumPrunes () const` [inline]`

Get the number of pruned nodes.

Definition at line 50 of file dual\_tree\_traverser.hpp.

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> size\_t& mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::NumPrunes ()` [inline]`

Modify the number of pruned nodes.

Definition at line 52 of file dual\_tree\_traverser.hpp.

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> size\_t mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::NumScores () const` [inline]`

Definition at line 57 of file dual\_tree\_traverser.hpp.

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> size\_t mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::NumVisited () const` [inline]`

Definition at line 56 of file dual\_tree\_traverser.hpp.

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> void mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::PruneMap (CoverTree &queryNode, std::map\< int, std::vector\< DualCoverTreeMapEntry \> \> &referenceMap, std::map\< int, std::vector\< DualCoverTreeMapEntry \> \> &childMap)` [private]`

Prepare map for recursion.

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> void mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::ReferenceRecursion (CoverTree &queryNode, std::map\< int, std::vector\< DualCoverTreeMapEntry \> \> &referenceMap)` [private]`

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> void mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::Traverse (CoverTree &queryNode, CoverTree &referenceNode)

Traverse the two specified trees.

**Parameters:**

*queryNode* Root of query tree. \
 *referenceNode* Root of reference tree.

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> void mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::Traverse (CoverTree &queryNode, std::map\< int, std::vector\< DualCoverTreeMapEntry \> \> &referenceMap)` [private]`

Helper function for traversal of the two trees.

## Member Data Documentation

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> size\_t mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::numPrunes` [private]`

The number of pruned nodes.

Definition at line 65 of file dual\_tree\_traverser.hpp.

### template\<typename MetricType = metric::LMetric\<2, true\>, typename RootPointPolicy = FirstPointIsRoot, typename StatisticType = EmptyStatistic\> template\<typename RuleType \> RuleType& mlpack::tree::CoverTree\< MetricType, RootPointPolicy, StatisticType \>::DualTreeTraverser\< RuleType \>::rule` [private]`

The instantiated rule set for pruning branches.

Definition at line 62 of file dual\_tree\_traverser.hpp.

## Author

Generated automatically by Doxygen for MLPACK from the source code.
