|
(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. More...
|
|
template<class TimeType > |
TimeRange< TimeType > | timeRange (const TimeType my_lower, const TimeType my_upper) |
| Nonmember constructor. More...
|
|
template<class TimeType > |
TimeRange< TimeType > | invalidTimeRange () |
| Nonmember constructor. More...
|
|
template<class TimeType > |
std::ostream & | operator<< (std::ostream &out, const TimeRange< TimeType > &range) |
| Output operator. More...
|
|
template<class TimeType > |
bool | isInRange_cc (const TimeRange< TimeType > &tr, const TimeType &p) |
| Nonmember isInRange function [closed, closed]. More...
|
|
template<class TimeType > |
bool | isInRange_oc (const TimeRange< TimeType > &tr, const TimeType &p) |
| Nonmember isInRange function (open, closed]. More...
|
|
template<class TimeType > |
bool | isInRange_co (const TimeRange< TimeType > &tr, const TimeType &p) |
| Nonmember isInRange function [closed, open). More...
|
|
template<class TimeType > |
bool | isInRange_oo (const TimeRange< TimeType > &tr, const TimeType &p) |
| Nonmember isInRange function (open, open). More...
|
|
template<class Scalar>
class Rythmos::TimeRange< Scalar >
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 15 of file Rythmos_IntegrationControlStrategyBase.hpp.
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).