diff options
| author | 2014-01-22 09:04:04 +0100 | |
|---|---|---|
| committer | 2014-01-22 08:30:08 -0800 | |
| commit | b6a30dcdd3225e67e7eed7ead68c919c36243ffc (patch) | |
| tree | 58111b787cb2eb8a3a4bce10dd662b0b0b401510 | |
| parent | a566dbdaf76f6e1e7df35d75dc21b39b7968a9da (diff) | |
| download | subsurface-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>
| -rw-r--r-- | dive.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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> |