stddev.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #include "stddev.h"
  3. // ----------------------------------------------------------------------------
  4. // stddev
  5. /*
  6. * Mean = average
  7. *
  8. NETDATA_DOUBLE grouping_flush_mean(RRDR *r, RRDR_VALUE_FLAGS *rrdr_value_options_ptr) {
  9. struct grouping_stddev *g = (struct grouping_stddev *)r->grouping.grouping_data;
  10. NETDATA_DOUBLE value;
  11. if(unlikely(!g->count)) {
  12. value = 0.0;
  13. *rrdr_value_options_ptr |= RRDR_VALUE_EMPTY;
  14. }
  15. else {
  16. value = mean(g);
  17. if(!isnormal(value)) {
  18. value = 0.0;
  19. *rrdr_value_options_ptr |= RRDR_VALUE_EMPTY;
  20. }
  21. }
  22. grouping_reset_stddev(r);
  23. return value;
  24. }
  25. */
  26. /*
  27. * It is not advised to use this version of variance directly
  28. *
  29. NETDATA_DOUBLE grouping_flush_variance(RRDR *r, RRDR_VALUE_FLAGS *rrdr_value_options_ptr) {
  30. struct grouping_stddev *g = (struct grouping_stddev *)r->grouping.grouping_data;
  31. NETDATA_DOUBLE value;
  32. if(unlikely(!g->count)) {
  33. value = 0.0;
  34. *rrdr_value_options_ptr |= RRDR_VALUE_EMPTY;
  35. }
  36. else {
  37. value = variance(g);
  38. if(!isnormal(value)) {
  39. value = 0.0;
  40. *rrdr_value_options_ptr |= RRDR_VALUE_EMPTY;
  41. }
  42. }
  43. grouping_reset_stddev(r);
  44. return value;
  45. }
  46. */