![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: logicalTimeImplFloat.cxx,v $ $Revision: 1.4 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifdef DtIFSPEC1516E 00010 00011 #include "rtiMsConfig.h" 00012 #include <RTI/time/HLAfloat64Interval.h> 00013 00014 #if !WIN32 && !VXWORKS && !VMS && !__darwin__ 00015 #include <values.h> 00016 #else 00017 #if VMS 00018 #include <limits> 00019 #define MAXDOUBLE numeric_limits<double>::max() 00020 #else 00021 #define MAXDOUBLE 1.7976931348623157e+308 00022 #endif 00023 #endif 00024 #define FLOAT64_POSITIVE_INFINITY (MAXDOUBLE) 00025 #define FLOAT64_EPSILON (0.000000001) 00026 #define FLOAT64_ZERO (0.0) 00027 00028 namespace rti1516e 00029 { 00030 class DT_DLL_LRC HLAfloat64IntervalImpl 00031 { 00032 public: 00033 00035 HLAfloat64IntervalImpl(); 00036 HLAfloat64IntervalImpl(double const & value); 00037 HLAfloat64IntervalImpl(HLAfloat64IntervalImpl const & value); 00038 00040 virtual ~HLAfloat64IntervalImpl (); 00041 00043 virtual void setZero (); 00044 virtual bool isZero () const; 00045 virtual void setEpsilon (); 00046 virtual bool isEpsilon () const; 00047 00049 virtual rti1516e::HLAfloat64IntervalImpl& operator= (double value); 00050 virtual rti1516e::HLAfloat64IntervalImpl& operator= (const rti1516e::HLAfloat64IntervalImpl& value); 00051 00053 virtual rti1516e::HLAfloat64IntervalImpl& operator+= (double addend) 00054 throw (rti1516e::IllegalTimeArithmetic); 00055 00056 virtual rti1516e::HLAfloat64IntervalImpl& operator-= (double subtrahend) 00057 throw (rti1516e::IllegalTimeArithmetic); 00058 00059 virtual void setToDifference (double minuend, double subtrahend) 00060 throw (rti1516e::IllegalTimeArithmetic); 00061 00063 virtual double getInterval () const; 00064 virtual void setInterval (double value); 00065 00066 protected: 00067 00068 double myInterval; 00069 static const double theZero; 00070 static const double theEpsilon; 00071 static const double thePositiveInfinity; 00072 }; 00073 } 00074 00075 #endif // DtIFSPEC1516E