From 457f87b08d0040e5f3028a5aad2c08ee8ae85866 Mon Sep 17 00:00:00 2001 From: barracuda156 Date: Thu, 21 Dec 2023 01:54:09 +0800 Subject: [PATCH] special: fix isnan/isinf --- scipy/special/Faddeeva.cc | 2 ++ scipy/special/_round.h | 4 ++++ scipy/special/boost_special_functions.h | 2 +- scipy/special/wright.cc | 2 ++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git scipy/special/Faddeeva.cc scipy/special/Faddeeva.cc index 370516dc0..8148fe60b 100644 --- scipy/special/Faddeeva.cc +++ scipy/special/Faddeeva.cc @@ -122,6 +122,8 @@ #include #define complex std::complex +#define isinf std::isinf +#define isnan std::isnan ///////////////////////////////////////////////////////////////////////// diff --git scipy/special/_round.h scipy/special/_round.h index e9457245b..1da578d66 100644 --- scipy/special/_round.h +++ scipy/special/_round.h @@ -8,6 +8,10 @@ #include #include "cephes/dd_idefs.h" +#if defined(__cplusplus) +#include +using std::isnan; +#endif double add_round_up(double a, double b) { diff --git scipy/special/boost_special_functions.h scipy/special/boost_special_functions.h index 69ea28562..f1378558f 100644 --- scipy/special/boost_special_functions.h +++ scipy/special/boost_special_functions.h @@ -190,7 +190,7 @@ Real hyp1f1_wrap(Real a, Real b, Real x) { Real y; - if (isnan(a) || isnan(b) || isnan(x)) { + if (std::isnan(a) || std::isnan(b) || std::isnan(x)) { return NAN; } if (b <= 0 && std::trunc(b) == b) { diff --git scipy/special/wright.cc scipy/special/wright.cc index 02161d41a..9d0614836 100644 --- scipy/special/wright.cc +++ scipy/special/wright.cc @@ -83,6 +83,8 @@ extern "C" { #include using std::complex; +using std::isinf; +using std::isnan; #define TWOITERTOL DBL_EPSILON