summaryrefslogtreecommitdiffstats
path: root/dive.h
diff options
context:
space:
mode:
authorGravatar Robert Helling <helling@atdotde.de>2014-01-22 09:04:04 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-01-22 08:30:08 -0800
commitb6a30dcdd3225e67e7eed7ead68c919c36243ffc (patch)
tree58111b787cb2eb8a3a4bce10dd662b0b0b401510 /dive.h
parenta566dbdaf76f6e1e7df35d75dc21b39b7968a9da (diff)
downloadsubsurface-b6a30dcdd3225e67e7eed7ead68c919c36243ffc.tar.gz
Improve floating point equality test
This allows for a relative error rather than an absolute (which would set an artificial scale). This basically says “we trust our data (which comes from the dive computer’s measurement after all) to a certain number of significant digits” rather than “we will never encounter anything smaller than 1 / a million but not zero” which would be awfully unit dependent. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'dive.h')
-rw-r--r--dive.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/dive.h b/dive.h
index c56d569ad..408bb99c5 100644
--- a/dive.h
+++ b/dive.h
@@ -20,7 +20,7 @@
(void) (&_max1 == &_max2); \
_max1 > _max2 ? _max1 : _max2; })
-#define IS_FP_SAME(_a,_b) (abs((_a) - (_b)) < 0.000001)
+#define IS_FP_SAME(_a,_b) (abs((_a) - (_b)) < 0.000001 * MAX(abs(_a), abs(_b)))
#include <libxml/tree.h>
#include <libxslt/transform.h>