mlpack  2.0.1
Public Member Functions | Private Attributes | List of all members
TraversalInfo< TreeType > Class Template Reference

The TraversalInfo class holds traversal information which is used in dual-tree (and single-tree) traversals. More...

Public Member Functions

 TraversalInfo ()
 Create the TraversalInfo object and initialize the pointers to NULL. More...
 
double LastBaseCase () const
 Get the base case associated with the last node combination. More...
 
double & LastBaseCase ()
 Modify the base case associated with the last node combination. More...
 
TreeType * LastQueryNode () const
 Get the last query node. More...
 
TreeType *& LastQueryNode ()
 Modify the last query node. More...
 
TreeType * LastReferenceNode () const
 Get the last reference node. More...
 
TreeType *& LastReferenceNode ()
 Modify the last reference node. More...
 
double LastScore () const
 Get the score associated with the last query and reference nodes. More...
 
double & LastScore ()
 Modify the score associated with the last query and reference nodes. More...
 

Private Attributes

double lastBaseCase
 The last base case. More...
 
TreeType * lastQueryNode
 The last query node. More...
 
TreeType * lastReferenceNode
 The last reference node. More...
 
double lastScore
 The last score. More...
 

Detailed Description

template<typename TreeType>
class TraversalInfo< TreeType >

The TraversalInfo class holds traversal information which is used in dual-tree (and single-tree) traversals.

A traversal should be updating the members of this class before Score() is called. This class should be held as a member of the RuleType class and the interface to it should be through a TraversalInfo() method.

The information held by this class is the last node combination visited before the current node combination was recursed into, and the score resulting from when Score() was called on that combination. However, this information is identical for a query node and a reference node in a particular node combination, so traversals only need to update the TraversalInfo object in a query node (and the algorithms should only use the TraversalInfo object from a query node).

In general, this auxiliary traversal information is used to try and make a prune without needing to call BaseCase() or calculate the distance between nodes. Using this information you can place bounds on the distance between the two nodes quickly.

If the traversal is not updating the members of this class correctly, a likely result is a null pointer dereference. Dual-tree algorithms should assume that the members are set properly and should not need to check for null pointers.

There is one exception, which is the root node combination; the score can be set to 0 and the query and reference nodes can just be set to the root nodes; no algorithm should be able to prune the root combination anyway.

Definition at line 49 of file traversal_info.hpp.

Constructor & Destructor Documentation

◆ TraversalInfo()

template<typename TreeType >
TraversalInfo< TreeType >::TraversalInfo ( )
inline

Create the TraversalInfo object and initialize the pointers to NULL.

Definition at line 55 of file traversal_info.hpp.

Member Function Documentation

◆ LastBaseCase() [1/2]

template<typename TreeType >
double TraversalInfo< TreeType >::LastBaseCase ( ) const
inline

Get the base case associated with the last node combination.

Definition at line 77 of file traversal_info.hpp.

References TraversalInfo< TreeType >::lastBaseCase.

◆ LastBaseCase() [2/2]

template<typename TreeType >
double& TraversalInfo< TreeType >::LastBaseCase ( )
inline

Modify the base case associated with the last node combination.

Definition at line 79 of file traversal_info.hpp.

References TraversalInfo< TreeType >::lastBaseCase.

◆ LastQueryNode() [1/2]

template<typename TreeType >
TreeType* TraversalInfo< TreeType >::LastQueryNode ( ) const
inline

Get the last query node.

Definition at line 62 of file traversal_info.hpp.

References TraversalInfo< TreeType >::lastQueryNode.

◆ LastQueryNode() [2/2]

template<typename TreeType >
TreeType*& TraversalInfo< TreeType >::LastQueryNode ( )
inline

Modify the last query node.

Definition at line 64 of file traversal_info.hpp.

References TraversalInfo< TreeType >::lastQueryNode.

◆ LastReferenceNode() [1/2]

template<typename TreeType >
TreeType* TraversalInfo< TreeType >::LastReferenceNode ( ) const
inline

Get the last reference node.

Definition at line 67 of file traversal_info.hpp.

References TraversalInfo< TreeType >::lastReferenceNode.

◆ LastReferenceNode() [2/2]

template<typename TreeType >
TreeType*& TraversalInfo< TreeType >::LastReferenceNode ( )
inline

Modify the last reference node.

Definition at line 69 of file traversal_info.hpp.

References TraversalInfo< TreeType >::lastReferenceNode.

◆ LastScore() [1/2]

template<typename TreeType >
double TraversalInfo< TreeType >::LastScore ( ) const
inline

Get the score associated with the last query and reference nodes.

Definition at line 72 of file traversal_info.hpp.

References TraversalInfo< TreeType >::lastScore.

◆ LastScore() [2/2]

template<typename TreeType >
double& TraversalInfo< TreeType >::LastScore ( )
inline

Modify the score associated with the last query and reference nodes.

Definition at line 74 of file traversal_info.hpp.

References TraversalInfo< TreeType >::lastScore.

Member Data Documentation

◆ lastBaseCase

template<typename TreeType >
double TraversalInfo< TreeType >::lastBaseCase
private

The last base case.

Definition at line 89 of file traversal_info.hpp.

Referenced by TraversalInfo< TreeType >::LastBaseCase().

◆ lastQueryNode

template<typename TreeType >
TreeType* TraversalInfo< TreeType >::lastQueryNode
private

The last query node.

Definition at line 83 of file traversal_info.hpp.

Referenced by TraversalInfo< TreeType >::LastQueryNode().

◆ lastReferenceNode

template<typename TreeType >
TreeType* TraversalInfo< TreeType >::lastReferenceNode
private

The last reference node.

Definition at line 85 of file traversal_info.hpp.

Referenced by TraversalInfo< TreeType >::LastReferenceNode().

◆ lastScore

template<typename TreeType >
double TraversalInfo< TreeType >::lastScore
private

The last score.

Definition at line 87 of file traversal_info.hpp.

Referenced by TraversalInfo< TreeType >::LastScore().


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