diff -r -U 3 blitz-20001213/blitz/array/et.h wkspaces/blitz-20001213/blitz/array/et.h
--- blitz-20001213/blitz/array/et.h	Mon Jun 19 07:26:14 2000
+++ wkspaces/blitz-20001213/blitz/array/et.h	Thu Oct 25 15:44:12 2001
@@ -222,7 +222,9 @@
 BZ_DECLARE_ARRAY_ET_UOP(erf,    _bz_erf)
 BZ_DECLARE_ARRAY_ET_UOP(erfc,   _bz_erfc)
 // BZ_DECLARE_ARRAY_ET_UOP(finite, _bz_finite)
+#ifdef BZ_HAVE_ISNAN_AND_ISNOT_MACRO
 BZ_DECLARE_ARRAY_ET_UOP(isnan,  _bz_isnan)
+#endif
 BZ_DECLARE_ARRAY_ET_UOP(j0,     _bz_j0)
 BZ_DECLARE_ARRAY_ET_UOP(j1,     _bz_j1)
 BZ_DECLARE_ARRAY_ET_UOP(lgamma, _bz_lgamma)
diff -r -U 3 blitz-20001213/blitz/array/stencil-et.h wkspaces/blitz-20001213/blitz/array/stencil-et.h
--- blitz-20001213/blitz/array/stencil-et.h	Mon Jun 19 07:26:15 2000
+++ wkspaces/blitz-20001213/blitz/array/stencil-et.h	Thu Oct 25 15:20:31 2001
@@ -99,6 +99,7 @@
 class name ## _et : public StencilExpr<P_numtype,N_rank,result>, \
   public ETBase<name ## _et<P_numtype,N_rank> > \
  { \
+    typedef P_numtype T_numtype;\
 public: \
     name ## _et(const Array<T_numtype,N_rank>& A) \
         : StencilExpr<T_numtype,N_rank,result>(A) \
@@ -129,6 +130,7 @@
     TinyVector<P_numtype,rank> >, \
   public ETBase<name ## _et<P_numtype,N_rank> > \
  { \
+    typedef P_numtype T_numtype;\
 public: \
     typedef TinyVector<T_numtype,rank> result; \
     name ## _et(const Array<T_numtype,N_rank>& A) \
@@ -159,6 +161,7 @@
 class name ## _et : public StencilExpr<P_numtype,N_rank,P_numtype>, \
   public ETBase<name ## _et<P_numtype,N_rank> > \
  { \
+    typedef P_numtype T_numtype;\
 public: \
     name ## _et(const Array<T_numtype,N_rank>& A, int dim) \
         : StencilExpr<T_numtype,N_rank,P_numtype>(A), dim_(dim) \
diff -r -U 3 blitz-20001213/blitz/array/uops.cc wkspaces/blitz-20001213/blitz/array/uops.cc
--- blitz-20001213/blitz/array/uops.cc	Mon Jun 19 07:26:14 2000
+++ wkspaces/blitz-20001213/blitz/array/uops.cc	Thu Oct 25 15:43:21 2001
@@ -2568,7 +2568,7 @@
  * isnan
  ****************************************************************************/
 
-#ifdef BZ_HAVE_IEEE_MATH
+#ifdef BZ_HAVE_ISNAN_AND_ISNOT_MACRO
 template<class T_numtype1, int N_rank1>
 inline
 _bz_ArrayExpr<_bz_ArrayExprUnaryOp<ArrayIterator<T_numtype1, N_rank1>,
diff -r -U 3 blitz-20001213/blitz/vecuops.cc wkspaces/blitz-20001213/blitz/vecuops.cc
--- blitz-20001213/blitz/vecuops.cc	Mon Jun 19 07:26:10 2000
+++ wkspaces/blitz-20001213/blitz/vecuops.cc	Thu Oct 25 15:42:39 2001
@@ -1295,7 +1295,7 @@
  * isnan
  ****************************************************************************/
 
-#ifdef BZ_HAVE_IEEE_MATH
+#ifdef BZ_HAVE_ISNAN_AND_ISNOT_MACRO
 template<class P_numtype1>
 inline
 _bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
diff -r -U 3 --unidirectional-new-file blitz-20001213/compiler/bzconfig wkspaces/blitz-20001213/compiler/bzconfig
--- blitz-20001213/compiler/bzconfig	Mon Jun 19 07:26:15 2000
+++ wkspaces/blitz-20001213/compiler/bzconfig	Thu Oct 25 15:39:09 2001
@@ -361,6 +361,7 @@
 ./bztest BZ_HAVE_VALARRAY valarray.cpp "Does it have valarray<T>?"
 ./bztest BZ_HAVE_COMPLEX_MATH compmath.cpp "Complex math functions?"
 ./bztest BZ_HAVE_IEEE_MATH ieeemath.cpp "IEEE Math library?"
+./bztest BZ_HAVE_ISNAN_AND_ISNOT_MACRO isnan.cpp "isnan exists and isn't a macro?"
 ./bztest BZ_HAVE_SYSTEM_V_MATH sysvmath.cpp "System V Math library?"
 ./bztest BZ_MATH_FN_IN_NAMESPACE_STD mathscop.cpp "Are C math functions in <cmath> and std::?"
 ./bztest BZ_COMPLEX_MATH_IN_NAMESPACE_STD cmthscop.cpp "Are complex math functions in std::?"
diff -r -U 3 --unidirectional-new-file blitz-20001213/compiler/ieeemath.cpp wkspaces/blitz-20001213/compiler/ieeemath.cpp
--- blitz-20001213/compiler/ieeemath.cpp	Mon Jun 19 07:26:16 2000
+++ wkspaces/blitz-20001213/compiler/ieeemath.cpp	Thu Oct 25 15:37:16 2001
@@ -31,7 +31,7 @@
     erf(x);
     erfc(x);
     // finite(x);
-    isnan(x);
+    //isnan(x);
     j0(x);
     j1(x);
     lgamma(x);
diff -r -U 3 --unidirectional-new-file blitz-20001213/compiler/isnan.cpp wkspaces/blitz-20001213/compiler/isnan.cpp
--- blitz-20001213/compiler/isnan.cpp	Wed Dec 31 19:00:00 1969
+++ wkspaces/blitz-20001213/compiler/isnan.cpp	Thu Oct 25 15:21:24 2001
@@ -0,0 +1,33 @@
+#if !defined(__GNUC__)
+ #ifndef _ALL_SOURCE
+  #define _ALL_SOURCE
+ #endif
+
+ #ifndef _XOPEN_SOURCE
+  #define _XOPEN_SOURCE
+ #endif
+
+ #ifndef _XOPEN_SOURCE_EXTENDED
+  #define _XOPEN_SOURCE_EXTENDED 1
+ #endif
+#endif
+
+#include <math.h>
+
+#if defined isnan
+# error "isnan is a macro"
+#else
+namespace foo {
+  double isnan(double a) {
+    return ::isnan(a);
+  }
+#endif
+
+}
+
+int main() {
+
+  double bar = foo::isnan(1.0);
+
+  return 0;
+}


syntax highlighted by Code2HTML, v. 0.9.1