ThePEG::Interval< T, CMP > Class Template Reference

An Interval object is used to represent an interval [ lower(), upper() ) where the ordering is defined by the bool operator()(const T &, const T &) const member of the CMP class (by defaut less<T>). More...

#include <Interval.h>

List of all members.

Public Member Functions

 Interval ()
 Construct an empty interval.
 Interval (T dn, T up)
 Construct interval [dn,up).
bool operator== (const Interval &i) const
 Test for equality.
bool operator< (const Interval &i) const
 Test for ordering.
bool check () const
 Check consistency ie.
bool operator() (T x) const
 Returns true if x is within the interval.
bool includes (T x) const
 Returns true if x is within the interval.
bool includes (const Interval< T, CMP > &i) const
 Returns true if the whole of i is within the interval.
Interval< T, CMP > chopUpper (T x)
 If x is in the interval return the interval [x,upper()) and change this interval to [lower(),x).
Interval< T, CMP > chopLower (T x)
 If x is in the interval return the interval [lower(),x) and change this interval to [x,upper()).
Interval< T, CMP > overlap (const Interval &i) const
 If this interval operlaps with i return the overlapping interval.
Interval< T, CMP > sum (const Interval &i) const
 If this interval operlaps with i return the union of the two intervals.
upper () const
 Return the upper limit of the interval.
lower () const
 Return the lower limit of the interval.
void upper (T up)
 Set the upper limit of the interval.
void lower (T dn)
 Set the lower limit of the interval.

Static Public Member Functions

template<typename Iterator>
static bool check (Iterator first, Iterator last)
 Check if any of the values in the iterator given range is included in this interval.
template<typename Iterator>
static bool checkAll (Iterator first, Iterator last)
 Check if all of the values in the given iterator range is included in this interval.
static std::vector< Interval
< T, CMP > > 
split (Interval< T, CMP >, T x)
 If x is in the given interval, split the given interval in two, otherwise return an empty list.
template<typename Iterator>
static std::vector< Interval
< T, CMP > > 
split (Interval< T, CMP >, Iterator first, Iterator last)
 For each value in the given range is in the given interval, split the interval in two, otherwise return an empty list.

Private Attributes

std::pair< T, T > theLimits
 The lower and upper limit of this interval.

Static Private Attributes

static CMP cmp
 The object used for comparisons.


Detailed Description

template<typename T, typename CMP>
class ThePEG::Interval< T, CMP >

An Interval object is used to represent an interval [ lower(), upper() ) where the ordering is defined by the bool operator()(const T &, const T &) const member of the CMP class (by defaut less<T>).

Definition at line 27 of file Interval.h.


Member Function Documentation

template<typename T, typename CMP>
bool ThePEG::Interval< T, CMP >::operator< ( const Interval< T, CMP > &  i  )  const [inline]

Test for ordering.

Returns:
true if lower() < i.lower() or lower() == i.lower() and upper() < i.upper().

Definition at line 53 of file Interval.h.

template<typename T, typename CMP>
bool ThePEG::Interval< T, CMP >::check (  )  const [inline]

Check consistency ie.

that lower() < upper().

Definition at line 61 of file Interval.h.

template<typename T, typename CMP>
Interval<T,CMP> ThePEG::Interval< T, CMP >::chopUpper ( x  )  [inline]

If x is in the interval return the interval [x,upper()) and change this interval to [lower(),x).

If x is not within the interval, return [0,0) and leave this interval as it is.

Definition at line 85 of file Interval.h.

template<typename T, typename CMP>
Interval<T,CMP> ThePEG::Interval< T, CMP >::chopLower ( x  )  [inline]

If x is in the interval return the interval [lower(),x) and change this interval to [x,upper()).

If x is not within the interval, return [0,0) and leave this interval as it is.

Definition at line 100 of file Interval.h.


Member Data Documentation

template<typename T, typename CMP>
CMP ThePEG::Interval< T, CMP >::cmp [static, private]


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

Generated on Thu Apr 29 12:43:25 2010 for ThePEG by  doxygen 1.5.5