mlpack
Public Types | Public Member Functions | Static Public Member Functions | List of all members
mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType > Class Template Reference

Public Types

typedef TreeType::ElemType ElemType
 The element type held by the tree.
 

Public Member Functions

 HilbertRTreeAuxiliaryInformation ()
 Default constructor.
 
 HilbertRTreeAuxiliaryInformation (const TreeType *node)
 Construct this as an auxiliary information for the given node. More...
 
 HilbertRTreeAuxiliaryInformation (const HilbertRTreeAuxiliaryInformation &other, TreeType *tree=NULL, bool deepCopy=true)
 Create an auxiliary information object by copying from another object. More...
 
 HilbertRTreeAuxiliaryInformation (HilbertRTreeAuxiliaryInformation &&other)
 Create an auxiliary information object by moving from the other node. More...
 
HilbertRTreeAuxiliaryInformationoperator= (const HilbertRTreeAuxiliaryInformation &other)
 Copy the auxiliary information. More...
 
bool HandlePointInsertion (TreeType *node, const size_t point)
 The Hilbert R tree requires to insert points according to their Hilbert value. More...
 
bool HandleNodeInsertion (TreeType *node, TreeType *nodeToInsert, bool insertionLevel)
 The Hilbert R tree requires to insert nodes according to their Hilbert value. More...
 
bool HandlePointDeletion (TreeType *node, const size_t localIndex)
 The Hilbert R tree requires all points to be arranged according to their Hilbert value. More...
 
bool HandleNodeRemoval (TreeType *node, const size_t nodeIndex)
 The Hilbert R tree requires all nodes to be arranged according to their Hilbert value. More...
 
bool UpdateAuxiliaryInfo (TreeType *node)
 Update the auxiliary information in the node. More...
 
void NullifyData ()
 Clear memory.
 
const HilbertValueType< ElemType > & HilbertValue () const
 Return the largest Hilbert value of a point covered by the node.
 
HilbertValueType< ElemType > & HilbertValue ()
 Modify the largest Hilbert value of a point covered by the node.
 
template<typename Archive >
void serialize (Archive &ar, const uint32_t)
 Serialize the information.
 

Static Public Member Functions

static const std::vector< TreeType * > Children (const TreeType *tree)
 Return the children vector of the tree.
 

Constructor & Destructor Documentation

◆ HilbertRTreeAuxiliaryInformation() [1/3]

template<typename TreeType , template< typename > class HilbertValueType>
mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::HilbertRTreeAuxiliaryInformation ( const TreeType *  node)

Construct this as an auxiliary information for the given node.

Parameters
nodeThe node that stores this auxiliary information.

◆ HilbertRTreeAuxiliaryInformation() [2/3]

template<typename TreeType , template< typename > class HilbertValueType>
mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::HilbertRTreeAuxiliaryInformation ( const HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType > &  other,
TreeType *  tree = NULL,
bool  deepCopy = true 
)

Create an auxiliary information object by copying from another object.

Parameters
otherAnother auxiliary information object from which the information will be copied.
treeThe node that holds the auxiliary information.
deepCopyIf false, the new object uses the same memory (not used here).

◆ HilbertRTreeAuxiliaryInformation() [3/3]

template<typename TreeType , template< typename > class HilbertValueType>
mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::HilbertRTreeAuxiliaryInformation ( HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType > &&  other)

Create an auxiliary information object by moving from the other node.

Parameters
otherThe object from which the information will be moved.

Member Function Documentation

◆ HandleNodeInsertion()

template<typename TreeType , template< typename > class HilbertValueType>
bool mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::HandleNodeInsertion ( TreeType *  node,
TreeType *  nodeToInsert,
bool  insertionLevel 
)

The Hilbert R tree requires to insert nodes according to their Hilbert value.

This method should take care of it. It returns false if it does nothing and true if it handles the insertion process.

Parameters
nodeThe node in which the nodeToInsert is being inserted.
nodeToInsertThe node being inserted.
insertionLevelThe level of the tree at which the nodeToInsert should be inserted.

◆ HandleNodeRemoval()

template<typename TreeType , template< typename > class HilbertValueType>
bool mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::HandleNodeRemoval ( TreeType *  node,
const size_t  nodeIndex 
)

The Hilbert R tree requires all nodes to be arranged according to their Hilbert value.

This method should take care of saving this property after the deletion process. It returns false if it does nothing and true if it handles the deletion process.

Parameters
nodeThe node from which the node is being deleted.
nodeIndexThe index of the node being deleted.

◆ HandlePointDeletion()

template<typename TreeType , template< typename > class HilbertValueType>
bool mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::HandlePointDeletion ( TreeType *  node,
const size_t  localIndex 
)

The Hilbert R tree requires all points to be arranged according to their Hilbert value.

This method should take care of saving this property after the deletion process. It returns false if it does nothing and true if it handles the deletion process.

Parameters
nodeThe node from which the point is being deleted.
localIndexThe index of the point being deleted.

◆ HandlePointInsertion()

template<typename TreeType , template< typename > class HilbertValueType>
bool mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::HandlePointInsertion ( TreeType *  node,
const size_t  point 
)

The Hilbert R tree requires to insert points according to their Hilbert value.

This method should take care of it. It returns false if it does nothing and true if it handles the insertion process.

Parameters
nodeThe node in which the point is being inserted.
pointThe number of the point being inserted.

◆ operator=()

template<typename TreeType , template< typename > class HilbertValueType>
HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType > & mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::operator= ( const HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType > &  other)

Copy the auxiliary information.

Parameters
otherThe object from which the information will be moved.

◆ UpdateAuxiliaryInfo()

template<typename TreeType , template< typename > class HilbertValueType>
bool mlpack::tree::HilbertRTreeAuxiliaryInformation< TreeType, HilbertValueType >::UpdateAuxiliaryInfo ( TreeType *  node)

Update the auxiliary information in the node.

The method returns true if the update should be propagated downward.

Parameters
nodeThe node in which the auxiliary information being update.

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