summaryrefslogtreecommitdiffstats
path: root/libnetdata/statistical
diff options
context:
space:
mode:
authorCosta Tsaousis <costa@tsaousis.gr>2019-03-21 19:14:14 +0200
committerGitHub <noreply@github.com>2019-03-21 19:14:14 +0200
commit44955f720e1e70c9e1921616e29f6ae09de95f2c (patch)
treee7d4e7a7650c0dd11920ea58bdd912314e9d646b /libnetdata/statistical
parent56336f5acf3b6dd4d62224b839ed0f690573ce29 (diff)
fix incorrect use of isnormal() (#5677)
Diffstat (limited to 'libnetdata/statistical')
-rw-r--r--libnetdata/statistical/statistical.c16
-rw-r--r--libnetdata/statistical/statistical.h4
2 files changed, 8 insertions, 12 deletions
diff --git a/libnetdata/statistical/statistical.c b/libnetdata/statistical/statistical.c
index 15792fd15e..ba8f0c45a8 100644
--- a/libnetdata/statistical/statistical.c
+++ b/libnetdata/statistical/statistical.c
@@ -23,7 +23,7 @@ inline LONG_DOUBLE sum_and_count(const LONG_DOUBLE *series, size_t entries, size
size_t c = 0;
for(value = series; value < end ; value++) {
- if(isnormal(*value)) {
+ if(calculated_number_isnumber(*value)) {
sum += *value;
c++;
}
@@ -62,7 +62,7 @@ LONG_DOUBLE moving_average(const LONG_DOUBLE *series, size_t entries, size_t per
for(i = 0, count = 0; i < entries; i++) {
LONG_DOUBLE value = series[i];
- if(unlikely(!isnormal(value))) continue;
+ if(unlikely(!calculated_number_isnumber(value))) continue;
if(unlikely(count < period)) {
sum += value;
@@ -173,7 +173,7 @@ LONG_DOUBLE running_median_estimate(const LONG_DOUBLE *series, size_t entries) {
for(i = 0; i < entries ; i++) {
LONG_DOUBLE value = series[i];
- if(unlikely(!isnormal(value))) continue;
+ if(unlikely(!calculated_number_isnumber(value))) continue;
average += ( value - average ) * 0.1f; // rough running average.
median += copysignl( average * 0.01, value - median );
@@ -193,7 +193,7 @@ LONG_DOUBLE standard_deviation(const LONG_DOUBLE *series, size_t entries) {
LONG_DOUBLE sum;
for(count = 0, sum = 0, value = series ; value < end ;value++) {
- if(likely(isnormal(*value))) {
+ if(likely(calculated_number_isnumber(*value))) {
count++;
sum += *value;
}
@@ -205,7 +205,7 @@ LONG_DOUBLE standard_deviation(const LONG_DOUBLE *series, size_t entries) {
LONG_DOUBLE average = sum / (LONG_DOUBLE)count;
for(count = 0, sum = 0, value = series ; value < end ;value++) {
- if(isnormal(*value)) {
+ if(calculated_number_isnumber(*value)) {
count++;
sum += powl(*value - average, 2);
}
@@ -232,7 +232,7 @@ LONG_DOUBLE single_exponential_smoothing(const LONG_DOUBLE *series, size_t entri
LONG_DOUBLE level = (1.0 - alpha) * (*value);
for(value++ ; value < end; value++) {
- if(likely(isnormal(*value)))
+ if(likely(calculated_number_isnumber(*value)))
level = alpha * (*value) + (1.0 - alpha) * level;
}
@@ -250,7 +250,7 @@ LONG_DOUBLE single_exponential_smoothing_reverse(const LONG_DOUBLE *series, size
LONG_DOUBLE level = (1.0 - alpha) * (*value);
for(value++ ; value >= series; value--) {
- if(likely(isnormal(*value)))
+ if(likely(calculated_number_isnumber(*value)))
level = alpha * (*value) + (1.0 - alpha) * level;
}
@@ -281,7 +281,7 @@ LONG_DOUBLE double_exponential_smoothing(const LONG_DOUBLE *series, size_t entri
const LONG_DOUBLE *value = series;
for(value++ ; value >= series; value--) {
- if(likely(isnormal(*value))) {
+ if(likely(calculated_number_isnumber(*value))) {
LONG_DOUBLE last_level = level;
level = alpha * *value + (1.0 - alpha) * (level + trend);
diff --git a/libnetdata/statistical/statistical.h b/libnetdata/statistical/statistical.h
index 586c6b34aa..bbf241ff2f 100644
--- a/libnetdata/statistical/statistical.h
+++ b/libnetdata/statistical/statistical.h
@@ -5,10 +5,6 @@
#include "../libnetdata.h"
-#ifndef isnormal
-#define isnormal(x) (fpclassify(x) == FP_NORMAL)
-#endif
-
extern void log_series_to_stderr(LONG_DOUBLE *series, size_t entries, calculated_number result, const char *msg);
extern LONG_DOUBLE average(const LONG_DOUBLE *series, size_t entries);