22 #ifndef __MLPACK_METHODS_FASTMKS_FASTMKS_RULES_HPP
23 #define __MLPACK_METHODS_FASTMKS_FASTMKS_RULES_HPP
34 template<
typename KernelType,
typename TreeType>
45 double BaseCase(
const size_t queryIndex,
const size_t referenceIndex);
55 double Score(
const size_t queryIndex, TreeType& referenceNode);
65 double Score(TreeType& queryNode, TreeType& referenceNode);
78 double Rescore(
const size_t queryIndex,
79 TreeType& referenceNode,
80 const double oldScore)
const;
93 double Rescore(TreeType& queryNode,
94 TreeType& referenceNode,
95 const double oldScore)
const;
139 const size_t neighbor,
140 const double distance);
152 #include "fastmks_rules_impl.hpp"
double BaseCase(const size_t queryIndex, const size_t referenceIndex)
Compute the base case (kernel value) between two points.
size_t Scores() const
Get the number of times Score() was called.
const arma::mat & querySet
The query dataset.
arma::vec queryKernels
Cached query set self-kernels (|| q || for each q).
size_t & BaseCases()
Modify the number of times BaseCase() was called.
double lastKernel
The last kernel evaluation resulting from BaseCase().
size_t & Scores()
Modify the number of times Score() was called.
arma::vec referenceKernels
Cached reference set self-kernels (|| r || for each r).
double Score(const size_t queryIndex, TreeType &referenceNode)
Get the score for recursion order.
double Rescore(const size_t queryIndex, TreeType &referenceNode, const double oldScore) const
Re-evaluate the score for recursion order.
size_t baseCases
For benchmarking.
The base case and pruning rules for FastMKS (fast max-kernel search).
arma::Mat< size_t > & indices
The indices of the maximum kernel results.
size_t lastReferenceIndex
The last reference index BaseCase() was called with.
arma::mat & products
The maximum kernels.
FastMKSRules(const arma::mat &referenceSet, const arma::mat &querySet, arma::Mat< size_t > &indices, arma::mat &products, KernelType &kernel)
size_t lastQueryIndex
The last query index BaseCase() was called with.
const arma::mat & referenceSet
The reference dataset.
size_t BaseCases() const
Get the number of times BaseCase() was called.
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.
KernelType & kernel
The instantiated kernel.
double CalculateBound(TreeType &queryNode) const
Calculate the bound for a given query node.
size_t scores
For benchmarking.