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