summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2003-12-31 20:36:44 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2003-12-31 20:36:44 (GMT)
commita550ccd1d2832842d89df32e7c30aac5fc8bfde3 (patch)
treea8ef19e70a8597dcafc65873022f6fed052ee292 /src
parent502b49b2b91d25e16668d8eee1610f7a2fe00fc7 (diff)
downloadhdf5-a550ccd1d2832842d89df32e7c30aac5fc8bfde3.zip
hdf5-a550ccd1d2832842d89df32e7c30aac5fc8bfde3.tar.gz
hdf5-a550ccd1d2832842d89df32e7c30aac5fc8bfde3.tar.bz2
[svn-r8010] 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 366ba89..6a0c8dd 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
@@ -36,6 +40,12 @@
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
+/* 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 b074765..1d3e0db 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -600,6 +600,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)