[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi libCERTI/LBTS.cc libCERTI/FedTime.cc RTIA...
From: |
certi-cvs |
Subject: |
[certi-cvs] certi libCERTI/LBTS.cc libCERTI/FedTime.cc RTIA... |
Date: |
Mon, 07 Apr 2008 15:08:27 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 08/04/07 15:08:27
Modified files:
libCERTI : LBTS.cc FedTime.cc
RTIA : TimeManagement.cc
Log message:
Fix bug #22821 : Infinite LBTS <--> infinite RTIfedTime conversion error
Patch from Petr Gotthard.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/LBTS.cc?cvsroot=certi&r1=3.8&r2=3.9
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/FedTime.cc?cvsroot=certi&r1=3.11&r2=3.12
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/TimeManagement.cc?cvsroot=certi&r1=3.30&r2=3.31
Patches:
Index: libCERTI/LBTS.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/LBTS.cc,v
retrieving revision 3.8
retrieving revision 3.9
diff -u -b -r3.8 -r3.9
--- libCERTI/LBTS.cc 6 Jul 2007 09:25:18 -0000 3.8
+++ libCERTI/LBTS.cc 7 Apr 2008 15:08:26 -0000 3.9
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: LBTS.cc,v 3.8 2007/07/06 09:25:18 erk Exp $
+// $Id: LBTS.cc,v 3.9 2008/04/07 15:08:26 erk Exp $
// ----------------------------------------------------------------------------
@@ -46,7 +46,8 @@
federate without any regulating federate.
*/
LBTS::LBTS()
- : _LBTS(DBL_MAX), MyFederateNumber(0)
+ : _LBTS(std::numeric_limits<double>::infinity()),
+ MyFederateNumber(0)
{
}
@@ -63,7 +64,7 @@
FederationTime hl ;
// LBTS = + l'infini
- _LBTS = DBL_MAX ;
+ _LBTS = std::numeric_limits<double>::infinity();
ClockSet::iterator i ;
for (i = clocks.begin(); i != clocks.end(); ++i) {
@@ -153,4 +154,4 @@
} // namespace certi
-// $Id: LBTS.cc,v 3.8 2007/07/06 09:25:18 erk Exp $
+// $Id: LBTS.cc,v 3.9 2008/04/07 15:08:26 erk Exp $
Index: libCERTI/FedTime.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/FedTime.cc,v
retrieving revision 3.11
retrieving revision 3.12
diff -u -b -r3.11 -r3.12
--- libCERTI/FedTime.cc 6 Jul 2007 09:25:17 -0000 3.11
+++ libCERTI/FedTime.cc 7 Apr 2008 15:08:27 -0000 3.12
@@ -63,8 +63,6 @@
return const_cast<FedTime &>(time).isPositiveInfinity() == RTI::RTI_TRUE ;
}
-const double epsilon = 1.0e-9 ;
-const double infinity = std::numeric_limits<double>::max();
const char *infinity_str = "+inf" ;
} // anonymous namespace
@@ -94,16 +92,22 @@
// ----------------------------------------------------------------------------
// RTIfedTime
RTIfedTime::RTIfedTime()
- : _fedTime(0), _zero(0), _epsilon(0), _positiveInfinity(0) { }
+ : _fedTime(0),
+ _zero(0),
+ _epsilon(std::numeric_limits<double>::epsilon()),
+ _positiveInfinity(std::numeric_limits<double>::infinity()) { }
RTIfedTime::RTIfedTime(const RTI::Double &time)
- : _fedTime(time), _zero(0), _epsilon(0), _positiveInfinity(0) { }
+ : _fedTime(time),
+ _zero(0),
+ _epsilon(std::numeric_limits<double>::epsilon()),
+ _positiveInfinity(std::numeric_limits<double>::infinity()) { }
RTIfedTime::RTIfedTime(const FedTime &time)
: _fedTime(rft(time).getTime()),
_zero(0),
- _epsilon(0),
- _positiveInfinity(const_cast<FedTime &>(time).isPositiveInfinity()) { }
+ _epsilon(std::numeric_limits<double>::epsilon()),
+ _positiveInfinity(std::numeric_limits<double>::infinity()) { }
// ----------------------------------------------------------------------------
RTIfedTime::RTIfedTime(const RTIfedTime &time)
@@ -122,38 +126,35 @@
void
RTIfedTime::setZero()
{
- _fedTime = 0 ;
- _zero = 0 ;
- _epsilon = 0 ;
- _positiveInfinity = 0 ;
+ _fedTime = _zero;
}
// ----------------------------------------------------------------------------
RTI::Boolean
RTIfedTime::isZero()
{
- return RTI::Boolean(_fedTime == 0.0);
+ return RTI::Boolean(_fedTime == _zero);
}
// ----------------------------------------------------------------------------
void
RTIfedTime::setEpsilon()
{
- _fedTime = epsilon ;
+ _fedTime = _epsilon;
}
// ----------------------------------------------------------------------------
void
RTIfedTime::setPositiveInfinity()
{
- _positiveInfinity = 1.0 ;
+ _fedTime = _positiveInfinity;
}
// ----------------------------------------------------------------------------
inline RTI::Boolean
RTIfedTime::isPositiveInfinity()
{
- return RTI::Boolean(_positiveInfinity != 0.0);
+ return RTI::Boolean(_fedTime == _positiveInfinity);
}
// ----------------------------------------------------------------------------
@@ -284,7 +285,6 @@
throw (RTI::InvalidFederationTime)
{
_fedTime = rft(time)._fedTime ;
- _positiveInfinity = rft(time)._positiveInfinity ;
return *this ;
}
@@ -325,7 +325,6 @@
throw (RTI::InvalidFederationTime)
{
_fedTime = time._fedTime ;
- _positiveInfinity = time._positiveInfinity ;
return *this ;
}
@@ -335,7 +334,6 @@
throw (RTI::InvalidFederationTime)
{
_fedTime = time ;
- _positiveInfinity = 0.0 ;
return *this ;
}
Index: RTIA/TimeManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/TimeManagement.cc,v
retrieving revision 3.30
retrieving revision 3.31
diff -u -b -r3.30 -r3.31
--- RTIA/TimeManagement.cc 13 Mar 2008 14:39:19 -0000 3.30
+++ RTIA/TimeManagement.cc 7 Apr 2008 15:08:27 -0000 3.31
@@ -18,7 +18,7 @@
// along with this program ; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// $Id: TimeManagement.cc,v 3.30 2008/03/13 14:39:19 siron Exp $
+// $Id: TimeManagement.cc,v 3.31 2008/04/07 15:08:27 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -759,7 +759,7 @@
if (_est_contraint) {
// give a TSO message.
- if (_LBTS == DBL_MAX)
+ if (_LBTS == std::numeric_limits<double>::infinity())
D.Out(pdDebug, "Logical time : %f, LBTS : infini.", date_avancee);
else
D.Out(pdDebug, "Logical time : %f, LBTS : %lf.", date_avancee,
_LBTS);
@@ -769,7 +769,7 @@
// otherwise
if (!msg_donne) {
// if LBTS allows to give a timeAdvanceGrant.
- if (_LBTS == DBL_MAX)
+ if (_LBTS == std::numeric_limits<double>::infinity())
D.Out(pdDebug, "Logical time : %f, LBTS : infini, lookahead :
%f.",
date_avancee, _lookahead_courant);
else
@@ -914,4 +914,4 @@
}} // namespaces
-// $Id: TimeManagement.cc,v 3.30 2008/03/13 14:39:19 siron Exp $
+// $Id: TimeManagement.cc,v 3.31 2008/04/07 15:08:27 erk Exp $
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi libCERTI/LBTS.cc libCERTI/FedTime.cc RTIA...,
certi-cvs <=