mlpack  2.2.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | List of all members
RSModel Class Reference

Public Types

enum  TreeTypes {
  KD_TREE,
  COVER_TREE,
  R_TREE,
  R_STAR_TREE,
  BALL_TREE,
  X_TREE,
  HILBERT_R_TREE,
  R_PLUS_TREE,
  R_PLUS_PLUS_TREE,
  VP_TREE,
  RP_TREE,
  MAX_RP_TREE,
  UB_TREE,
  OCTREE
}
 

Public Member Functions

 RSModel (const TreeTypes treeType=TreeTypes::KD_TREE, const bool randomBasis=false)
 Initialize the RSModel with the given type and whether or not a random basis should be used. More...
 
 RSModel (const RSModel &other)
 Copy constructor. More...
 
 RSModel (RSModel &&other)
 Move constructor. More...
 
 ~RSModel ()
 Clean memory, if necessary. More...
 
void BuildModel (arma::mat &&referenceSet, const size_t leafSize, const bool naive, const bool singleMode)
 Build the reference tree on the given dataset with the given parameters. More...
 
const arma::mat & Dataset () const
 Expose the dataset. More...
 
size_t LeafSize () const
 Get the leaf size (applicable to everything but the cover tree). More...
 
size_t & LeafSize ()
 Modify the leaf size (applicable to everything but the cover tree). More...
 
bool Naive () const
 Get whether the model is in naive search mode. More...
 
bool & Naive ()
 Modify whether the model is in naive search mode. More...
 
RSModeloperator= (const RSModel &other)
 Copy operator. More...
 
RSModeloperator= (RSModel &&other)
 Move operator. More...
 
bool RandomBasis () const
 Get whether a random basis is used. More...
 
bool & RandomBasis ()
 Modify whether a random basis is used (don't do this after the model has been built). More...
 
void Search (arma::mat &&querySet, const math::Range &range, std::vector< std::vector< size_t >> &neighbors, std::vector< std::vector< double >> &distances)
 Perform range search. More...
 
void Search (const math::Range &range, std::vector< std::vector< size_t >> &neighbors, std::vector< std::vector< double >> &distances)
 Perform monochromatic range search, with the reference set as the query set. More...
 
template<typename Archive >
void Serialize (Archive &ar, const unsigned int)
 Serialize the range search model. More...
 
bool SingleMode () const
 Get whether the model is in single-tree search mode. More...
 
bool & SingleMode ()
 Modify whether the model is in single-tree search mode. More...
 
TreeTypes TreeType () const
 Get the type of tree. More...
 
TreeTypesTreeType ()
 Modify the type of tree (don't do this after the model has been built). More...
 

Detailed Description

Definition at line 238 of file rs_model.hpp.

Member Enumeration Documentation

enum TreeTypes
Enumerator
KD_TREE 
COVER_TREE 
R_TREE 
R_STAR_TREE 
BALL_TREE 
X_TREE 
HILBERT_R_TREE 
R_PLUS_TREE 
R_PLUS_PLUS_TREE 
VP_TREE 
RP_TREE 
MAX_RP_TREE 
UB_TREE 
OCTREE 

Definition at line 241 of file rs_model.hpp.

Constructor & Destructor Documentation

RSModel ( const TreeTypes  treeType = TreeTypes::KD_TREE,
const bool  randomBasis = false 
)

Initialize the RSModel with the given type and whether or not a random basis should be used.

Parameters
treeTypeType of tree to use.
randomBasisWhether or not to use a random basis.
RSModel ( const RSModel other)

Copy constructor.

RSModel ( RSModel &&  other)

Move constructor.

~RSModel ( )

Clean memory, if necessary.

Member Function Documentation

void BuildModel ( arma::mat &&  referenceSet,
const size_t  leafSize,
const bool  naive,
const bool  singleMode 
)

Build the reference tree on the given dataset with the given parameters.

This takes possession of the reference set to avoid a copy.

Parameters
referenceSetSet of reference points.
leafSizeLeaf size of tree (ignored for the cover tree).
naiveWhether naive search should be used.
singleModeWhether single-tree search should be used.
const arma::mat& Dataset ( ) const

Expose the dataset.

size_t LeafSize ( ) const
inline

Get the leaf size (applicable to everything but the cover tree).

Definition at line 331 of file rs_model.hpp.

size_t& LeafSize ( )
inline

Modify the leaf size (applicable to everything but the cover tree).

Definition at line 333 of file rs_model.hpp.

bool Naive ( ) const

Get whether the model is in naive search mode.

bool& Naive ( )

Modify whether the model is in naive search mode.

RSModel& operator= ( const RSModel other)

Copy operator.

RSModel& operator= ( RSModel &&  other)

Move operator.

bool RandomBasis ( ) const
inline

Get whether a random basis is used.

Definition at line 341 of file rs_model.hpp.

bool& RandomBasis ( )
inline

Modify whether a random basis is used (don't do this after the model has been built).

Definition at line 344 of file rs_model.hpp.

void Search ( arma::mat &&  querySet,
const math::Range range,
std::vector< std::vector< size_t >> &  neighbors,
std::vector< std::vector< double >> &  distances 
)

Perform range search.

This takes possession of the query set, so the query set will not be usable after the search. For more information on the output format, see RangeSearch<>::Search().

Parameters
querySetSet of query points.
rangeRange to search for.
neighborsOutput: neighbors falling within the desired range.
distancesOutput: distances of neighbors.
void Search ( const math::Range range,
std::vector< std::vector< size_t >> &  neighbors,
std::vector< std::vector< double >> &  distances 
)

Perform monochromatic range search, with the reference set as the query set.

For more information on the output format, see RangeSearch<>::Search().

Parameters
rangeRange to search for.
neighborsOutput: neighbors falling within the desired range.
distancesOutput: distances of neighbors.
void Serialize ( Archive &  ar,
const unsigned  int 
)

Serialize the range search model.

bool SingleMode ( ) const

Get whether the model is in single-tree search mode.

bool& SingleMode ( )

Modify whether the model is in single-tree search mode.

TreeTypes TreeType ( ) const
inline

Get the type of tree.

Definition at line 336 of file rs_model.hpp.

TreeTypes& TreeType ( )
inline

Modify the type of tree (don't do this after the model has been built).

Definition at line 338 of file rs_model.hpp.


The documentation for this class was generated from the following file: