mlpack
Public Member Functions | List of all members
mlpack::bound::HRectBound< MetricType, ElemType > Class Template Reference

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

#include <hrectbound.hpp>

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...
 
HRectBoundoperator= (const HRectBound &other)
 Same as copy constructor; necessary to prevent memory leaks. More...
 
 HRectBound (HRectBound &&other)
 Move constructor: take possession of another bound's information.
 
HRectBoundoperator= (HRectBound &&other)
 Move assignment operator.
 
 ~HRectBound ()
 Destructor: clean up memory.
 
void Clear ()
 Resets all dimensions to the empty set (so that this bound contains nothing). More...
 
size_t Dim () const
 Gets the dimensionality.
 
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.
 
ElemType MinWidth () const
 Get the minimum width of the bound.
 
ElemType & MinWidth ()
 Modify the minimum width of the bound.
 
const MetricType & Metric () const
 Get the instantiated metric associated with the bound.
 
MetricType & Metric ()
 Modify the instantiated metric associated with the bound.
 
void Center (arma::Col< ElemType > &center) const
 Calculates the center of the range, placing it into the given vector. More...
 
ElemType Volume () const
 Calculate the volume of the hyperrectangle. 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...
 
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...
 
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 MatType >
HRectBoundoperator|= (const MatType &data)
 Expands this region to include new points. More...
 
HRectBoundoperator|= (const HRectBound &other)
 Expands this region to encompass another bound.
 
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...
 
HRectBound operator & (const HRectBound &bound) const
 Returns the intersection of this bound and another.
 
HRectBoundoperator &= (const HRectBound &bound)
 Intersects this bound with another.
 
ElemType Overlap (const HRectBound &bound) const
 Returns the volume of overlap of this bound and another.
 
ElemType Diameter () const
 Returns the diameter of the hyperrectangle (that is, the longest diagonal).
 
template<typename Archive >
void serialize (Archive &ar, const uint32_t version)
 Serialize the bound object.
 
template<typename MatType >
HRectBound< MetricType, ElemType > & operator|= (const MatType &data)
 Expands this region to include a new point.
 

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.).

Constructor & Destructor Documentation

◆ HRectBound() [1/3]

template<typename MetricType , typename ElemType >
mlpack::bound::HRectBound< MetricType, ElemType >::HRectBound ( )
inline

Empty constructor; creates a bound of dimensionality 0.

Empty constructor.

◆ HRectBound() [2/3]

template<typename MetricType , typename ElemType >
mlpack::bound::HRectBound< MetricType, ElemType >::HRectBound ( const size_t  dimension)
inline

Initializes to specified dimensionality with each dimension the empty set.

Parameters
dimensionDimensionality of bound.

◆ HRectBound() [3/3]

template<typename MetricType , typename ElemType >
mlpack::bound::HRectBound< MetricType, ElemType >::HRectBound ( const HRectBound< MetricType, ElemType > &  other)
inline

Copy constructor; necessary to prevent memory leaks.

Copy constructor necessary to prevent memory leaks.

Member Function Documentation

◆ Center()

template<typename MetricType , typename ElemType>
void mlpack::bound::HRectBound< MetricType, ElemType >::Center ( arma::Col< ElemType > &  center) const
inline

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

Parameters
centerVector which the center will be written to.

◆ Clear()

template<typename MetricType , typename ElemType >
void mlpack::bound::HRectBound< MetricType, ElemType >::Clear ( )
inline

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

Resets all dimensions to the empty set.

◆ Contains() [1/2]

template<typename MetricType , typename ElemType >
template<typename VecType >
bool mlpack::bound::HRectBound< MetricType, ElemType >::Contains ( const VecType &  point) const
inline

Determines if a point is within this bound.

Parameters
pointPoint to check the condition.

◆ Contains() [2/2]

template<typename MetricType , typename ElemType >
bool mlpack::bound::HRectBound< MetricType, ElemType >::Contains ( const HRectBound< MetricType, ElemType > &  bound) const
inline

Determines if this bound partially contains a bound.

Parameters
boundBound to check the condition.

◆ MaxDistance() [1/2]

template<typename MetricType , typename ElemType >
template<typename VecType >
ElemType mlpack::bound::HRectBound< MetricType, ElemType >::MaxDistance ( const VecType &  point,
typename std::enable_if_t< IsVector< VecType >::value > *  = 0 
) const
inline

Calculates maximum bound-to-point squared distance.

Parameters
pointPoint to which the maximum distance is requested.

◆ MaxDistance() [2/2]

template<typename MetricType , typename ElemType >
ElemType mlpack::bound::HRectBound< MetricType, ElemType >::MaxDistance ( const HRectBound< MetricType, ElemType > &  other) const
inline

Computes maximum distance.

Parameters
otherBound to which the maximum distance is requested.

◆ MinDistance() [1/2]

template<typename MetricType , typename ElemType >
template<typename VecType >
ElemType mlpack::bound::HRectBound< MetricType, ElemType >::MinDistance ( const VecType &  point,
typename std::enable_if_t< IsVector< VecType >::value > *  = 0 
) const
inline

Calculates minimum bound-to-point distance.

Calculates minimum bound-to-point squared distance.

Parameters
pointPoint to which the minimum distance is requested.

◆ MinDistance() [2/2]

template<typename MetricType , typename ElemType >
ElemType mlpack::bound::HRectBound< MetricType, ElemType >::MinDistance ( const HRectBound< MetricType, ElemType > &  other) const

Calculates minimum bound-to-bound distance.

Calculates minimum bound-to-bound squared distance.

Parameters
otherBound to which the minimum distance is requested.

◆ operator=()

template<typename MetricType , typename ElemType >
HRectBound< MetricType, ElemType > & mlpack::bound::HRectBound< MetricType, ElemType >::operator= ( const HRectBound< MetricType, ElemType > &  other)
inline

Same as copy constructor; necessary to prevent memory leaks.

Same as the copy constructor.

◆ operator[]()

template<typename MetricType = metric::LMetric<2, true>, typename ElemType = double>
math::RangeType<ElemType>& mlpack::bound::HRectBound< MetricType, ElemType >::operator[] ( const size_t  i)
inline

Get the range for a particular dimension.

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

◆ operator|=()

template<typename MetricType = metric::LMetric<2, true>, typename ElemType = double>
template<typename MatType >
HRectBound& mlpack::bound::HRectBound< MetricType, ElemType >::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.

◆ RangeDistance() [1/2]

template<typename MetricType , typename ElemType >
math::RangeType< ElemType > mlpack::bound::HRectBound< MetricType, ElemType >::RangeDistance ( const HRectBound< MetricType, ElemType > &  other) const
inline

Calculates minimum and maximum bound-to-bound distance.

Calculates minimum and maximum bound-to-bound squared distance.

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

◆ RangeDistance() [2/2]

template<typename MetricType , typename ElemType >
template<typename VecType >
math::RangeType< ElemType > mlpack::bound::HRectBound< MetricType, ElemType >::RangeDistance ( const VecType &  point,
typename std::enable_if_t< IsVector< VecType >::value > *  = 0 
) const
inline

Calculates minimum and maximum bound-to-point distance.

Calculates minimum and maximum bound-to-point squared distance.

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

◆ Volume()

template<typename MetricType , typename ElemType >
ElemType mlpack::bound::HRectBound< MetricType, ElemType >::Volume ( ) const
inline

Calculate the volume of the hyperrectangle.

Returns
Volume of the hyperrectangle.

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