mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 12:07:12 +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
 | 
			
		||||
 * 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)
 | 
			
		||||
{
 | 
			
		||||
@ -339,6 +339,22 @@ void igt_stats_get_quartiles(igt_stats_t *stats,
 | 
			
		||||
		*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:
 | 
			
		||||
 * @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);
 | 
			
		||||
void igt_stats_get_quartiles(igt_stats_t *stats,
 | 
			
		||||
			     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_median(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(q3, 42.5);
 | 
			
		||||
	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);
 | 
			
		||||
 | 
			
		||||
@ -114,6 +115,7 @@ static void test_quartiles(void)
 | 
			
		||||
	igt_assert_eq_double(q2, 37.5);
 | 
			
		||||
	igt_assert_eq_double(q3, 40);
 | 
			
		||||
	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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user