Rythmos - Transient Integration for Differential Equations Version of the Day
Public Member Functions | Related Functions
Rythmos::TimeRange< TimeType > Class Template Reference

Represent a time range. More...

#include <Rythmos_TimeRange_decl.hpp>

Inheritance diagram for Rythmos::TimeRange< TimeType >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 TimeRange ()
 Construct an invalid range.
 TimeRange (const TimeType &my_lower, const TimeType &my_upper)
 Construct a valid range.
 TimeRange (const TimeRange< TimeType > &tr)
 Copy constructor.
virtual ~TimeRange ()
 
bool isValid () const
 
TimeType lower () const
 
TimeType upper () const
 
TimeType length () const
 
virtual bool isInRange (const TimeType &t) const
 
TimeRange< TimeType > copyAndScale (const TimeType &scale) const
 

Related Functions

(Note that these are not member functions.)

template<class TimeType >
int compareTimeValues (const TimeType &t1, const TimeType &t2)
 Compare two times taking into account floating point errors.
template<class TimeType >
TimeRange< TimeType > timeRange (const TimeType my_lower, const TimeType my_upper)
 Nonmember constructor.
template<class TimeType >
TimeRange< TimeType > invalidTimeRange ()
 Nonmember constructor.
template<class TimeType >
std::ostream & operator<< (std::ostream &out, const TimeRange< TimeType > &range)
 Output operator.
template<class TimeType >
bool isInRange_cc (const TimeRange< TimeType > &tr, const TimeType &p)
 Nonmember isInRange function [closed, closed].
template<class TimeType >
bool isInRange_oc (const TimeRange< TimeType > &tr, const TimeType &p)
 Nonmember isInRange function (open, closed].
template<class TimeType >
bool isInRange_co (const TimeRange< TimeType > &tr, const TimeType &p)
 Nonmember isInRange function [closed, open).
template<class TimeType >
bool isInRange_oo (const TimeRange< TimeType > &tr, const TimeType &p)
 Nonmember isInRange function (open, open).

Detailed Description

template<class TimeType>
class Rythmos::TimeRange< TimeType >

Represent a time range.

The compiler-generated default constructor, copy constructor, and assignment operators are allowed and perform correctly.

ToDo: Put in checks for the range if needed.

Definition at line 72 of file Rythmos_TimeRange_decl.hpp.


Constructor & Destructor Documentation

template<class TimeType>
Rythmos::TimeRange< TimeType >::TimeRange ( ) [inline]

Construct an invalid range.

Definition at line 76 of file Rythmos_TimeRange_decl.hpp.

template<class TimeType>
Rythmos::TimeRange< TimeType >::TimeRange ( const TimeType &  my_lower,
const TimeType &  my_upper 
) [inline]

Construct a valid range.

Definition at line 80 of file Rythmos_TimeRange_decl.hpp.

template<class TimeType>
Rythmos::TimeRange< TimeType >::TimeRange ( const TimeRange< TimeType > &  tr) [inline]

Copy constructor.

Definition at line 85 of file Rythmos_TimeRange_decl.hpp.

template<class TimeType>
virtual Rythmos::TimeRange< TimeType >::~TimeRange ( ) [inline, virtual]

Definition at line 90 of file Rythmos_TimeRange_decl.hpp.


Member Function Documentation

template<class TimeType>
bool Rythmos::TimeRange< TimeType >::isValid ( ) const [inline]

Definition at line 92 of file Rythmos_TimeRange_decl.hpp.

template<class TimeType>
TimeType Rythmos::TimeRange< TimeType >::lower ( ) const [inline]

Definition at line 94 of file Rythmos_TimeRange_decl.hpp.

template<class TimeType>
TimeType Rythmos::TimeRange< TimeType >::upper ( ) const [inline]

Definition at line 96 of file Rythmos_TimeRange_decl.hpp.

template<class TimeType>
TimeType Rythmos::TimeRange< TimeType >::length ( ) const [inline]

Definition at line 98 of file Rythmos_TimeRange_decl.hpp.

template<class TimeType>
virtual bool Rythmos::TimeRange< TimeType >::isInRange ( const TimeType &  t) const [inline, virtual]

Definition at line 100 of file Rythmos_TimeRange_decl.hpp.

template<class TimeType>
TimeRange<TimeType> Rythmos::TimeRange< TimeType >::copyAndScale ( const TimeType &  scale) const [inline]

Definition at line 108 of file Rythmos_TimeRange_decl.hpp.


Friends And Related Function Documentation

template<class TimeType >
int compareTimeValues ( const TimeType &  t1,
const TimeType &  t2 
) [related]

Compare two times taking into account floating point errors.

Returns:
Return -1 if t1 < t2 , 0 if t1 == t2 and +1 if t1 > t2 .

Note that this function compares t1 to t2 and not the other way around.

This function is designed to solve the problem where in:

 const TimeType timeStep = endTime - time;
 const TimeType updatedEndTime = time + timeStep;
 const bool isAtOrPastEndTime = ( updatedEndTime >= endTime );

the bool isAtOrPastEndTime may actually be false! This is especially a danger if IEEE floating point numerics are not being used (and there are many systems that do not for speed and other reasons).

template<class TimeType >
TimeRange< TimeType > timeRange ( const TimeType  my_lower,
const TimeType  my_upper 
) [related]

Nonmember constructor.

template<class TimeType >
TimeRange< TimeType > invalidTimeRange ( ) [related]

Nonmember constructor.

template<class TimeType >
std::ostream & operator<< ( std::ostream &  out,
const TimeRange< TimeType > &  range 
) [related]

Output operator.

template<class TimeType >
bool isInRange_cc ( const TimeRange< TimeType > &  tr,
const TimeType &  p 
) [related]

Nonmember isInRange function [closed, closed].

tr.lower() <= p <= tr.upper()

template<class TimeType >
bool isInRange_oc ( const TimeRange< TimeType > &  tr,
const TimeType &  p 
) [related]

Nonmember isInRange function (open, closed].

tr.lower() < p <= tr.upper()

template<class TimeType >
bool isInRange_co ( const TimeRange< TimeType > &  tr,
const TimeType &  p 
) [related]

Nonmember isInRange function [closed, open).

tr.lower() <= p < tr.upper()

template<class TimeType >
bool isInRange_oo ( const TimeRange< TimeType > &  tr,
const TimeType &  p 
) [related]

Nonmember isInRange function (open, open).

tr.lower() < p < tr.upper()


The documentation for this class was generated from the following file:
 All Classes Functions Variables Typedefs Friends