certi-cvs
[Top][All Lists]
Advanced

[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 $




reply via email to

[Prev in Thread] Current Thread [Next in Thread]