[svn-r17467] " Use strict equality as default
" Use "--use-system-epsilon" for system EPSILON " Use "-p" or "-d" for whatever user's choice of epsilon " Use "-p 0" or "-d 0" for strict equality (same as default)
This commit is contained in:
@@ -74,9 +74,16 @@
|
||||
#define ULLI_FORMAT_P_NOTCOMP "%-15"H5_PRINTF_LL_WIDTH"u %-15"H5_PRINTF_LL_WIDTH"u %-15"H5_PRINTF_LL_WIDTH"d not comparable\n"
|
||||
|
||||
|
||||
/* values for FLT_EPSILON same as C Reference manual */
|
||||
#define H5DIFF_FLT_EPSILON .00001
|
||||
#define H5DIFF_DBL_EPSILON .000000001
|
||||
/* if system EPSILON is defined, use the system EPSILON; otherwise, use
|
||||
constants that are close to most EPSILON values */
|
||||
|
||||
#ifndef FLT_EPSILON
|
||||
#define FLT_EPSILON 1.19209E-07
|
||||
#endif
|
||||
|
||||
#ifndef DBL_EPSILON
|
||||
#define DBL_EPSILON 2.22045E-16
|
||||
#endif
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -5502,10 +5509,6 @@ error:
|
||||
static
|
||||
hbool_t equal_double(double value, double expected, diff_opt_t *options)
|
||||
{
|
||||
int both_zero;
|
||||
int is_zero;
|
||||
|
||||
|
||||
if ( options->do_nans )
|
||||
{
|
||||
|
||||
@@ -5535,22 +5538,15 @@ hbool_t equal_double(double value, double expected, diff_opt_t *options)
|
||||
}
|
||||
}
|
||||
|
||||
BOTH_ZERO(value,expected)
|
||||
if (both_zero)
|
||||
return TRUE;
|
||||
|
||||
IS_ZERO(expected)
|
||||
if (is_zero)
|
||||
return(equal_double(expected,value,options));
|
||||
|
||||
if (value == expected)
|
||||
return TRUE;
|
||||
|
||||
if ( ABS( (value-expected) / expected) < H5DIFF_DBL_EPSILON)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
if (options->use_system_epsilon) {
|
||||
if ( ABS( (value-expected) ) < DBL_EPSILON)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -5566,10 +5562,6 @@ hbool_t equal_double(double value, double expected, diff_opt_t *options)
|
||||
static
|
||||
hbool_t equal_ldouble(long double value, long double expected, diff_opt_t *options)
|
||||
{
|
||||
int both_zero;
|
||||
int is_zero;
|
||||
|
||||
|
||||
if ( options->do_nans )
|
||||
{
|
||||
|
||||
@@ -5599,22 +5591,15 @@ hbool_t equal_ldouble(long double value, long double expected, diff_opt_t *optio
|
||||
}
|
||||
}
|
||||
|
||||
BOTH_ZERO(value,expected)
|
||||
if (both_zero)
|
||||
return TRUE;
|
||||
|
||||
IS_ZERO(expected)
|
||||
if (is_zero)
|
||||
return(equal_ldouble(expected,value,options));
|
||||
|
||||
if (value == expected)
|
||||
return TRUE;
|
||||
|
||||
if ( ABS( (value-expected) / expected) < H5DIFF_DBL_EPSILON)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
if (options->use_system_epsilon) {
|
||||
if ( ABS( (value-expected) / expected) < DBL_EPSILON)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#endif /* #if H5_SIZEOF_LONG_DOUBLE !=0 */
|
||||
@@ -5634,9 +5619,6 @@ hbool_t equal_ldouble(long double value, long double expected, diff_opt_t *optio
|
||||
static
|
||||
hbool_t equal_float(float value, float expected, diff_opt_t *options)
|
||||
{
|
||||
int both_zero;
|
||||
int is_zero;
|
||||
|
||||
if ( options->do_nans )
|
||||
{
|
||||
|
||||
@@ -5666,21 +5648,15 @@ hbool_t equal_float(float value, float expected, diff_opt_t *options)
|
||||
}
|
||||
}
|
||||
|
||||
BOTH_ZERO(value,expected)
|
||||
if (both_zero)
|
||||
return TRUE;
|
||||
|
||||
IS_ZERO(expected)
|
||||
if (is_zero)
|
||||
return(equal_float(expected,value,options));
|
||||
|
||||
if (value == expected)
|
||||
return TRUE;
|
||||
|
||||
if ( ABS( (value-expected) / expected) < H5DIFF_FLT_EPSILON)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
if (options->use_system_epsilon) {
|
||||
if ( ABS( (value-expected) / expected) < FLT_EPSILON)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user