diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2009-08-20 18:40:50 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2009-08-20 18:40:50 (GMT) |
commit | 0b3b4351e7841f00cdcda837fc2960a37a923d69 (patch) | |
tree | b2b34f09112d63444133446152742e321e895beb /src/H5Tpkg.h | |
parent | f8c63dd9dcb4459dd8d57a2b2543e2e99f6d4a35 (diff) | |
download | hdf5-0b3b4351e7841f00cdcda837fc2960a37a923d69.zip hdf5-0b3b4351e7841f00cdcda837fc2960a37a923d69.tar.gz hdf5-0b3b4351e7841f00cdcda837fc2960a37a923d69.tar.bz2 |
[svn-r17392] I added a detection for the correctness of converting from unsigned long to float in the
configure.in. The Pathscale compiler on Sandia's Linux machine misinterprets the values of
unsigned long as negative during the conversion to float, when the first bit of unsigned long
is on.
Tested on jam. Need to test it on Sandia's machine.
Diffstat (limited to 'src/H5Tpkg.h')
-rw-r--r-- | src/H5Tpkg.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h index 7ef4b63..18bf7cf 100644 --- a/src/H5Tpkg.h +++ b/src/H5Tpkg.h @@ -133,10 +133,18 @@ #define H5T_CONV_INTERNAL_INTEGER_LDOUBLE 1 #endif -/* Define an internal macro for converting unsigned (long) long to floating numbers. +/* Define an internal macro for converting unsigned long to float. + * Pathscale compiler on Sandia's Linux machine has some problem. + * 64-bit Solaris does different rounding. */ +#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FLOAT_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ + (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_ULONG_FLT 1 +#endif + +/* Define an internal macro for converting unsigned (long) long to double. * 64-bit Solaris does different rounding. */ #if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_FP 1 +#define H5T_CONV_INTERNAL_ULONG_DBL 1 #endif /* Define an internal macro for converting unsigned long to long double. SGI compilers give some |