summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2003-12-31 20:36:37 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2003-12-31 20:36:37 (GMT)
commit4da7b1ee9b462925818cf704c89a72fef5f55e4d (patch)
treee9f04f8824aa714fb2346ed540a4b291ce2bb0c1 /src
parentb0b020d422b493228c00449391552bdfc50a33c2 (diff)
downloadhdf5-4da7b1ee9b462925818cf704c89a72fef5f55e4d.zip
hdf5-4da7b1ee9b462925818cf704c89a72fef5f55e4d.tar.gz
hdf5-4da7b1ee9b462925818cf704c89a72fef5f55e4d.tar.bz2
[svn-r8009] Purpose:
Bug fix Description: Add special-case handling to floating-point conversion tests to avoid problems with denormalized values on Cray T3E & T90 platforms. (Still not working on Cray SV1, but at least it's closer). Solution: Detect denormalized values and don't try to operate on them on the Crays. Platforms tested: FreeBSD 4.9 (sleipnir) Cray T3E (hubble.cray.com) Cray T90 (gypsy.cray.com)
Diffstat (limited to 'src')
-rw-r--r--src/H5config.h.in10
-rw-r--r--src/H5private.h11
2 files changed, 21 insertions, 0 deletions
diff --git a/src/H5config.h.in b/src/H5config.h.in
index f2348c4..3a2924c 100644
--- a/src/H5config.h.in
+++ b/src/H5config.h.in
@@ -1,5 +1,9 @@
/* src/H5config.h.in. Generated from configure.in by autoheader. */
+/* Define if your system can handle converting denormalized floating-point
+ values. */
+#undef CONVERT_DENORMAL_FLOAT
+
/* Define if `dev_t' is a scalar */
#undef DEV_T_IS_SCALAR
@@ -39,6 +43,12 @@
/* Define if we want flexible parallel HDF5 support */
#undef HAVE_FPHDF5
+/* Define to 1 if you have the `frexpf' function. */
+#undef HAVE_FREXPF
+
+/* Define to 1 if you have the `frexpl' function. */
+#undef HAVE_FREXPL
+
/* Define to 1 if you have the `fseek64' function. */
#undef HAVE_FSEEK64
diff --git a/src/H5private.h b/src/H5private.h
index 863973e..9f22433 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -605,6 +605,17 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...);
#define HDfree(M) free(M)
#define HDfreopen(S,M,F) freopen(S,M,F)
#define HDfrexp(X,N) frexp(X,N)
+/* Check for Cray-specific 'frexpf()' and 'frexpl()' routines */
+#ifdef H5_HAVE_FREXPF
+#define HDfrexpf(X,N) frexpf(X,N)
+#else /* H5_HAVE_FREXPF */
+#define HDfrexpf(X,N) frexp(X,N)
+#endif /* H5_HAVE_FREXPF */
+#ifdef H5_HAVE_FREXPL
+#define HDfrexpl(X,N) frexpl(X,N)
+#else /* H5_HAVE_FREXPL */
+#define HDfrexpl(X,N) frexp(X,N)
+#endif /* H5_HAVE_FREXPL */
/* fscanf() variable arguments */
#define HDfseek(F,O,W) fseek(F,O,W)
#define HDfsetpos(F,P) fsetpos(F,P)