$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r86501 - trunk/libs/serialization/example
From: ramey_at_[hidden]
Date: 2013-10-28 11:39:01
Author: ramey
Date: 2013-10-28 11:39:01 EDT (Mon, 28 Oct 2013)
New Revision: 86501
URL: http://svn.boost.org/trac/boost/changeset/86501
Log:
corrected # digits
corrected tests which compare floating point numbers to require max 1 digit difference
Text files modified: 
   trunk/libs/serialization/example/demo_dll_a.hpp |     9 +++------                               
   trunk/libs/serialization/example/demo_dll_a.ipp |     8 ++------                                
   trunk/libs/serialization/example/demo_dll_b.hpp |     5 +++--                                   
   trunk/libs/serialization/example/demo_dll_b.ipp |     4 ++--                                    
   4 files changed, 10 insertions(+), 16 deletions(-)
Modified: trunk/libs/serialization/example/demo_dll_a.hpp
==============================================================================
--- trunk/libs/serialization/example/demo_dll_a.hpp	Mon Oct 28 11:36:41 2013	(r86500)
+++ trunk/libs/serialization/example/demo_dll_a.hpp	2013-10-28 11:39:01 EDT (Mon, 28 Oct 2013)	(r86501)
@@ -20,6 +20,7 @@
 #include <cstdlib> // for rand()
 #include <cmath> // for fabs()
 #include <cstddef> // size_t
+#include <boost/math/special_functions/next.hpp>
 
 #include <boost/config.hpp>
 #if defined(BOOST_NO_STDC_NAMESPACE)
@@ -245,13 +246,9 @@
         return false; 
     if(v != rhs.v)
         return false; 
-    if(w == 0 && std::fabs(rhs.w) > 2 * std::numeric_limits<float>::round_error())
+    if(std::abs( boost::math::float_distance(w, rhs.w)) > 1)
         return false;
-    if(std::fabs(rhs.w/w - 1.0) > 2 * std::numeric_limits<float>::round_error())
-        return false;
-    if(x == 0 && std::fabs(rhs.x - x) > 2 * std::numeric_limits<double>::round_error())
-        return false;
-    if(std::fabs(rhs.x/x - 1.0) > 2 * std::numeric_limits<double>::round_error())
+    if(std::abs( boost::math::float_distance(x, rhs.x)) > 1)
         return false;
     if(0 != y.compare(rhs.y))
         return false;
Modified: trunk/libs/serialization/example/demo_dll_a.ipp
==============================================================================
--- trunk/libs/serialization/example/demo_dll_a.ipp	Mon Oct 28 11:36:41 2013	(r86500)
+++ trunk/libs/serialization/example/demo_dll_a.ipp	2013-10-28 11:39:01 EDT (Mon, 28 Oct 2013)	(r86501)
@@ -244,14 +244,10 @@
     if(u != rhs.u)
         return false; 
     if(v != rhs.v)
-        return false; 
-    if(w == 0 && std::fabs(rhs.w) > std::numeric_limits<float>::epsilon())
-        return false;
-    if(std::fabs(rhs.w/w - 1.0) > std::numeric_limits<float>::epsilon())
         return false;
-    if(x == 0 && std::fabs(rhs.x - x) > std::numeric_limits<float>::epsilon())
+    if(std::abs( boost::math::float_distance(w, rhs.w)) > 1)
         return false;
-    if(std::fabs(rhs.x/x - 1.0) > std::numeric_limits<float>::epsilon())
+    if(std::abs( boost::math::float_distance(x, rhs.x)) > 1)
         return false;
     if(0 != y.compare(rhs.y))
         return false;
Modified: trunk/libs/serialization/example/demo_dll_b.hpp
==============================================================================
--- trunk/libs/serialization/example/demo_dll_b.hpp	Mon Oct 28 11:36:41 2013	(r86500)
+++ trunk/libs/serialization/example/demo_dll_b.hpp	2013-10-28 11:39:01 EDT (Mon, 28 Oct 2013)	(r86501)
@@ -17,6 +17,7 @@
 //  See http://www.boost.org for updates, documentation, and revision history.
 
 #include <cstdlib> // for rand()
+#include <boost/math/special_functions/next.hpp>
 
 #include <boost/config.hpp>
 #if defined(BOOST_NO_STDC_NAMESPACE)
@@ -104,8 +105,8 @@
         && t == rhs.t 
         && u == rhs.u 
         && v == rhs.v 
-        && std::fabs(w - rhs.w) <= std::numeric_limits<float>::round_error()
-        && std::fabs(x - rhs.x) <= std::numeric_limits<float>::round_error()
+        && std::abs( boost::math::float_distance(w, rhs.w)) < 2
+        && std::abs( boost::math::float_distance(x, rhs.x)) < 2
     ;
 }
 
Modified: trunk/libs/serialization/example/demo_dll_b.ipp
==============================================================================
--- trunk/libs/serialization/example/demo_dll_b.ipp	Mon Oct 28 11:36:41 2013	(r86500)
+++ trunk/libs/serialization/example/demo_dll_b.ipp	2013-10-28 11:39:01 EDT (Mon, 28 Oct 2013)	(r86501)
@@ -104,8 +104,8 @@
         && t == rhs.t 
         && u == rhs.u 
         && v == rhs.v 
-        && std::fabs(w - rhs.w) <= std::numeric_limits<float>::round_error()
-        && std::fabs(x - rhs.x) <= std::numeric_limits<float>::round_error()
+        && std::abs( boost::math::float_distance(w, rhs.w)) < 2
+        && std::abs( boost::math::float_distance(x, rhs.x)) < 2
     ;
 }