14 #ifndef __MLPACK_METHODS_FASTMKS_FASTMKS_RULES_HPP 15 #define __MLPACK_METHODS_FASTMKS_FASTMKS_RULES_HPP 20 #include "../neighbor_search/ns_traversal_info.hpp" 28 template<
typename KernelType,
typename TreeType>
33 const typename TreeType::Mat&
querySet,
39 double BaseCase(
const size_t queryIndex,
const size_t referenceIndex);
49 double Score(
const size_t queryIndex, TreeType& referenceNode);
59 double Score(TreeType& queryNode, TreeType& referenceNode);
72 double Rescore(
const size_t queryIndex,
73 TreeType& referenceNode,
74 const double oldScore)
const;
87 double Rescore(TreeType& queryNode,
88 TreeType& referenceNode,
89 const double oldScore)
const;
138 const size_t neighbor,
139 const double distance);
153 #include "fastmks_rules_impl.hpp" double Rescore(const size_t queryIndex, TreeType &referenceNode, const double oldScore) const
Re-evaluate the score for recursion order.
const TreeType::Mat & referenceSet
The reference dataset.
double BaseCase(const size_t queryIndex, const size_t referenceIndex)
Compute the base case (kernel value) between two points.
FastMKSRules(const typename TreeType::Mat &referenceSet, const typename TreeType::Mat &querySet, arma::Mat< size_t > &indices, arma::mat &products, KernelType &kernel)
Linear algebra utility functions, generally performed on matrices or vectors.
const TraversalInfoType & TraversalInfo() const
size_t Scores() const
Get the number of times Score() was called.
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().
Traversal information for NeighborSearch.
size_t & Scores()
Modify the number of times Score() was called.
const TreeType::Mat & querySet
The query dataset.
size_t BaseCases() const
Get the number of times BaseCase() 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.
TraversalInfoType & TraversalInfo()
size_t baseCases
For benchmarking.
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
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.
neighbor::NeighborSearchTraversalInfo< TreeType > TraversalInfoType
size_t lastQueryIndex
The last query index BaseCase() was called with.
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.
KernelType & kernel
The instantiated kernel.
TraversalInfoType traversalInfo
size_t scores
For benchmarking.