From 9c38fa3e320e7adcefa8c6a06a740b868e014e6b Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Sat, 17 Apr 2004 12:16:15 -0500 Subject: [svn-r8369] Purpose: Bug fix. Description: Not all machines (like Sun and AIX) support fabsl() and fabsf() used in test/dtypes.c. Changed the coding to use macro names HDfabsl and HDfabsf. Also set the two macros to use ABS for now so that they will work for all machines. (need more portable fixes which would involve configure.) Platforms tested: h5committested. (also tested in LANL QSC and Theta). --- src/H5private.h | 2 ++ test/dtypes.c | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/H5private.h b/src/H5private.h index be2c668..c37decd 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -578,6 +578,8 @@ H5_DLL void H5_bandwidth(char *buf/*out*/, double nbytes, double nseconds); #endif /* __MWERKS __ */ #define HDexp(X) exp(X) #define HDfabs(X) fabs(X) +#define HDfabsf(X) ABS(X) +#define HDfabsl(X) ABS(X) #define HDfclose(F) fclose(F) /* fcntl() variable arguments */ #define HDfdopen(N,S) fdopen(N,S) diff --git a/test/dtypes.c b/test/dtypes.c index 95e82aa..e6afea8 100644 --- a/test/dtypes.c +++ b/test/dtypes.c @@ -4149,7 +4149,7 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst) if (FLT_FLOAT==dst_type) { hw_f = (float)(*((double*)aligned)); hw = (unsigned char*)&hw_f; - underflow = fabs(*((double*)aligned)) < FLT_MIN; + underflow = HDfabs(*((double*)aligned)) < FLT_MIN; } else if (FLT_DOUBLE==dst_type) { hw_d = *((double*)aligned); hw = (unsigned char*)&hw_d; @@ -4166,11 +4166,11 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst) if (FLT_FLOAT==dst_type) { hw_f = *((long double*)aligned); hw = (unsigned char*)&hw_f; - underflow = fabsl(*((long double*)aligned)) < FLT_MIN; + underflow = HDfabsl(*((long double*)aligned)) < FLT_MIN; } else if (FLT_DOUBLE==dst_type) { hw_d = *((long double*)aligned); hw = (unsigned char*)&hw_d; - underflow = fabsl(*((long double*)aligned)) < DBL_MIN; + underflow = HDfabsl(*((long double*)aligned)) < DBL_MIN; } else { hw_ld = *((long double*)aligned); hw = (unsigned char*)&hw_ld; @@ -4234,7 +4234,7 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst) float x; HDmemcpy(&x, &buf[j*dst_size], sizeof(float)); if (underflow && - fabsf(x) <= FLT_MIN && fabsf(hw_f) <= FLT_MIN) + HDfabsf(x) <= FLT_MIN && HDfabsf(hw_f) <= FLT_MIN) continue; /* all underflowed, no error */ check_mant[0] = HDfrexpf(x, check_expo+0); check_mant[1] = HDfrexpf(hw_f, check_expo+1); @@ -4242,7 +4242,7 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst) double x; HDmemcpy(&x, &buf[j*dst_size], sizeof(double)); if (underflow && - fabs(x) <= DBL_MIN && fabs(hw_d) <= DBL_MIN) + HDfabs(x) <= DBL_MIN && HDfabs(hw_d) <= DBL_MIN) continue; /* all underflowed, no error */ check_mant[0] = HDfrexp(x, check_expo+0); check_mant[1] = HDfrexp(hw_d, check_expo+1); -- cgit v0.12