From 79198eda881f29346fdf74f2c0d907000efde2b4 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Tue, 24 Jun 2014 11:45:20 +0000 Subject: [PATCH] trying to fix isnan/isinf on msvc --- Numeric/MetricBasis.cpp | 2 +- Numeric/MetricBasis.h | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Numeric/MetricBasis.cpp b/Numeric/MetricBasis.cpp index a5a9a5c7a8..d07f1639bf 100644 --- a/Numeric/MetricBasis.cpp +++ b/Numeric/MetricBasis.cpp @@ -1133,7 +1133,7 @@ double MetricBasis::_subdivideForRmin( md = subdomains.top(); double ans = md->_RminBez; - if (std::isnan(ans)) Msg::Error("ISNAN %d", subdomains.size()); + if (_chknumber(ans)) Msg::Error("ISNAN %d", subdomains.size()); while (subdomains.size()) { md = subdomains.top(); diff --git a/Numeric/MetricBasis.h b/Numeric/MetricBasis.h index 87ad416aba..4b2bb9d861 100644 --- a/Numeric/MetricBasis.h +++ b/Numeric/MetricBasis.h @@ -113,7 +113,13 @@ private: const double phi = std::acos(x) / 3; return (a + 2*std::cos(phi + 2*M_PI/3)) / (a + 2*std::cos(phi)); } - bool _chknumber(double val) const {return std::isnan(val) || std::isinf(val);} + bool _chknumber(double val) const { +#if defined(_MSC_VER) + return _isnan(val) || _isinf(val); +#else + return std::isnan(val) || std::isinf(val); +#endif + } bool _chka(double a) const {return _chknumber(a) || a < 1;} bool _chkK(double K) const {return _chknumber(K) || K < 0;} int _chkaK(double a, double K) const { -- GitLab