| 681 | } |
| 682 | |
| 683 | double hdr_stddev(const struct hdr_histogram* h) |
| 684 | { |
| 685 | double mean = hdr_mean(h); |
| 686 | double geometric_dev_total = 0.0; |
| 687 | |
| 688 | struct hdr_iter iter; |
| 689 | hdr_iter_init(&iter, h); |
| 690 | |
| 691 | while (hdr_iter_next(&iter)) |
| 692 | { |
| 693 | if (0 != iter.count) |
| 694 | { |
| 695 | double dev = (hdr_median_equivalent_value(h, iter.value) * 1.0) - mean; |
| 696 | geometric_dev_total += (dev * dev) * iter.count; |
| 697 | } |
| 698 | } |
| 699 | |
| 700 | return sqrt(geometric_dev_total / h->total_count); |
| 701 | } |
| 702 | |
| 703 | bool hdr_values_are_equivalent(const struct hdr_histogram* h, int64_t a, int64_t b) |
| 704 | { |
no test coverage detected