diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2005-01-06 18:17:59 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2005-01-06 18:17:59 (GMT) |
commit | 82f6a72ec92fa12371c386c70c607dd8957ce8b6 (patch) | |
tree | 41e4cf0b57c5a123ded9dbe4c3f951b4ae818f4a /configure | |
parent | 03edfaa6e90c150e017b2e8d6a6c0772b2a2650c (diff) | |
download | hdf5-82f6a72ec92fa12371c386c70c607dd8957ce8b6.zip hdf5-82f6a72ec92fa12371c386c70c607dd8957ce8b6.tar.gz hdf5-82f6a72ec92fa12371c386c70c607dd8957ce8b6.tar.bz2 |
[svn-r9755] Purpose: New feature
Description: Start to support software conversion between long double and
all integers.
Solution: No major changes to the algorithm. Changes to configure is to
exclude SGI for long double to integers test because there're too many problems
in their compiler.
Platforms tested: h5committest, modi4, fuss, Teragrid, arabica
Misc. update: RELEASE.txt
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 36 |
1 files changed, 30 insertions, 6 deletions
@@ -33538,6 +33538,28 @@ else echo "${ECHO_T}no" >&6 fi +echo "$as_me:$LINENO: checking if accurately converting between long double and integers works" >&5 +echo $ECHO_N "checking if accurately converting between long double and integers works... $ECHO_C" >&6 +if test "${hdf5_cv_sw_ldouble_to_int_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + hdf5_cv_sw_ldouble_to_int_works=yes +fi + + +if test ${hdf5_cv_sw_ldouble_to_int_works} = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define SW_LDOUBLE_TO_INT_WORKS 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + echo "$as_me:$LINENO: checking if accurately converting unsigned long long to floating-point values works" >&5 echo $ECHO_N "checking if accurately converting unsigned long long to floating-point values works... $ECHO_C" >&6 @@ -33748,18 +33770,20 @@ else { float f = 9701917572145405952.00f; double d1 = 9701917572145405952.00L; - double d2 = 2e40L; + long double d2 = 9701917572145405952.00L; + double d3 = 2e40L; unsigned long long l1 = (unsigned long long)f; unsigned long long l2 = (unsigned long long)d1; - unsigned long long l3; - unsigned long long l4 = 0x7fffffffffffffffLLU; + unsigned long long l3 = (unsigned long long)d2; + unsigned long long l4; + unsigned long long l5 = 0x7fffffffffffffffLLU; int ret = 0; - if(l1 <= l4 || l2 <= l4) + if(l1 <= l5 || l2 <= l5 || l3 <= l5) ret = 1; - l3 = (unsigned long long)d2; - if(l3 <= l4) + l4 = (unsigned long long)d3; + if(l4 <= l5) ret = 1; done: |