The RAModel class provides an abstraction for the RASearch class, abstracting away the TreeType parameter and allowing it to be specified at runtime in this class. More...
Public Types | |
enum | TreeTypes { KD_TREE , COVER_TREE , R_TREE , R_STAR_TREE , X_TREE , HILBERT_R_TREE , R_PLUS_TREE , R_PLUS_PLUS_TREE , UB_TREE , OCTREE } |
The list of tree types we can use with RASearch. More... | |
Public Member Functions | |
RAModel (TreeTypes treeType=TreeTypes::KD_TREE, bool randomBasis=false) | |
Initialize the RAModel with the given type and whether or not a random basis should be used. More... | |
RAModel (const RAModel &other) | |
Copy the given RAModel. More... | |
RAModel (RAModel &&other) | |
Take ownership of the given RAModel. More... | |
~RAModel () | |
Clean memory, if necessary. More... | |
double | Alpha () const |
Get the desired success probability. More... | |
double & | Alpha () |
Modify the desired success probability. More... | |
void | BuildModel (util::Timers &timers, arma::mat &&referenceSet, const size_t leafSize, const bool naive, const bool singleMode) |
Build the reference tree. More... | |
const arma::mat & | Dataset () const |
Expose the dataset. More... | |
bool | FirstLeafExact () const |
Get whether or not we traverse to the first leaf without approximation. More... | |
bool & | FirstLeafExact () |
Modify whether or not we traverse to the first leaf without approximation. More... | |
void | InitializeModel (const bool naive, const bool singleMode) |
Initialize the model's memory. More... | |
size_t | LeafSize () const |
Get the leaf size (only relevant when the kd-tree is used). More... | |
size_t & | LeafSize () |
Modify the leaf size (only relevant when the kd-tree is used). More... | |
bool | Naive () const |
Get whether or not naive search is being used. More... | |
bool & | Naive () |
Modify whether or not naive search is being used. More... | |
RAModel & | operator= (const RAModel &other) |
Copy the given RAModel. More... | |
RAModel & | operator= (RAModel &&other) |
Take ownership of the given RAModel. More... | |
bool | RandomBasis () const |
Get whether or not a random basis is being used. More... | |
bool & | RandomBasis () |
Modify whether or not a random basis is being used. More... | |
bool | SampleAtLeaves () const |
Get whether or not sampling is done at the leaves. More... | |
bool & | SampleAtLeaves () |
Modify whether or not sampling is done at the leaves. More... | |
void | Search (util::Timers &timers, arma::mat &&querySet, const size_t k, arma::Mat< size_t > &neighbors, arma::mat &distances) |
Perform rank-approximate neighbor search, taking ownership of the query set. More... | |
void | Search (util::Timers &timers, const size_t k, arma::Mat< size_t > &neighbors, arma::mat &distances) |
Perform rank-approximate neighbor search, using the reference set as the query set. More... | |
template < typename Archive > | |
void | serialize (Archive &ar, const uint32_t) |
Serialize the model. More... | |
bool | SingleMode () const |
Get whether or not single-tree search is being used. More... | |
bool & | SingleMode () |
Modify whether or not single-tree search is being used. More... | |
size_t | SingleSampleLimit () const |
Get the limit on the size of a node that can be approximated. More... | |
size_t & | SingleSampleLimit () |
Modify the limit on the size of a node that can be approximation. More... | |
double | Tau () const |
Get the rank-approximation in percentile of the data. More... | |
double & | Tau () |
Modify the rank-approximation in percentile of the data. More... | |
std::string | TreeName () const |
Get the name of the tree type. More... | |
TreeTypes | TreeType () const |
Get the type of tree being used. More... | |
TreeTypes & | TreeType () |
Modify the type of tree being used. More... | |
The RAModel class provides an abstraction for the RASearch class, abstracting away the TreeType parameter and allowing it to be specified at runtime in this class.
This class is written for the sake of the 'allkrann' program, but is not necessarily restricted to that use.
Definition at line 265 of file ra_model.hpp.
enum TreeTypes |
The list of tree types we can use with RASearch.
Does not include ball trees; see #338.
Enumerator | |
---|---|
KD_TREE | |
COVER_TREE | |
R_TREE | |
R_STAR_TREE | |
X_TREE | |
HILBERT_R_TREE | |
R_PLUS_TREE | |
R_PLUS_PLUS_TREE | |
UB_TREE | |
OCTREE |
Definition at line 272 of file ra_model.hpp.
Initialize the RAModel with the given type and whether or not a random basis should be used.
~RAModel | ( | ) |
Clean memory, if necessary.
|
inline |
Get the desired success probability.
Definition at line 361 of file ra_model.hpp.
References RAWrapperBase::Alpha().
|
inline |
Modify the desired success probability.
Definition at line 363 of file ra_model.hpp.
References RAWrapperBase::Alpha().
void BuildModel | ( | util::Timers & | timers, |
arma::mat && | referenceSet, | ||
const size_t | leafSize, | ||
const bool | naive, | ||
const bool | singleMode | ||
) |
Build the reference tree.
|
inline |
Expose the dataset.
Definition at line 343 of file ra_model.hpp.
References RAWrapperBase::Dataset().
|
inline |
Get whether or not we traverse to the first leaf without approximation.
Definition at line 371 of file ra_model.hpp.
References RAWrapperBase::FirstLeafExact().
|
inline |
Modify whether or not we traverse to the first leaf without approximation.
Definition at line 373 of file ra_model.hpp.
References RAWrapperBase::FirstLeafExact().
void InitializeModel | ( | const bool | naive, |
const bool | singleMode | ||
) |
Initialize the model's memory.
|
inline |
Get the leaf size (only relevant when the kd-tree is used).
Definition at line 381 of file ra_model.hpp.
|
inline |
Modify the leaf size (only relevant when the kd-tree is used).
Definition at line 383 of file ra_model.hpp.
|
inline |
Get whether or not naive search is being used.
Definition at line 351 of file ra_model.hpp.
References RAWrapperBase::Naive().
|
inline |
Modify whether or not naive search is being used.
Definition at line 353 of file ra_model.hpp.
References RAWrapperBase::Naive().
|
inline |
Get whether or not a random basis is being used.
Definition at line 391 of file ra_model.hpp.
|
inline |
Modify whether or not a random basis is being used.
Be sure to rebuild the model using BuildModel().
Definition at line 394 of file ra_model.hpp.
References RAWrapperBase::Search().
|
inline |
Get whether or not sampling is done at the leaves.
Definition at line 366 of file ra_model.hpp.
References RAWrapperBase::SampleAtLeaves().
|
inline |
Modify whether or not sampling is done at the leaves.
Definition at line 368 of file ra_model.hpp.
References RAWrapperBase::SampleAtLeaves().
void Search | ( | util::Timers & | timers, |
arma::mat && | querySet, | ||
const size_t | k, | ||
arma::Mat< size_t > & | neighbors, | ||
arma::mat & | distances | ||
) |
Perform rank-approximate neighbor search, taking ownership of the query set.
void Search | ( | util::Timers & | timers, |
const size_t | k, | ||
arma::Mat< size_t > & | neighbors, | ||
arma::mat & | distances | ||
) |
Perform rank-approximate neighbor search, using the reference set as the query set.
void serialize | ( | Archive & | ar, |
const uint32_t | |||
) |
Serialize the model.
|
inline |
Get whether or not single-tree search is being used.
Definition at line 346 of file ra_model.hpp.
References RAWrapperBase::SingleMode().
|
inline |
Modify whether or not single-tree search is being used.
Definition at line 348 of file ra_model.hpp.
References RAWrapperBase::SingleMode().
|
inline |
Get the limit on the size of a node that can be approximated.
Definition at line 376 of file ra_model.hpp.
References RAWrapperBase::SingleSampleLimit().
|
inline |
Modify the limit on the size of a node that can be approximation.
Definition at line 378 of file ra_model.hpp.
References RAWrapperBase::SingleSampleLimit().
|
inline |
Get the rank-approximation in percentile of the data.
Definition at line 356 of file ra_model.hpp.
References RAWrapperBase::Tau().
|
inline |
Modify the rank-approximation in percentile of the data.
Definition at line 358 of file ra_model.hpp.
References RAWrapperBase::Tau().
std::string TreeName | ( | ) | const |
Get the name of the tree type.
|
inline |
Get the type of tree being used.
Definition at line 386 of file ra_model.hpp.
|
inline |
Modify the type of tree being used.
Definition at line 388 of file ra_model.hpp.