changeset 21528:ffbd3e86e0be

Faddeeva.cc: Use liboctave definitions for inf, nan, isinf, and isnan * Faddeeva.cc: Include "lo-ieee.h". Use Octave internal definitions for inf, nan, isinf, and isnan to for consistency and to fix ambiguity errors. Don't use "using namespace std".
author Mike Miller <mtmiller@octave.org>
date Tue, 22 Mar 2016 23:14:20 -0700
parents ab8760b1245d
children 8d894e463de6
files liboctave/cruft/Faddeeva/Faddeeva.cc
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/cruft/Faddeeva/Faddeeva.cc	Tue Mar 22 15:17:18 2016 -0700
+++ b/liboctave/cruft/Faddeeva/Faddeeva.cc	Tue Mar 22 23:14:20 2016 -0700
@@ -157,18 +157,19 @@
 
 #ifdef __cplusplus
 
+#  include "lo-ieee.h"
+
 #  include "Faddeeva.hh"
 
 #  include <cfloat>
 #  include <cmath>
 #  include <limits>
-using namespace std;
 
 // use std::numeric_limits, since 1./0. and 0./0. fail with some compilers (MS)
-#  define Inf numeric_limits<double>::infinity()
-#  define NaN numeric_limits<double>::quiet_NaN()
+#  define Inf octave_Inf
+#  define NaN octave_NaN
 
-typedef complex<double> cmplx;
+typedef std::complex<double> cmplx;
 
 // Use C-like complex syntax, since the C syntax is more restrictive
 #  define cexp(z) exp(z)
@@ -182,7 +183,10 @@
 #  define FADDEEVA_RE(name) Faddeeva::name
 
 // isnan/isinf were introduced in C++11
-#  if (__cplusplus < 201103L) && (!defined(HAVE_ISNAN) || !defined(HAVE_ISINF))
+#  if defined (lo_ieee_isnan) && defined (lo_ieee_isinf)
+#    define isnan lo_ieee_isnan
+#    define isinf lo_ieee_isinf
+#  elif (__cplusplus < 201103L) && (!defined(HAVE_ISNAN) || !defined(HAVE_ISINF))
 static inline bool my_isnan(double x) { return x != x; }
 #    define isnan my_isnan
 static inline bool my_isinf(double x) { return 1/x == 0.; }