[med-svn] [aghermann] 73/85: painstaking dbl_cmp, feat. DBL_EPSILON

andrei zavada hmmr-guest at alioth.debian.org
Thu Sep 26 23:46:35 UTC 2013


This is an automated email from the git hooks/post-receive script.

hmmr-guest pushed a commit to branch master
in repository aghermann.

commit 181469ff1197426dbf24550276cd7d63b7f20e84
Author: Andrei Zavada <johnhommer at gmail.com>
Date:   Sun Sep 22 03:10:44 2013 +0300

    painstaking dbl_cmp, feat. DBL_EPSILON
---
 upstream/src/common/lang.hh             |   11 +++++++++++
 upstream/src/libmetrics/mc-artifacts.hh |   24 +++++++++++++-----------
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/upstream/src/common/lang.hh b/upstream/src/common/lang.hh
index ad71d85..89406ec 100644
--- a/upstream/src/common/lang.hh
+++ b/upstream/src/common/lang.hh
@@ -16,6 +16,8 @@
 #  include "config.h"
 #endif
 
+#include <cfloat>
+#include <cmath>
 #include <unistd.h>
 #include <stdio.h>
 
@@ -26,6 +28,15 @@ namespace agh {
 
 typedef unsigned long hash_t;
 
+inline int dbl_cmp( double x, double y) __attribute__ ((pure));
+inline int dbl_cmp( double x, double y)
+{
+        if ( fabs(x - y) > DBL_EPSILON )
+                return (x > y) ? 1 : -1;
+        else
+                return 0;
+}
+
 
 // g++ bits
 
diff --git a/upstream/src/libmetrics/mc-artifacts.hh b/upstream/src/libmetrics/mc-artifacts.hh
index f59afc6..7b1e3c8 100644
--- a/upstream/src/libmetrics/mc-artifacts.hh
+++ b/upstream/src/libmetrics/mc-artifacts.hh
@@ -15,6 +15,7 @@
 
 #include <vector>
 #include <valarray>
+#include "common/lang.hh"
 #include "libsigproc/sigproc.hh"
 #include "aghermann/expdesign/dirlevel.hh"
 
@@ -41,17 +42,18 @@ struct SArtifactDetectionPPack {
         bool
         operator==( const SArtifactDetectionPPack& rv) const
                 {
-                        return  scope == rv.scope &&
-                                upper_thr == rv.upper_thr &&
-                                lower_thr == rv.lower_thr &&
-                                f0 == rv.f0 &&
-                                fc == rv.fc &&
-                                bandwidth == rv.bandwidth &&
-                                mc_gain == rv.mc_gain &&
-                                iir_backpolate == rv.iir_backpolate &&
-                                E == rv.E &&
-                                dmin == rv.dmin &&
-                                dmax == rv.dmax &&
+                        using agh::dbl_cmp;
+                        return  dbl_cmp(scope, rv.scope) == 0 &&
+                                dbl_cmp(upper_thr, rv.upper_thr) == 0 &&
+                                dbl_cmp(lower_thr, rv.lower_thr) == 0 &&
+                                dbl_cmp(f0, rv.f0) == 0 &&
+                                dbl_cmp(fc, rv.fc) == 0 &&
+                                dbl_cmp(bandwidth, rv.bandwidth) == 0 &&
+                                dbl_cmp(mc_gain, rv.mc_gain) == 0 &&
+                                dbl_cmp(iir_backpolate, rv.iir_backpolate) == 0 &&
+                                dbl_cmp(E, rv.E) == 0 &&
+                                dbl_cmp(dmin, rv.dmin) == 0 &&
+                                dbl_cmp(dmax, rv.dmax) == 0 &&
                                 sssu_hist_size == rv.sssu_hist_size &&
                                 smooth_side == rv.smooth_side &&
                                 estimate_E == rv.estimate_E &&

-- 
Alioth's /git/debian-med/git-commit-notice on /srv/git.debian.org/git/debian-med/aghermann.git



More information about the debian-med-commit mailing list