From f40285c2a29b8057a642bc43fb286f549f8424ea Mon Sep 17 00:00:00 2001 From: dwarning Date: Thu, 4 Apr 2024 16:03:53 +0200 Subject: [PATCH 1/2] format --- src/spicelib/analysis/ninteg.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/spicelib/analysis/ninteg.c b/src/spicelib/analysis/ninteg.c index ec482ac20..dd347e2da 100644 --- a/src/spicelib/analysis/ninteg.c +++ b/src/spicelib/analysis/ninteg.c @@ -31,15 +31,15 @@ Nintegrate (double noizDens, double lnNdens, double lnNlstDens, Ndata *data) exponent = (lnNdens - lnNlstDens) / data->delLnFreq; if ( fabs(exponent) < N_INTFTHRESH ) { - return (noizDens * data->delFreq); + return (noizDens * data->delFreq); } else { - a = limexp(lnNdens - exponent*data->lnFreq); - exponent += 1.0; - if (fabs(exponent) < N_INTUSELOG) { - return (a * (data->lnFreq - data->lnLastFreq)); + a = limexp(lnNdens - exponent*data->lnFreq); + exponent += 1.0; + if (fabs(exponent) < N_INTUSELOG) { + return (a * (data->lnFreq - data->lnLastFreq)); } else { - return (a * ((exp(exponent * data->lnFreq) - exp(exponent * data->lnLastFreq)) / - exponent)); + return (a * ((exp(exponent * data->lnFreq) - exp(exponent * data->lnLastFreq)) / + exponent)); } } } From 22869b6e3922940c845443e2c93b6e6fc03d4f84 Mon Sep 17 00:00:00 2001 From: dwarning Date: Thu, 4 Apr 2024 16:19:35 +0200 Subject: [PATCH 2/2] use limexp to prevent NaN with extreme exponents --- src/spicelib/analysis/ninteg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spicelib/analysis/ninteg.c b/src/spicelib/analysis/ninteg.c index dd347e2da..43c5b6732 100644 --- a/src/spicelib/analysis/ninteg.c +++ b/src/spicelib/analysis/ninteg.c @@ -38,7 +38,7 @@ Nintegrate (double noizDens, double lnNdens, double lnNlstDens, Ndata *data) if (fabs(exponent) < N_INTUSELOG) { return (a * (data->lnFreq - data->lnLastFreq)); } else { - return (a * ((exp(exponent * data->lnFreq) - exp(exponent * data->lnLastFreq)) / + return (a * ((limexp(exponent * data->lnFreq) - limexp(exponent * data->lnLastFreq)) / exponent)); } }