PLearn 0.1
|
#include <PRange.h>
Public Member Functions | |
PRange () | |
Creates an empty range [-1,0]. | |
PRange (const T &val) | |
Creates a range with one element : [val,val]. | |
PRange (const T &lower, const T &upper) | |
Creates the range [lower, upper]. | |
bool | contains (const T &val) const |
Returns true iff "val" is inside range. | |
bool | isEmpty () const |
Returns true iff the range is empty. | |
T | lower () const |
Returns the lower bound. | |
T | upper () const |
Returns the upper bound. | |
void | clear () |
Sets to the empty range. | |
void | setValue (const T &val) |
Sets to the one-element range [val,val]. | |
void | setBounds (const T &lower, const T &upper) |
Changes the bounds. | |
void | translate (const T &offset) |
Moves the bounds jointly. | |
void | translateUpper (const T &offset) |
Move the upper bound only. | |
void | translateLower (const T &offset) |
Move the lower bound only. | |
T | distance () const |
Returns the distance (always positive). | |
bool | operator== (const PRange< T > &r) |
Returns true iff both ranges are empty or have the same bounds. | |
bool | operator!= (const PRange< T > &r) const |
Returns true iff the ranges are not equal. | |
PRange & | operator|= (const PRange< T > &r) |
Union-assignment operator. | |
PRange & | operator&= (const PRange< T > &r) |
Intersection-assignment operator. | |
Private Attributes | |
T | lower_ |
T | upper_ |
This template class represents a range of values. A range is simply a pair of boundaries lower and upper s.t. lower <= upper. The range represented by PRange is always inclusive, i.e. lower and upper are part of the range. A PRange may contain just one value (i.e. lower == upper) and it may be empty (in this case, lower will be set to zero and upper will be set to -1).
PLearn::PRange< T >::PRange | ( | ) | [inline] |
PLearn::PRange< T >::PRange | ( | const T & | val | ) | [inline] |
PLearn::PRange< T >::PRange | ( | const T & | lower, |
const T & | upper | ||
) | [inline] |
void PLearn::PRange< T >::clear | ( | ) | [inline] |
Sets to the empty range.
Definition at line 92 of file PRange.h.
References PLearn::PRange< T >::lower_, and PLearn::PRange< T >::upper_.
Referenced by PLearn::PRange< T >::operator&=().
bool PLearn::PRange< T >::contains | ( | const T & | val | ) | const [inline] |
Returns true iff "val" is inside range.
Definition at line 78 of file PRange.h.
References PLearn::PRange< T >::lower_, and PLearn::PRange< T >::upper_.
T PLearn::PRange< T >::distance | ( | ) | const [inline] |
Returns the distance (always positive).
Definition at line 120 of file PRange.h.
References PLearn::PRange< T >::lower_, PLearn::max(), and PLearn::PRange< T >::upper_.
bool PLearn::PRange< T >::isEmpty | ( | ) | const [inline] |
Returns true iff the range is empty.
Definition at line 82 of file PRange.h.
References PLearn::PRange< T >::lower_, and PLearn::PRange< T >::upper_.
Referenced by PLearn::operator&(), PLearn::PRange< T >::operator&=(), PLearn::operator|(), and PLearn::PRange< T >::operator|=().
T PLearn::PRange< T >::lower | ( | ) | const [inline] |
Returns the lower bound.
Definition at line 85 of file PRange.h.
References PLearn::PRange< T >::lower_.
Referenced by PLearn::PRange< T >::operator!=(), PLearn::operator&(), PLearn::PRange< T >::operator&=(), PLearn::PRange< T >::operator==(), PLearn::operator|(), PLearn::PRange< T >::operator|=(), and PLearn::PRange< T >::setBounds().
{ return lower_; }
bool PLearn::PRange< T >::operator!= | ( | const PRange< T > & | r | ) | const [inline] |
Returns true iff the ranges are not equal.
Definition at line 127 of file PRange.h.
References PLearn::PRange< T >::lower(), PLearn::PRange< T >::lower_, PLearn::PRange< T >::upper(), and PLearn::PRange< T >::upper_.
PRange& PLearn::PRange< T >::operator&= | ( | const PRange< T > & | r | ) | [inline] |
Intersection-assignment operator.
Definition at line 144 of file PRange.h.
References PLearn::PRange< T >::clear(), PLearn::PRange< T >::isEmpty(), PLearn::PRange< T >::lower(), PLearn::PRange< T >::lower_, PLearn::max(), PLearn::min(), PLearn::PRange< T >::upper(), and PLearn::PRange< T >::upper_.
{ if (! isEmpty()){ if (! r.isEmpty()) { lower_ = max(lower_, r.lower()); upper_ = min(upper_, r.upper()); } else clear(); } return (*this); }
bool PLearn::PRange< T >::operator== | ( | const PRange< T > & | r | ) | [inline] |
Returns true iff both ranges are empty or have the same bounds.
Definition at line 123 of file PRange.h.
References PLearn::PRange< T >::lower(), PLearn::PRange< T >::lower_, PLearn::PRange< T >::upper(), and PLearn::PRange< T >::upper_.
PRange& PLearn::PRange< T >::operator|= | ( | const PRange< T > & | r | ) | [inline] |
Union-assignment operator.
Definition at line 131 of file PRange.h.
References PLearn::PRange< T >::isEmpty(), PLearn::PRange< T >::lower(), PLearn::PRange< T >::lower_, PLearn::max(), PLearn::min(), PLearn::PRange< T >::upper(), and PLearn::PRange< T >::upper_.
{ if (isEmpty()) return operator=(r); else if (!r.isEmpty()) { lower_ = min(lower_, r.lower()); upper_ = max(upper_, r.upper()); } return (*this); }
void PLearn::PRange< T >::setBounds | ( | const T & | lower, |
const T & | upper | ||
) | [inline] |
Changes the bounds.
Definition at line 98 of file PRange.h.
References PLearn::PRange< T >::lower(), PLearn::PRange< T >::lower_, PLearn::PRange< T >::upper(), and PLearn::PRange< T >::upper_.
Referenced by PLearn::PRange< T >::PRange().
void PLearn::PRange< T >::setValue | ( | const T & | val | ) | [inline] |
Sets to the one-element range [val,val].
Definition at line 95 of file PRange.h.
References PLearn::PRange< T >::lower_, and PLearn::PRange< T >::upper_.
void PLearn::PRange< T >::translate | ( | const T & | offset | ) | [inline] |
Moves the bounds jointly.
Definition at line 107 of file PRange.h.
References PLearn::PRange< T >::lower_, and PLearn::PRange< T >::upper_.
void PLearn::PRange< T >::translateLower | ( | const T & | offset | ) | [inline] |
Move the lower bound only.
Definition at line 117 of file PRange.h.
References PLearn::PRange< T >::lower_.
{ lower_ += offset; }
void PLearn::PRange< T >::translateUpper | ( | const T & | offset | ) | [inline] |
Move the upper bound only.
Definition at line 114 of file PRange.h.
References PLearn::PRange< T >::upper_.
{ upper_ += offset; }
T PLearn::PRange< T >::upper | ( | ) | const [inline] |
Returns the upper bound.
Definition at line 88 of file PRange.h.
References PLearn::PRange< T >::upper_.
Referenced by PLearn::PRange< T >::operator!=(), PLearn::operator&(), PLearn::PRange< T >::operator&=(), PLearn::PRange< T >::operator==(), PLearn::operator|(), PLearn::PRange< T >::operator|=(), and PLearn::PRange< T >::setBounds().
{ return upper_; }
T PLearn::PRange< T >::lower_ [private] |
Definition at line 61 of file PRange.h.
Referenced by PLearn::PRange< T >::clear(), PLearn::PRange< T >::contains(), PLearn::PRange< T >::distance(), PLearn::PRange< T >::isEmpty(), PLearn::PRange< T >::lower(), PLearn::PRange< T >::operator!=(), PLearn::PRange< T >::operator&=(), PLearn::PRange< T >::operator==(), PLearn::PRange< T >::operator|=(), PLearn::PRange< T >::setBounds(), PLearn::PRange< T >::setValue(), PLearn::PRange< T >::translate(), and PLearn::PRange< T >::translateLower().
T PLearn::PRange< T >::upper_ [private] |
Definition at line 64 of file PRange.h.
Referenced by PLearn::PRange< T >::clear(), PLearn::PRange< T >::contains(), PLearn::PRange< T >::distance(), PLearn::PRange< T >::isEmpty(), PLearn::PRange< T >::operator!=(), PLearn::PRange< T >::operator&=(), PLearn::PRange< T >::operator==(), PLearn::PRange< T >::operator|=(), PLearn::PRange< T >::setBounds(), PLearn::PRange< T >::setValue(), PLearn::PRange< T >::translate(), PLearn::PRange< T >::translateUpper(), and PLearn::PRange< T >::upper().