# HG changeset patch # User Mike Miller # Date 1458713660 25200 # Node ID ffbd3e86e0be6a2ff8808d124290d8566313fbf1 # Parent ab8760b1245dfebc543bb558d5673c21de7c74ac 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". diff -r ab8760b1245d -r ffbd3e86e0be liboctave/cruft/Faddeeva/Faddeeva.cc --- 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 # include # include -using namespace std; // use std::numeric_limits, since 1./0. and 0./0. fail with some compilers (MS) -# define Inf numeric_limits::infinity() -# define NaN numeric_limits::quiet_NaN() +# define Inf octave_Inf +# define NaN octave_NaN -typedef complex cmplx; +typedef std::complex 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.; }