HRectBound< MetricType, ElemType > Class Template Reference

Hyper-rectangle bound for an L-metric. More...

Inheritance diagram for HRectBound< MetricType, ElemType >:

Public Member Functions

 HRectBound ()
 Empty constructor; creates a bound of dimensionality 0. More...

 
 HRectBound (const size_t dimension)
 Initializes to specified dimensionality with each dimension the empty set. More...

 
 HRectBound (const HRectBound &other)
 Copy constructor; necessary to prevent memory leaks. More...

 
 HRectBound (HRectBound &&other)
 Move constructor: take possession of another bound's information. More...

 
 ~HRectBound ()
 Destructor: clean up memory. More...

 
void Center (arma::Col< ElemType > &center) const
 Calculates the center of the range, placing it into the given vector. More...

 
void Clear ()
 Resets all dimensions to the empty set (so that this bound contains nothing). More...

 
template
<
typename
VecType
>
bool Contains (const VecType &point) const
 Determines if a point is within this bound. More...

 
bool Contains (const HRectBound &bound) const
 Determines if this bound partially contains a bound. More...

 
ElemType Diameter () const
 Returns the diameter of the hyperrectangle (that is, the longest diagonal). More...

 
size_t Dim () const
 Gets the dimensionality. More...

 
template
<
typename
VecType
>
ElemType MaxDistance (const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
 Calculates maximum bound-to-point squared distance. More...

 
ElemType MaxDistance (const HRectBound &other) const
 Computes maximum distance. More...

 
const MetricType & Metric () const
 Get the instantiated metric associated with the bound. More...

 
MetricType & Metric ()
 Modify the instantiated metric associated with the bound. More...

 
template
<
typename
VecType
>
ElemType MinDistance (const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
 Calculates minimum bound-to-point distance. More...

 
ElemType MinDistance (const HRectBound &other) const
 Calculates minimum bound-to-bound distance. More...

 
ElemType MinWidth () const
 Get the minimum width of the bound. More...

 
ElemType & MinWidth ()
 Modify the minimum width of the bound. More...

 
HRectBound operator & (const HRectBound &bound) const
 Returns the intersection of this bound and another. More...

 
HRectBoundoperator &= (const HRectBound &bound)
 Intersects this bound with another. More...

 
HRectBoundoperator= (const HRectBound &other)
 Same as copy constructor; necessary to prevent memory leaks. More...

 
HRectBoundoperator= (HRectBound &&other)
 Move assignment operator. More...

 
math::RangeType< ElemType > & operator[] (const size_t i)
 Get the range for a particular dimension. More...

 
const math::RangeType< ElemType > & operator[] (const size_t i) const
 Modify the range for a particular dimension. No bounds checking. More...

 
template
<
typename
MatType
>
HRectBoundoperator|= (const MatType &data)
 Expands this region to include new points. More...

 
HRectBoundoperator|= (const HRectBound &other)
 Expands this region to encompass another bound. More...

 
ElemType Overlap (const HRectBound &bound) const
 Returns the volume of overlap of this bound and another. More...

 
math::RangeType< ElemType > RangeDistance (const HRectBound &other) const
 Calculates minimum and maximum bound-to-bound distance. More...

 
template
<
typename
VecType
>
math::RangeType< ElemType > RangeDistance (const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
 Calculates minimum and maximum bound-to-point distance. More...

 
template
<
typename
Archive
>
void serialize (Archive &ar, const uint32_t version)
 Serialize the bound object. More...

 
ElemType Volume () const
 Calculate the volume of the hyperrectangle. More...

 

Detailed Description


template<typename MetricType = metric::LMetric<2, true>, typename ElemType = double>
class mlpack::bound::HRectBound< MetricType, ElemType >

Hyper-rectangle bound for an L-metric.

This should be used in conjunction with the LMetric class. Be sure to use the same template parameters for LMetric as you do for HRectBound – otherwise odd results may occur.

Template Parameters
MetricTypeType of metric to use; must be of type LMetric.
ElemTypeElement type (double/float/int/etc.).

Definition at line 54 of file hrectbound.hpp.

Constructor & Destructor Documentation

◆ HRectBound() [1/4]

Empty constructor; creates a bound of dimensionality 0.

◆ HRectBound() [2/4]

HRectBound ( const size_t  dimension)

Initializes to specified dimensionality with each dimension the empty set.

Parameters
dimensionDimensionality of bound.

◆ HRectBound() [3/4]

HRectBound ( const HRectBound< MetricType, ElemType > &  other)

Copy constructor; necessary to prevent memory leaks.

◆ HRectBound() [4/4]

HRectBound ( HRectBound< MetricType, ElemType > &&  other)

Move constructor: take possession of another bound's information.

◆ ~HRectBound()

~HRectBound ( )

Destructor: clean up memory.

Member Function Documentation

◆ Center()

void Center ( arma::Col< ElemType > &  center) const

Calculates the center of the range, placing it into the given vector.

Parameters
centerVector which the center will be written to.

Referenced by RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::Center(), and Octree< MetricType, StatisticType, MatType >::Center().

◆ Clear()

void Clear ( )

Resets all dimensions to the empty set (so that this bound contains nothing).

◆ Contains() [1/2]

bool Contains ( const VecType &  point) const

Determines if a point is within this bound.

Parameters
pointPoint to check the condition.

◆ Contains() [2/2]

bool Contains ( const HRectBound< MetricType, ElemType > &  bound) const

Determines if this bound partially contains a bound.

Parameters
boundBound to check the condition.

◆ Diameter()

ElemType Diameter ( ) const

Returns the diameter of the hyperrectangle (that is, the longest diagonal).

◆ Dim()

size_t Dim ( ) const
inline

Gets the dimensionality.

Definition at line 96 of file hrectbound.hpp.

◆ MaxDistance() [1/2]

ElemType MaxDistance ( const VecType &  point,
typename std::enable_if_t< IsVector< VecType >::value > *  = 0 
) const

Calculates maximum bound-to-point squared distance.

Parameters
pointPoint to which the maximum distance is requested.

Referenced by RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::MaxDistance().

◆ MaxDistance() [2/2]

ElemType MaxDistance ( const HRectBound< MetricType, ElemType > &  other) const

Computes maximum distance.

Parameters
otherBound to which the maximum distance is requested.

◆ Metric() [1/2]

const MetricType& Metric ( ) const
inline

Get the instantiated metric associated with the bound.

Definition at line 111 of file hrectbound.hpp.

◆ Metric() [2/2]

MetricType& Metric ( )
inline

Modify the instantiated metric associated with the bound.

Definition at line 113 of file hrectbound.hpp.

◆ MinDistance() [1/2]

ElemType MinDistance ( const VecType &  point,
typename std::enable_if_t< IsVector< VecType >::value > *  = 0 
) const

Calculates minimum bound-to-point distance.

Parameters
pointPoint to which the minimum distance is requested.

Referenced by RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::MinDistance().

◆ MinDistance() [2/2]

ElemType MinDistance ( const HRectBound< MetricType, ElemType > &  other) const

Calculates minimum bound-to-bound distance.

Parameters
otherBound to which the minimum distance is requested.

◆ MinWidth() [1/2]

ElemType MinWidth ( ) const
inline

◆ MinWidth() [2/2]

ElemType& MinWidth ( )
inline

Modify the minimum width of the bound.

Definition at line 108 of file hrectbound.hpp.

◆ operator &()

HRectBound operator& ( const HRectBound< MetricType, ElemType > &  bound) const

Returns the intersection of this bound and another.

◆ operator &=()

HRectBound& operator&= ( const HRectBound< MetricType, ElemType > &  bound)

Intersects this bound with another.

◆ operator=() [1/2]

HRectBound& operator= ( const HRectBound< MetricType, ElemType > &  other)

Same as copy constructor; necessary to prevent memory leaks.

◆ operator=() [2/2]

HRectBound& operator= ( HRectBound< MetricType, ElemType > &&  other)

Move assignment operator.

◆ operator[]() [1/2]

math::RangeType<ElemType>& operator[] ( const size_t  i)
inline

Get the range for a particular dimension.

No bounds checking. Be careful: this may make MinWidth() invalid.

Definition at line 100 of file hrectbound.hpp.

◆ operator[]() [2/2]

const math::RangeType<ElemType>& operator[] ( const size_t  i) const
inline

Modify the range for a particular dimension. No bounds checking.

Definition at line 102 of file hrectbound.hpp.

◆ operator|=() [1/2]

HRectBound& operator|= ( const MatType &  data)

Expands this region to include new points.

Template Parameters
MatTypeType of matrix; could be Mat, SpMat, a subview, or just a vector.
Parameters
dataData points to expand this region to include.

◆ operator|=() [2/2]

HRectBound& operator|= ( const HRectBound< MetricType, ElemType > &  other)

Expands this region to encompass another bound.

◆ Overlap()

ElemType Overlap ( const HRectBound< MetricType, ElemType > &  bound) const

Returns the volume of overlap of this bound and another.

◆ RangeDistance() [1/2]

math::RangeType<ElemType> RangeDistance ( const HRectBound< MetricType, ElemType > &  other) const

Calculates minimum and maximum bound-to-bound distance.

Parameters
otherBound to which the minimum and maximum distances are requested.

Referenced by RectangleTree< MetricType, StatisticType, MatType, SplitType, DescentType, AuxiliaryInformationType >::RangeDistance().

◆ RangeDistance() [2/2]

math::RangeType<ElemType> RangeDistance ( const VecType &  point,
typename std::enable_if_t< IsVector< VecType >::value > *  = 0 
) const

Calculates minimum and maximum bound-to-point distance.

Parameters
pointPoint to which the minimum and maximum distances are requested.

◆ serialize()

void serialize ( Archive &  ar,
const uint32_t  version 
)

Serialize the bound object.

◆ Volume()

ElemType Volume ( ) const

Calculate the volume of the hyperrectangle.

Returns
Volume of the hyperrectangle.

The documentation for this class was generated from the following file:
  • /home/ryan/src/mlpack.org/_src/mlpack-git/src/mlpack/core/tree/hrectbound.hpp