diff options
author | Bill Wendling <wendling@ncsa.uiuc.edu> | 2003-05-07 20:49:51 (GMT) |
---|---|---|
committer | Bill Wendling <wendling@ncsa.uiuc.edu> | 2003-05-07 20:49:51 (GMT) |
commit | 36a0b8e3dd1c325c201c4cd5a094df8a3588fa9a (patch) | |
tree | 3b96461c83ae8daac9e59727b2f44b442372e2f0 | |
parent | 96061d1be75049dd490f554405a60942c06f79dd (diff) | |
download | hdf5-36a0b8e3dd1c325c201c4cd5a094df8a3588fa9a.zip hdf5-36a0b8e3dd1c325c201c4cd5a094df8a3588fa9a.tar.gz hdf5-36a0b8e3dd1c325c201c4cd5a094df8a3588fa9a.tar.bz2 |
[svn-r6822] Purpose:
Code Improvements/Bug Fixes
Description:
Comparison of equality of a double/float variable to 0.0 is not
guaranteed to work and is bad practice.
Solution:
Test that the absolute value of the variable is < a very small
positive number.
Platforms tested:
Modi4 (Parallel & Fortran)
Verbena (C++ & Fortran)
Arabica (Fortran)
Misc. update:
-rw-r--r-- | perform/benchpar.c | 5 | ||||
-rw-r--r-- | perform/zip_perf.c | 6 |
2 files changed, 6 insertions, 5 deletions
diff --git a/perform/benchpar.c b/perform/benchpar.c index 5253263..12dd8e0 100644 --- a/perform/benchpar.c +++ b/perform/benchpar.c @@ -1,6 +1,8 @@ #include <unistd.h> #include <stdlib.h> #include <assert.h> +#include <math.h> + #include "hdf5.h" /* Local macros */ @@ -14,8 +16,9 @@ #define ONE_KB 1024 #define ONE_MB (ONE_KB * ONE_KB) #define ONE_GB (ONE_MB * ONE_KB) + /* report 0.0 in case t is zero too */ -#define MB_PER_SEC(bytes,t) (((t)==0.0) ? 0.0 : ((((double)bytes) / ONE_MB) / (t))) +#define MB_PER_SEC(bytes,t) ((fabs(t)<0.0000000001) ? 0.0 : ((((double)bytes) / ONE_MB) / (t))) /* Control default behavior (with no command line arguments) */ #define DEFAULT_RANK 3 diff --git a/perform/zip_perf.c b/perform/zip_perf.c index 0769676..00b270c 100644 --- a/perform/zip_perf.c +++ b/perform/zip_perf.c @@ -28,6 +28,7 @@ #include <string.h> #include <errno.h> #include <fcntl.h> +#include <math.h> #include <sys/time.h> #include <sys/uio.h> #include <sys/types.h> @@ -78,10 +79,7 @@ #define MICROSECOND 1000000.0 /* report 0.0 in case t is zero too */ -#define MB_PER_SEC(bytes,t) (((t)==0.0) ? 0.0 : ((((double)bytes) / ONE_MB) / (t))) - -/* report 0.0 in case t is zero too */ -#define MB_PER_SEC(bytes,t) (((t)==0.0) ? 0.0 : ((((double)bytes) / ONE_MB) / (t))) +#define MB_PER_SEC(bytes,t) ((fabs(t)<0.0000000001) ? 0.0 : ((((double)bytes) / ONE_MB) / (t))) #ifndef TRUE #define TRUE 1 |