faudes::TimeInterval Class Reference
[Timed Automata PlugIn]

Model of a time interval. More...

#include <tp_timeinterval.h>

List of all members.

Public Member Functions

 TimeInterval (void)
 Default constructor - sets time interval to (-inf; +inf).
 ~TimeInterval (void)
 Default destructor.
void LB (tpTime::Type time)
 Set the lower bound to a given value.
void UB (tpTime::Type time)
 Set the upper bound to a given value.
void UBincl (bool incl)
 Configures the upper bound to be inclusive.
void LBincl (bool incl)
 Configures the lower bound to be inclusive.
void setUBinf (void)
 Set upper bound to infinity.
void setLBinf (void)
 Set lower bound to infinity.
tpTime::Type UB (void) const
 Return upper bound.
tpTime::Type LB (void) const
 Return lower bound.
bool LBincl (void) const
 Test for lower bound inclusive.
bool UBincl (void) const
 Test for upper bound inclusive.
bool LBinf (void) const
 Test for lower bound infinity.
bool UBinf (void) const
 Test for upper bound infinity.
void Canonical (void)
 Convert to canonical representation.
void SetFull (void)
 Set to full (-inf, +inf).
void SetEmpty (void)
 Set to empty (1, -1).
void SetPositive (void)
 Set to positive [0, inf).
void SetNegative (void)
 Set to negative (-inf, 0].
bool Full (void) const
 Test whether interval is full.
bool Empty (void) const
 Test interval for empty set.
bool IncludesPositive (void) const
 Test whether interval includes [0,inf).
bool IncludesNegative (void) const
 Test whether interval includes (-inf,0].
bool In (tpTime::Type time) const
 Test whether a point satisfies interval.
bool operator== (const TimeInterval &rOtherInterval) const
 Test whether two intervals are equal.
bool operator!= (const TimeInterval &rOtherInterval) const
 Test whether two intervals not equal.
void PositiveLeftShift (tpTime::Type time)
 Transform by left shift and intersection with [0, inf).
void Intersect (const TimeInterval &rOtherInterval)
 Intersect this interval with other interval.
void Merge (const TimeInterval &rOtherInterval)
 Merge this interval with other interval.
std::string Str (void) const
 Pretty printable string.

Static Public Member Functions

static TimeInterval Intersect (const TimeInterval &rInterval1, const TimeInterval &rInterval2)
 Intersection of two time intervals.
static TimeInterval Merge (const TimeInterval &rInterval1, const TimeInterval &rInterval2)
 Merge this interval with other interval.

Private Attributes

tpTime::Type mstUB
 Upper bound.
tpTime::Type mstLB
 Lower bound.
bool mbUBincl
 Flag to indicate that the upper bound is part of the interval.
bool mbLBincl
 Flag to indicate that lower boundary is part of the interval.

Detailed Description

Model of a time interval.

An interval consisits of a lower and upper bound, plus flags to indicate whether the bounds are inclusive or not. The maximum and minimum values of the time data tyle are interpreted as infinity.

Definition at line 86 of file tp_timeinterval.h.


Constructor & Destructor Documentation

faudes::TimeInterval::TimeInterval ( void   )  [inline]

Default constructor - sets time interval to (-inf; +inf).

Definition at line 93 of file tp_timeinterval.h.

faudes::TimeInterval::~TimeInterval ( void   )  [inline]

Default destructor.

Definition at line 98 of file tp_timeinterval.h.


Member Function Documentation

void TimeInterval::Canonical ( void   ) 

Convert to canonical representation.

Uses tpTime::Step to convert to aleft closed / right opened representation

Definition at line 16 of file tp_timeinterval.cpp.

bool TimeInterval::Empty ( void   )  const

Test interval for empty set.

Returns:
True if interval is empty

Definition at line 30 of file tp_timeinterval.cpp.

bool faudes::TimeInterval::Full ( void   )  const [inline]

Test whether interval is full.

Returns:
True if interval is (-inf,+inf)

Definition at line 250 of file tp_timeinterval.h.

bool TimeInterval::In ( tpTime::Type  time  )  const

Test whether a point satisfies interval.

Returns:
True if interval includes the point

Definition at line 40 of file tp_timeinterval.cpp.

bool faudes::TimeInterval::IncludesNegative ( void   )  const [inline]

Test whether interval includes (-inf,0].

Returns:
True if interval includes (-inf,0]

Definition at line 275 of file tp_timeinterval.h.

bool faudes::TimeInterval::IncludesPositive ( void   )  const [inline]

Test whether interval includes [0,inf).

Returns:
True if interval includes [0,inf)

Definition at line 266 of file tp_timeinterval.h.

TimeInterval TimeInterval::Intersect ( const TimeInterval rInterval1,
const TimeInterval rInterval2 
) [static]

Intersection of two time intervals.

Parameters:
rInterval1 Reference of first time interval
rInterval2 Reference of second time interval
Returns:
Intersection of both intervals.

Definition at line 114 of file tp_timeinterval.cpp.

void TimeInterval::Intersect ( const TimeInterval rOtherInterval  ) 

Intersect this interval with other interval.

Parameters:
rOtherInterval 

Definition at line 85 of file tp_timeinterval.cpp.

tpTime::Type faudes::TimeInterval::LB ( void   )  const [inline]

Return lower bound.

Returns:
lower bound

Definition at line 180 of file tp_timeinterval.h.

void faudes::TimeInterval::LB ( tpTime::Type  time  )  [inline]

Set the lower bound to a given value.

If the value is minus infinity, it is set exclusive. Otherwise, the exclusive/inclusive flag is kept.

Parameters:
time The new value of lower bound

Definition at line 108 of file tp_timeinterval.h.

bool faudes::TimeInterval::LBincl ( void   )  const [inline]

Test for lower bound inclusive.

Returns:
true for inclusive

Definition at line 187 of file tp_timeinterval.h.

void faudes::TimeInterval::LBincl ( bool  incl  )  [inline]

Configures the lower bound to be inclusive.

If the lower bound is minus infinity, it stays exclusive.

Parameters:
incl 

Definition at line 150 of file tp_timeinterval.h.

bool faudes::TimeInterval::LBinf ( void   )  const [inline]

Test for lower bound infinity.

Returns:
true for infinity

Definition at line 201 of file tp_timeinterval.h.

TimeInterval TimeInterval::Merge ( const TimeInterval rInterval1,
const TimeInterval rInterval2 
) [static]

Merge this interval with other interval.

I.e. find smallest superset of the union of the two intervals.

Parameters:
rInterval1 Reference of first time interval
rInterval2 Reference of second time interval
Returns:
Superset of both intervals.

Definition at line 147 of file tp_timeinterval.cpp.

void TimeInterval::Merge ( const TimeInterval rOtherInterval  ) 

Merge this interval with other interval.

I.e. find smallest superset of the union of the two intervals.

Parameters:
rOtherInterval Reference to other time interval

Definition at line 125 of file tp_timeinterval.cpp.

bool faudes::TimeInterval::operator!= ( const TimeInterval rOtherInterval  )  const [inline]

Test whether two intervals not equal.

Note that the test is strictly based on the internal representation, ie [0,10] is not equal to [0,11). This may change in future implementations to consider the tpTime::TypeStep

Returns:
False on equality

Definition at line 314 of file tp_timeinterval.h.

bool faudes::TimeInterval::operator== ( const TimeInterval rOtherInterval  )  const [inline]

Test whether two intervals are equal.

Note that the test is strictly based on the internal representation, ie [0,10] is not equal to [0,11). This may change in future implementations to consider the tpTime::TypeStep

Returns:
True on equality

Definition at line 296 of file tp_timeinterval.h.

void TimeInterval::PositiveLeftShift ( tpTime::Type  time  ) 

Transform by left shift and intersection with [0, inf).

Parameters:
time Amount to shift left

Definition at line 49 of file tp_timeinterval.cpp.

void faudes::TimeInterval::SetEmpty ( void   )  [inline]

Set to empty (1, -1).

Definition at line 228 of file tp_timeinterval.h.

void faudes::TimeInterval::SetFull ( void   )  [inline]

Set to full (-inf, +inf).

Definition at line 222 of file tp_timeinterval.h.

void faudes::TimeInterval::setLBinf ( void   )  [inline]

Set lower bound to infinity.

Definition at line 165 of file tp_timeinterval.h.

void faudes::TimeInterval::SetNegative ( void   )  [inline]

Set to negative (-inf, 0].

Definition at line 241 of file tp_timeinterval.h.

void faudes::TimeInterval::SetPositive ( void   )  [inline]

Set to positive [0, inf).

Definition at line 234 of file tp_timeinterval.h.

void faudes::TimeInterval::setUBinf ( void   )  [inline]

Set upper bound to infinity.

Definition at line 159 of file tp_timeinterval.h.

std::string TimeInterval::Str ( void   )  const

Pretty printable string.

Returns:
printable string.

Definition at line 59 of file tp_timeinterval.cpp.

tpTime::Type faudes::TimeInterval::UB ( void   )  const [inline]

Return upper bound.

Returns:
upper bound

Definition at line 173 of file tp_timeinterval.h.

void faudes::TimeInterval::UB ( tpTime::Type  time  )  [inline]

Set the upper bound to a given value.

If the value is infinity, it is set exclusive. Otherwise, the exclusive/inclusive flag is kept.

Parameters:
time The new value of upper bound

Definition at line 124 of file tp_timeinterval.h.

bool faudes::TimeInterval::UBincl ( void   )  const [inline]

Test for upper bound inclusive.

Returns:
true for inclusive

Definition at line 194 of file tp_timeinterval.h.

void faudes::TimeInterval::UBincl ( bool  incl  )  [inline]

Configures the upper bound to be inclusive.

If the upper bound is infinity, it stays exclusive.

Parameters:
incl 

Definition at line 138 of file tp_timeinterval.h.

bool faudes::TimeInterval::UBinf ( void   )  const [inline]

Test for upper bound infinity.

Returns:
true for infinity

Definition at line 208 of file tp_timeinterval.h.


Member Data Documentation

Flag to indicate that lower boundary is part of the interval.

Definition at line 390 of file tp_timeinterval.h.

Flag to indicate that the upper bound is part of the interval.

Definition at line 387 of file tp_timeinterval.h.

Lower bound.

Definition at line 384 of file tp_timeinterval.h.

Upper bound.

Definition at line 381 of file tp_timeinterval.h.


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

libFAUDES 2.23h --- 2014.04.03 --- c++ api documentaion by doxygen