mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-09 08:56:11 +00:00
stats: Add support for the interquartile range (IQR)
IQR is a good measure of dispersion. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
parent
1b8997b3f8
commit
fabde384a3
@ -216,7 +216,7 @@ uint64_t igt_stats_get_max(igt_stats_t *stats)
|
|||||||
*
|
*
|
||||||
* The range can be a deceiving characterization of the values, because there
|
* The range can be a deceiving characterization of the values, because there
|
||||||
* can be extreme minimal and maximum values that are just anomalies. Prefer
|
* can be extreme minimal and maximum values that are just anomalies. Prefer
|
||||||
* the interquatile range or an histogram.
|
* the interquatile range (see igt_stats_get_iqr()) or an histogram.
|
||||||
*/
|
*/
|
||||||
uint64_t igt_stats_get_range(igt_stats_t *stats)
|
uint64_t igt_stats_get_range(igt_stats_t *stats)
|
||||||
{
|
{
|
||||||
@ -339,6 +339,22 @@ void igt_stats_get_quartiles(igt_stats_t *stats,
|
|||||||
*q3 = ret;
|
*q3 = ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* igt_stats_get_iqr:
|
||||||
|
* @stats: An #igt_stats_t instance
|
||||||
|
*
|
||||||
|
* Retrieves the
|
||||||
|
* [interquartile range](https://en.wikipedia.org/wiki/Interquartile_range)
|
||||||
|
* (IQR) of the @stats dataset.
|
||||||
|
*/
|
||||||
|
double igt_stats_get_iqr(igt_stats_t *stats)
|
||||||
|
{
|
||||||
|
double q1, q3;
|
||||||
|
|
||||||
|
igt_stats_get_quartiles(stats, &q1, NULL, &q3);
|
||||||
|
return (q3 - q1);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* igt_stats_get_median:
|
* igt_stats_get_median:
|
||||||
* @stats: An #igt_stats_t instance
|
* @stats: An #igt_stats_t instance
|
||||||
|
@ -59,6 +59,7 @@ uint64_t igt_stats_get_max(igt_stats_t *stats);
|
|||||||
uint64_t igt_stats_get_range(igt_stats_t *stats);
|
uint64_t igt_stats_get_range(igt_stats_t *stats);
|
||||||
void igt_stats_get_quartiles(igt_stats_t *stats,
|
void igt_stats_get_quartiles(igt_stats_t *stats,
|
||||||
double *q1, double *q2, double *q3);
|
double *q1, double *q2, double *q3);
|
||||||
|
double igt_stats_get_iqr(igt_stats_t *stats);
|
||||||
double igt_stats_get_mean(igt_stats_t *stats);
|
double igt_stats_get_mean(igt_stats_t *stats);
|
||||||
double igt_stats_get_median(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_variance(igt_stats_t *stats);
|
||||||
|
@ -102,6 +102,7 @@ static void test_quartiles(void)
|
|||||||
igt_assert_eq_double(q2, 40);
|
igt_assert_eq_double(q2, 40);
|
||||||
igt_assert_eq_double(q3, 42.5);
|
igt_assert_eq_double(q3, 42.5);
|
||||||
igt_assert_eq_double(igt_stats_get_median(&stats), 40);
|
igt_assert_eq_double(igt_stats_get_median(&stats), 40);
|
||||||
|
igt_assert_eq_double(igt_stats_get_iqr(&stats), 42.5 - 25.5);
|
||||||
|
|
||||||
igt_stats_fini(&stats);
|
igt_stats_fini(&stats);
|
||||||
|
|
||||||
@ -114,6 +115,7 @@ static void test_quartiles(void)
|
|||||||
igt_assert_eq_double(q2, 37.5);
|
igt_assert_eq_double(q2, 37.5);
|
||||||
igt_assert_eq_double(q3, 40);
|
igt_assert_eq_double(q3, 40);
|
||||||
igt_assert_eq_double(igt_stats_get_median(&stats), 37.5);
|
igt_assert_eq_double(igt_stats_get_median(&stats), 37.5);
|
||||||
|
igt_assert_eq_double(igt_stats_get_iqr(&stats), 40 - 15);
|
||||||
|
|
||||||
igt_stats_fini(&stats);
|
igt_stats_fini(&stats);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user