diff options
Diffstat (limited to 'ace/OS_NS_math.inl')
-rw-r--r-- | ace/OS_NS_math.inl | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/ace/OS_NS_math.inl b/ace/OS_NS_math.inl index 6a55a57480a..0637272006b 100644 --- a/ace/OS_NS_math.inl +++ b/ace/OS_NS_math.inl @@ -1,24 +1,35 @@ // -*- C++ -*- +// // $Id$ +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + namespace ACE_OS { ACE_INLINE double floor (double x) { // This method computes the largest integral value not greater than x. - return double (static_cast<long> (x)); + if(x > 0) + return static_cast<long> (x); + else if (static_cast<long> (x) == x) + return x; + else + return static_cast<long>(x) - 1; } ACE_INLINE double ceil (double x) { // This method computes the smallest integral value not less than x. - const double floor = ACE_OS::floor (x); - if (floor == x) - return floor; + if (x < 0) + return static_cast<long> (x); + else if (static_cast<long> (x) == x) + return x; else - return floor + 1; + return static_cast<long> (x) + 1; } } // ACE_OS namespace + +ACE_END_VERSIONED_NAMESPACE_DECL |