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

# mlpack\_range\_RangeSearchRules(3)

## NAME

mlpack::range::RangeSearchRules\< MetricType, TreeType \> -

## SYNOPSIS

### Public Types

typedef \
 **neighbor::NeighborSearchTraversalInfo**\
 \< TreeType \> **TraversalInfoType**"\

### Public Member Functions

**RangeSearchRules** (const arma::mat &**referenceSet**, const arma::mat &**querySet**, const **math::Range** &**range**, std::vector\< std::vector\< size\_t \> \> &**neighbors**, std::vector\< std::vector\< double \> \> &**distances**, MetricType &**metric**)\
 *Construct the* **RangeSearchRules** *object.*  double **BaseCase** (const size\_t queryIndex, const size\_t referenceIndex)\
 *Compute the base case between the given query point and reference point.*  double **Rescore** (const size\_t queryIndex, TreeType &referenceNode, const double oldScore) const \
 *Re-evaluate the score for recursion order.*  double **Rescore** (TreeType &queryNode, TreeType &referenceNode, const double oldScore) const \
 *Re-evaluate the score for recursion order.*  double **Score** (const size\_t queryIndex, TreeType &referenceNode)\
 *Get the score for recursion order.*  double **Score** (TreeType &queryNode, TreeType &referenceNode)\
 *Get the score for recursion order.*  const **TraversalInfoType** & **TraversalInfo** () const \
 **TraversalInfoType** & **TraversalInfo** ()\

### Private Member Functions

void **AddResult** (const size\_t queryIndex, TreeType &referenceNode)\
 *Add all the points in the given node to the results for the given query point.*

### Private Attributes

std::vector\< std::vector\
 \< double \> \> & **distances**"\
 *The vector the resultant neighbor distances should be stored in.*  size\_t **lastQueryIndex**\
 *The last query index.*  size\_t **lastReferenceIndex**\
 *The last reference index.*  MetricType & **metric**\
 *The instantiated metric.*  std::vector\< std::vector\
 \< size\_t \> \> & **neighbors**"\
 *The vector the resultant neighbor indices should be stored in.*  const arma::mat & **querySet**\
 *The query set.*  const **math::Range** & **range**\
 *The range of distances for which we are searching.*  const arma::mat & **referenceSet**\
 *The reference set.*  **TraversalInfoType** **traversalInfo**\

## Detailed Description

### template\<typename MetricType, typename TreeType\>class mlpack::range::RangeSearchRules\< MetricType, TreeType \>

Definition at line 32 of file range\_search\_rules.hpp.

## Member Typedef Documentation

### template\<typename MetricType , typename TreeType \> typedef neighbor::NeighborSearchTraversalInfo\<TreeType\> mlpack::range::RangeSearchRules\< MetricType, TreeType \>::TraversalInfoType

Definition at line 111 of file range\_search\_rules.hpp.

## Constructor & Destructor Documentation

### template\<typename MetricType , typename TreeType \> mlpack::range::RangeSearchRules\< MetricType, TreeType \>::RangeSearchRules (const arma::mat &referenceSet, const arma::mat &querySet, const math::Range &range, std::vector\< std::vector\< size\_t \> \> &neighbors, std::vector\< std::vector\< double \> \> &distances, MetricType &metric)

Construct the **RangeSearchRules** object. This is usually done from within the **RangeSearch** class at search time.

**Parameters:**

*referenceSet* Set of reference data. \
 *querySet* Set of query data. \
 *range* Range to search for. \
 *neighbors* Vector to store resulting neighbors in. \
 *distances* Vector to store resulting distances in. \
 *metric* Instantiated metric.

## Member Function Documentation

### template\<typename MetricType , typename TreeType \> void mlpack::range::RangeSearchRules\< MetricType, TreeType \>::AddResult (const size\_tqueryIndex, TreeType &referenceNode)` [private]`

Add all the points in the given node to the results for the given query point. If the base case has already been calculated, we make sure to not add that to the results twice.

### template\<typename MetricType , typename TreeType \> double mlpack::range::RangeSearchRules\< MetricType, TreeType \>::BaseCase (const size\_tqueryIndex, const size\_treferenceIndex)

Compute the base case between the given query point and reference point.

**Parameters:**

*queryIndex* Index of query point. \
 *referenceIndex* Index of reference point.

### template\<typename MetricType , typename TreeType \> double mlpack::range::RangeSearchRules\< MetricType, TreeType \>::Rescore (const size\_tqueryIndex, TreeType &referenceNode, const doubleoldScore) const

Re-evaluate the score for recursion order. A low score indicates priority for recursion, while DBL\_MAX indicates that the node should not be recursed into at all (it should be pruned). This is used when the score has already been calculated, but another recursion may have modified the bounds for pruning. So the old score is checked against the new pruning bound.

**Parameters:**

*queryIndex* Index of query point. \
 *referenceNode* Candidate node to be recursed into. \
 *oldScore* Old score produced by **Score()** (or **Rescore()**).

### template\<typename MetricType , typename TreeType \> double mlpack::range::RangeSearchRules\< MetricType, TreeType \>::Rescore (TreeType &queryNode, TreeType &referenceNode, const doubleoldScore) const

Re-evaluate the score for recursion order. A low score indicates priority for recursion, while DBL\_MAX indicates that the node should not be recursed into at all (it should be pruned). This is used when the score has already been calculated, but another recursion may have modified the bounds for pruning. So the old score is checked against the new pruning bound.

**Parameters:**

*queryNode* Candidate query node to recurse into. \
 *referenceNode* Candidate reference node to recurse into. \
 *oldScore* Old score produced by **Score()** (or **Rescore()**).

### template\<typename MetricType , typename TreeType \> double mlpack::range::RangeSearchRules\< MetricType, TreeType \>::Score (const size\_tqueryIndex, TreeType &referenceNode)

Get the score for recursion order. A low score indicates priority for recursion, while DBL\_MAX indicates that the node should not be recursed into at all (it should be pruned).

**Parameters:**

*queryIndex* Index of query point. \
 *referenceNode* Candidate node to be recursed into.

### template\<typename MetricType , typename TreeType \> double mlpack::range::RangeSearchRules\< MetricType, TreeType \>::Score (TreeType &queryNode, TreeType &referenceNode)

Get the score for recursion order. A low score indicates priority for recursion, while DBL\_MAX indicates that the node should not be recursed into at all (it should be pruned).

**Parameters:**

*queryNode* Candidate query node to recurse into. \
 *referenceNode* Candidate reference node to recurse into.

### template\<typename MetricType , typename TreeType \> const TraversalInfoType& mlpack::range::RangeSearchRules\< MetricType, TreeType \>::TraversalInfo () const` [inline]`

Definition at line 113 of file range\_search\_rules.hpp.

References mlpack::range::RangeSearchRules\< MetricType, TreeType \>::traversalInfo.

### template\<typename MetricType , typename TreeType \> TraversalInfoType& mlpack::range::RangeSearchRules\< MetricType, TreeType \>::TraversalInfo ()` [inline]`

Definition at line 114 of file range\_search\_rules.hpp.

References mlpack::range::RangeSearchRules\< MetricType, TreeType \>::traversalInfo.

## Member Data Documentation

### template\<typename MetricType , typename TreeType \> std::vector\<std::vector\<double\> \>& mlpack::range::RangeSearchRules\< MetricType, TreeType \>::distances` [private]`

The vector the resultant neighbor distances should be stored in.

Definition at line 130 of file range\_search\_rules.hpp.

### template\<typename MetricType , typename TreeType \> size\_t mlpack::range::RangeSearchRules\< MetricType, TreeType \>::lastQueryIndex` [private]`

The last query index.

Definition at line 136 of file range\_search\_rules.hpp.

### template\<typename MetricType , typename TreeType \> size\_t mlpack::range::RangeSearchRules\< MetricType, TreeType \>::lastReferenceIndex` [private]`

The last reference index.

Definition at line 138 of file range\_search\_rules.hpp.

### template\<typename MetricType , typename TreeType \> MetricType& mlpack::range::RangeSearchRules\< MetricType, TreeType \>::metric` [private]`

The instantiated metric.

Definition at line 133 of file range\_search\_rules.hpp.

### template\<typename MetricType , typename TreeType \> std::vector\<std::vector\<size\_t\> \>& mlpack::range::RangeSearchRules\< MetricType, TreeType \>::neighbors` [private]`

The vector the resultant neighbor indices should be stored in.

Definition at line 127 of file range\_search\_rules.hpp.

### template\<typename MetricType , typename TreeType \> const arma::mat& mlpack::range::RangeSearchRules\< MetricType, TreeType \>::querySet` [private]`

The query set.

Definition at line 121 of file range\_search\_rules.hpp.

### template\<typename MetricType , typename TreeType \> const math::Range& mlpack::range::RangeSearchRules\< MetricType, TreeType \>::range` [private]`

The range of distances for which we are searching.

Definition at line 124 of file range\_search\_rules.hpp.

### template\<typename MetricType , typename TreeType \> const arma::mat& mlpack::range::RangeSearchRules\< MetricType, TreeType \>::referenceSet` [private]`

The reference set.

Definition at line 118 of file range\_search\_rules.hpp.

### template\<typename MetricType , typename TreeType \> TraversalInfoType mlpack::range::RangeSearchRules\< MetricType, TreeType \>::traversalInfo` [private]`

Definition at line 146 of file range\_search\_rules.hpp.

Referenced by mlpack::range::RangeSearchRules\< MetricType, TreeType \>::TraversalInfo().

## Author

Generated automatically by Doxygen for MLPACK from the source code.
