From a18ac9c47449efce84c3c37576a197fb559fc99c Mon Sep 17 00:00:00 2001 From: h_vogt Date: Tue, 22 Dec 2015 00:02:45 +0100 Subject: [PATCH] include/ngspice/cm.h, xspice, introduce NAN for visual studio --- src/include/ngspice/cm.h | 11 +++++++++++ src/xspice/icm/xtradev/core/cfunc.mod | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/include/ngspice/cm.h b/src/include/ngspice/cm.h index 281880fcb..f1bd493c2 100644 --- a/src/include/ngspice/cm.h +++ b/src/include/ngspice/cm.h @@ -45,5 +45,16 @@ NON-STANDARD FEATURES #include "ngspice/cmproto.h" #include "ngspice/mifcmdat.h" +#if defined (_MSC_VER) +#ifndef NAN + static const __int64 global_nan = 0x7ff8000000000000i64; + #define NAN (*(const double *) &global_nan) +#endif +#endif + +#if !defined(NAN) +#define NAN (0.0/0.0) +#endif + #endif diff --git a/src/xspice/icm/xtradev/core/cfunc.mod b/src/xspice/icm/xtradev/core/cfunc.mod index d88f691f9..86c2786c7 100644 --- a/src/xspice/icm/xtradev/core/cfunc.mod +++ b/src/xspice/icm/xtradev/core/cfunc.mod @@ -294,8 +294,8 @@ cm_core(ARGS) /*** must determine position progressively & then ***/ /*** calculate required output. ***/ - dout_din = 0.0 / 0.0; - B_out = 0.0 / 0.0; + dout_din = NAN; + B_out = NAN; for (i = 1; i < size; i++) if (H_input < (H[i].rvalue + H[i+1].rvalue) / 2.0) {