diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2015-07-01 18:52:46 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2015-07-01 18:58:46 +0100 |
commit | 2d305f61995cc896aaa1d3be01c33d90515c22e0 (patch) | |
tree | e4fd0a11e6e40d137a1e83c97bb012b3a119152b /lib | |
parent | 19135a34471ec4da4d7cc8493c371b8c38879f0b (diff) |
stats: Add trimean
https://en.wikipedia.org/wiki/Trimean
The trimean is a the most efficient 3-point L-estimator (estimator
of central tendency, i.e. average), even more robust than the
median at estimating the average of a sample population.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/igt_stats.c | 16 | ||||
-rw-r--r-- | lib/igt_stats.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/igt_stats.c b/lib/igt_stats.c index cec35876..b7053c3c 100644 --- a/lib/igt_stats.c +++ b/lib/igt_stats.c @@ -528,3 +528,19 @@ double igt_stats_get_iqm(igt_stats_t *stats) return mean; } + +/** + * igt_stats_get_trimean: + * @stats: An #igt_stats_t instance + * + * Retrieves the trimean of the @stats dataset. + * + * The trimean is a the most efficient 3-point L-estimator, even more + * robust than the median at estimating the average of a sample population. + */ +double igt_stats_get_trimean(igt_stats_t *stats) +{ + double q1, q2, q3; + igt_stats_get_quartiles(stats, &q1, &q2, &q3); + return (q1 + 2*q2 + q3) / 4; +} diff --git a/lib/igt_stats.h b/lib/igt_stats.h index 00fb9b1f..554ab158 100644 --- a/lib/igt_stats.h +++ b/lib/igt_stats.h @@ -63,6 +63,7 @@ void igt_stats_get_quartiles(igt_stats_t *stats, double igt_stats_get_iqr(igt_stats_t *stats); double igt_stats_get_iqm(igt_stats_t *stats); double igt_stats_get_mean(igt_stats_t *stats); +double igt_stats_get_trimean(igt_stats_t *stats); double igt_stats_get_median(igt_stats_t *stats); double igt_stats_get_variance(igt_stats_t *stats); double igt_stats_get_std_deviation(igt_stats_t *stats); |