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

# mlpack\_fastmks\_FastMKSRules(3)

The base case and pruning rules for FastMKS (fast max-kernel search).

## NAME

mlpack::fastmks::FastMKSRules\< KernelType, TreeType \> -

The base case and pruning rules for **FastMKS** (fast max-kernel search).

## SYNOPSIS

### Public Types

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

### Public Member Functions

**FastMKSRules** (const arma::mat &**referenceSet**, const arma::mat &**querySet**, arma::Mat\< size\_t \> &**indices**, arma::mat &**products**, KernelType &**kernel**)\
 double **BaseCase** (const size\_t queryIndex, const size\_t referenceIndex)\
 *Compute the base case (kernel value) between two points.*  size\_t **BaseCases** () const \
 *Get the number of times* **BaseCase()** *was called.*  size\_t & **BaseCases** ()\
 *Modify the number of times* **BaseCase()** *was called.*  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.*  size\_t **Scores** () const \
 *Get the number of times* **Score()** *was called.*  size\_t & **Scores** ()\
 *Modify the number of times* **Score()** *was called.*  const **TraversalInfoType** & **TraversalInfo** () const \
 **TraversalInfoType** & **TraversalInfo** ()\

### Private Member Functions

double **CalculateBound** (TreeType &queryNode) const \
 *Calculate the bound for a given query node.*  void **InsertNeighbor** (const size\_t queryIndex, const size\_t pos, const size\_t neighbor, const double distance)\
 *Utility function to insert neighbor into list of results.*

### Private Attributes

size\_t **baseCases**\
 *For benchmarking.*  arma::Mat\< size\_t \> & **indices**\
 *The indices of the maximum kernel results.*  KernelType & **kernel**\
 *The instantiated kernel.*  double **lastKernel**\
 *The last kernel evaluation resulting from* **BaseCase()***.*  size\_t **lastQueryIndex**\
 *The last query index* **BaseCase()** *was called with.*  size\_t **lastReferenceIndex**\
 *The last reference index* **BaseCase()** *was called with.*  arma::mat & **products**\
 *The maximum kernels.*  arma::vec **queryKernels**\
 *Cached query set self-kernels (\|\| q \|\| for each q).*  const arma::mat & **querySet**\
 *The query dataset.*  arma::vec **referenceKernels**\
 *Cached reference set self-kernels (\|\| r \|\| for each r).*  const arma::mat & **referenceSet**\
 *The reference dataset.*  size\_t **scores**\
 *For benchmarking.*  **TraversalInfoType** **traversalInfo**\

## Detailed Description

### template\<typename KernelType, typename TreeType\>class mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>

The base case and pruning rules for **FastMKS** (fast max-kernel search).

Definition at line 37 of file fastmks\_rules.hpp.

## Member Typedef Documentation

### template\<typename KernelType , typename TreeType \> typedef neighbor::NeighborSearchTraversalInfo\<TreeType\> mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::TraversalInfoType

Definition at line 109 of file fastmks\_rules.hpp.

## Constructor & Destructor Documentation

### template\<typename KernelType , typename TreeType \> mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::FastMKSRules (const arma::mat &referenceSet, const arma::mat &querySet, arma::Mat\< size\_t \> &indices, arma::mat &products, KernelType &kernel)

## Member Function Documentation

### template\<typename KernelType , typename TreeType \> double mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::BaseCase (const size\_tqueryIndex, const size\_treferenceIndex)

Compute the base case (kernel value) between two points.

### template\<typename KernelType , typename TreeType \> size\_t mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::BaseCases () const` [inline]`

Get the number of times **BaseCase()** was called.

Definition at line 100 of file fastmks\_rules.hpp.

References mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::baseCases.

### template\<typename KernelType , typename TreeType \> size\_t& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::BaseCases ()` [inline]`

Modify the number of times **BaseCase()** was called.

Definition at line 102 of file fastmks\_rules.hpp.

References mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::baseCases.

### template\<typename KernelType , typename TreeType \> double mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::CalculateBound (TreeType &queryNode) const` [private]`

Calculate the bound for a given query node.

### template\<typename KernelType , typename TreeType \> void mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::InsertNeighbor (const size\_tqueryIndex, const size\_tpos, const size\_tneighbor, const doubledistance)` [private]`

Utility function to insert neighbor into list of results.

### template\<typename KernelType , typename TreeType \> double mlpack::fastmks::FastMKSRules\< KernelType, 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 a 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 KernelType , typename TreeType \> double mlpack::fastmks::FastMKSRules\< KernelType, 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 a 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 be recursed into. \
 *referenceNode* Candidate reference node to be recursed into. \
 *oldScore* Old score produced by **Score()** (or **Rescore()**).

### template\<typename KernelType , typename TreeType \> double mlpack::fastmks::FastMKSRules\< KernelType, 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 to be recursed into.

### template\<typename KernelType , typename TreeType \> double mlpack::fastmks::FastMKSRules\< KernelType, 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 be recursed into. \
 *referenceNode* Candidate reference node to be recursed into.

### template\<typename KernelType , typename TreeType \> size\_t mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::Scores () const` [inline]`

Get the number of times **Score()** was called.

Definition at line 105 of file fastmks\_rules.hpp.

References mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::scores.

### template\<typename KernelType , typename TreeType \> size\_t& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::Scores ()` [inline]`

Modify the number of times **Score()** was called.

Definition at line 107 of file fastmks\_rules.hpp.

References mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::scores.

### template\<typename KernelType , typename TreeType \> const TraversalInfoType& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::TraversalInfo () const` [inline]`

Definition at line 111 of file fastmks\_rules.hpp.

References mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::traversalInfo.

### template\<typename KernelType , typename TreeType \> TraversalInfoType& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::TraversalInfo ()` [inline]`

Definition at line 112 of file fastmks\_rules.hpp.

References mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::traversalInfo.

## Member Data Documentation

### template\<typename KernelType , typename TreeType \> size\_t mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::baseCases` [private]`

For benchmarking.

Definition at line 150 of file fastmks\_rules.hpp.

Referenced by mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::BaseCases().

### template\<typename KernelType , typename TreeType \> arma::Mat\<size\_t\>& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::indices` [private]`

The indices of the maximum kernel results.

Definition at line 121 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> KernelType& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::kernel` [private]`

The instantiated kernel.

Definition at line 131 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> double mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::lastKernel` [private]`

The last kernel evaluation resulting from **BaseCase()**.

Definition at line 138 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> size\_t mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::lastQueryIndex` [private]`

The last query index **BaseCase()** was called with.

Definition at line 134 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> size\_t mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::lastReferenceIndex` [private]`

The last reference index **BaseCase()** was called with.

Definition at line 136 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> arma::mat& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::products` [private]`

The maximum kernels.

Definition at line 123 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> arma::vec mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::queryKernels` [private]`

Cached query set self-kernels (\|\| q \|\| for each q).

Definition at line 126 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> const arma::mat& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::querySet` [private]`

The query dataset.

Definition at line 118 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> arma::vec mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::referenceKernels` [private]`

Cached reference set self-kernels (\|\| r \|\| for each r).

Definition at line 128 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> const arma::mat& mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::referenceSet` [private]`

The reference dataset.

Definition at line 116 of file fastmks\_rules.hpp.

### template\<typename KernelType , typename TreeType \> size\_t mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::scores` [private]`

For benchmarking.

Definition at line 152 of file fastmks\_rules.hpp.

Referenced by mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::Scores().

### template\<typename KernelType , typename TreeType \> TraversalInfoType mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::traversalInfo` [private]`

Definition at line 154 of file fastmks\_rules.hpp.

Referenced by mlpack::fastmks::FastMKSRules\< KernelType, TreeType \>::TraversalInfo().

## Author

Generated automatically by Doxygen for MLPACK from the source code.
