diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2003-11-24 16:49:27 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2003-11-24 16:49:27 (GMT) |
commit | 80c45ea54921218b63339fc9460b4f7a1d58c554 (patch) | |
tree | 5df409383fcbaffb81c20b5f6d1d44ae579e91ee /test | |
parent | 7d68090f0362cf562c497e8b4ee730a2ba634215 (diff) | |
download | hdf5-80c45ea54921218b63339fc9460b4f7a1d58c554.zip hdf5-80c45ea54921218b63339fc9460b4f7a1d58c554.tar.gz hdf5-80c45ea54921218b63339fc9460b4f7a1d58c554.tar.bz2 |
[svn-r7876] Purpose:
Omnibus floating-point bug fix changes
Description:
There are a number of problems in the floating-point conversion code that
were exposed by Ray's recent int<->float checkin:
- The 'my_isnan' code in test/dtypes.c was broken and would always return
true. The meant that the actual values in the float<->float conversion
tests were _never_ checked, hiding the other bugs included in this
checkin.
- A recent change I made to the type conversion code used "FLT_MIN" instead
of "-FLT_MAX" for the most negative 'float' value for the double->float
conversion, which meant that any the negative number that was converted
from a double to a float would have been mapped to zero, essentially.
- A change that Robb appeared to have made ~2.5 years ago to the "generic"
float->float conversion routine appears to be incorrect and I've backed
it out.
- Floating-point conversions on SGI's which converted denormalized values
would be mapped to zero instead of being propertly preserved in the new
type. This was addressed by an SGI-specific system call to prevent the
behavior.
Solution:
Described above, generally.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Misc. update:
release_docs/RELEASE update forthcoming...
Diffstat (limited to 'test')
-rw-r--r-- | test/dtypes.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/test/dtypes.c b/test/dtypes.c index 67f9f84..96798e3 100644 --- a/test/dtypes.c +++ b/test/dtypes.c @@ -3894,9 +3894,8 @@ my_isnan(flt_t type, void *val) } else { return 0; } - if (!strstr(s, "NaN") || !strstr(s, "NAN") || !strstr(s, "nan")) { + if (strstr(s, "NaN") || strstr(s, "NAN") || strstr(s, "nan")) retval = 1; - } } return retval; |