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, \ public ETBase > \ { \ + typedef P_numtype T_numtype;\ public: \ name ## _et(const Array& A) \ : StencilExpr(A) \ @@ -129,6 +130,7 @@ TinyVector >, \ public ETBase > \ { \ + typedef P_numtype T_numtype;\ public: \ typedef TinyVector result; \ name ## _et(const Array& A) \ @@ -159,6 +161,7 @@ class name ## _et : public StencilExpr, \ public ETBase > \ { \ + typedef P_numtype T_numtype;\ public: \ name ## _et(const Array& A, int dim) \ : StencilExpr(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 inline _bz_ArrayExpr<_bz_ArrayExprUnaryOp, 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 inline _bz_VecExpr<_bz_VecExprUnaryOp, 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?" ./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 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 + +#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; +}