From 36a0b8e3dd1c325c201c4cd5a094df8a3588fa9a Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Wed, 7 May 2003 15:49:51 -0500 Subject: [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: --- perform/benchpar.c | 5 ++++- 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 #include #include +#include + #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 #include #include +#include #include #include #include @@ -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 -- cgit v0.12