| 1 | // SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | #ifndef NETDATA_STATISTICAL_H |
| 4 | #define NETDATA_STATISTICAL_H 1 |
| 5 | |
| 6 | #include "../libnetdata.h" |
| 7 | |
| 8 | void log_series_to_stderr(NETDATA_DOUBLE *series, size_t entries, NETDATA_DOUBLE result, const char *msg); |
| 9 | |
| 10 | NETDATA_DOUBLE average(const NETDATA_DOUBLE *series, size_t entries); |
| 11 | NETDATA_DOUBLE moving_average(const NETDATA_DOUBLE *series, size_t entries, size_t period); |
| 12 | NETDATA_DOUBLE median(const NETDATA_DOUBLE *series, size_t entries); |
| 13 | NETDATA_DOUBLE moving_median(const NETDATA_DOUBLE *series, size_t entries, size_t period); |
| 14 | NETDATA_DOUBLE running_median_estimate(const NETDATA_DOUBLE *series, size_t entries); |
| 15 | NETDATA_DOUBLE standard_deviation(const NETDATA_DOUBLE *series, size_t entries); |
| 16 | NETDATA_DOUBLE single_exponential_smoothing(const NETDATA_DOUBLE *series, size_t entries, NETDATA_DOUBLE alpha); |
| 17 | extern NETDATA_DOUBLE |
| 18 | single_exponential_smoothing_reverse(const NETDATA_DOUBLE *series, size_t entries, NETDATA_DOUBLE alpha); |
| 19 | NETDATA_DOUBLE double_exponential_smoothing(const NETDATA_DOUBLE *series, size_t entries, |
| 20 | NETDATA_DOUBLE alpha, |
| 21 | NETDATA_DOUBLE beta, |
| 22 | NETDATA_DOUBLE *forecast); |
| 23 | NETDATA_DOUBLE holtwinters(const NETDATA_DOUBLE *series, size_t entries, |
| 24 | NETDATA_DOUBLE alpha, |
| 25 | NETDATA_DOUBLE beta, |
| 26 | NETDATA_DOUBLE gamma, |
| 27 | NETDATA_DOUBLE *forecast); |
| 28 | NETDATA_DOUBLE sum_and_count(const NETDATA_DOUBLE *series, size_t entries, size_t *count); |
| 29 | NETDATA_DOUBLE sum(const NETDATA_DOUBLE *series, size_t entries); |
| 30 | NETDATA_DOUBLE median_on_sorted_series(const NETDATA_DOUBLE *series, size_t entries); |
| 31 | NETDATA_DOUBLE percentile_on_sorted_series(const NETDATA_DOUBLE *series, size_t entries, double percentile); |
| 32 | NETDATA_DOUBLE *copy_series(const NETDATA_DOUBLE *series, size_t entries); |
| 33 | void sort_series(NETDATA_DOUBLE *series, size_t entries); |
| 34 | |
| 35 | // unit tests |
| 36 | int statistical_unittest(void); |
| 37 | |
| 38 | #endif //NETDATA_STATISTICAL_H |