summaryrefslogtreecommitdiffstats
path: root/libnetdata
diff options
context:
space:
mode:
authorCosta Tsaousis <costa@netdata.cloud>2023-04-13 15:27:34 +0300
committerGitHub <noreply@github.com>2023-04-13 15:27:34 +0300
commit238cb29793398cb258efb9a56bf031e9c00a858e (patch)
tree508f01f973211b9861d5012f499be67466137793 /libnetdata
parentb001e476523e2ab1f1b174ab61659e1b0e4ed410 (diff)
/api/v2 part 10 (#14904)
/api/v2/weights nonzero output
Diffstat (limited to 'libnetdata')
-rw-r--r--libnetdata/libnetdata.h1
-rw-r--r--libnetdata/storage_number/storage_number.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/libnetdata/libnetdata.h b/libnetdata/libnetdata.h
index 1a2d7c5b96..c1246aafa9 100644
--- a/libnetdata/libnetdata.h
+++ b/libnetdata/libnetdata.h
@@ -405,6 +405,7 @@ typedef struct storage_point {
#define storage_point_is_unset(x) (!(x).count)
#define storage_point_is_gap(x) (!netdata_double_isnumber((x).sum))
+#define storage_point_is_zero(x) (!(x).count || (netdata_double_is_zero((x).min) && netdata_double_is_zero((x).max) && netdata_double_is_zero((x).sum) && (x).anomaly_count == 0))
#define storage_point_merge_to(dst, src) do { \
if(storage_point_is_unset(dst)) \
diff --git a/libnetdata/storage_number/storage_number.h b/libnetdata/storage_number/storage_number.h
index da81639f29..82c870d690 100644
--- a/libnetdata/storage_number/storage_number.h
+++ b/libnetdata/storage_number/storage_number.h
@@ -70,6 +70,9 @@ typedef long long collected_number;
#define netdata_double_isnumber(a) (fpclassify(a) != FP_NAN && fpclassify(a) != FP_INFINITE)
#endif
+#define netdata_double_is_zero(a) (!netdata_double_isnumber(a) || considered_equal_ndd(a, 0.0))
+#define netdata_double_is_nonzero(a) (!netdata_double_is_zero(a))
+
typedef uint32_t storage_number;
typedef struct storage_number_tier1 {