mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 01:16:18 +00:00
stats: Add functions to retrieve min/max values of the dataset
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
parent
87009f3d7b
commit
4a89a841a1
@ -28,6 +28,8 @@
|
|||||||
#include "igt_core.h"
|
#include "igt_core.h"
|
||||||
#include "igt_stats.h"
|
#include "igt_stats.h"
|
||||||
|
|
||||||
|
#define U64_MAX ((uint64_t)~0ULL)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SECTION:igt_stats
|
* SECTION:igt_stats
|
||||||
* @short_description: Tools for statistical analysis
|
* @short_description: Tools for statistical analysis
|
||||||
@ -78,6 +80,9 @@ void igt_stats_init(igt_stats_t *stats, unsigned int capacity)
|
|||||||
stats->values = calloc(capacity, sizeof(*stats->values));
|
stats->values = calloc(capacity, sizeof(*stats->values));
|
||||||
igt_assert(stats->values);
|
igt_assert(stats->values);
|
||||||
stats->capacity = capacity;
|
stats->capacity = capacity;
|
||||||
|
|
||||||
|
stats->min = U64_MAX;
|
||||||
|
stats->max = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -151,7 +156,35 @@ void igt_stats_push(igt_stats_t *stats, uint64_t value)
|
|||||||
{
|
{
|
||||||
igt_assert(stats->n_values < stats->capacity);
|
igt_assert(stats->n_values < stats->capacity);
|
||||||
stats->values[stats->n_values++] = value;
|
stats->values[stats->n_values++] = value;
|
||||||
|
|
||||||
stats->mean_variance_valid = false;
|
stats->mean_variance_valid = false;
|
||||||
|
|
||||||
|
if (value < stats->min)
|
||||||
|
stats->min = value;
|
||||||
|
if (value > stats->max)
|
||||||
|
stats->max = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* igt_stats_get_min:
|
||||||
|
* @stats: An #igt_stats_t instance
|
||||||
|
*
|
||||||
|
* Retrieves the minimal value in @stats
|
||||||
|
*/
|
||||||
|
uint64_t igt_stats_get_min(igt_stats_t *stats)
|
||||||
|
{
|
||||||
|
return stats->min;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* igt_stats_get_max:
|
||||||
|
* @stats: An #igt_stats_t instance
|
||||||
|
*
|
||||||
|
* Retrieves the maximum value in @stats
|
||||||
|
*/
|
||||||
|
uint64_t igt_stats_get_max(igt_stats_t *stats)
|
||||||
|
{
|
||||||
|
return stats->max;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -41,6 +41,7 @@ typedef struct {
|
|||||||
unsigned int capacity;
|
unsigned int capacity;
|
||||||
unsigned int is_population : 1;
|
unsigned int is_population : 1;
|
||||||
unsigned int mean_variance_valid : 1;
|
unsigned int mean_variance_valid : 1;
|
||||||
|
uint64_t min, max;
|
||||||
double mean, variance;
|
double mean, variance;
|
||||||
} igt_stats_t;
|
} igt_stats_t;
|
||||||
|
|
||||||
@ -49,6 +50,8 @@ void igt_stats_fini(igt_stats_t *stats);
|
|||||||
bool igt_stats_is_population(igt_stats_t *stats);
|
bool igt_stats_is_population(igt_stats_t *stats);
|
||||||
void igt_stats_set_population(igt_stats_t *stats, bool full_population);
|
void igt_stats_set_population(igt_stats_t *stats, bool full_population);
|
||||||
void igt_stats_push(igt_stats_t *stats, uint64_t value);
|
void igt_stats_push(igt_stats_t *stats, uint64_t value);
|
||||||
|
uint64_t igt_stats_get_min(igt_stats_t *stats);
|
||||||
|
uint64_t igt_stats_get_max(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_variance(igt_stats_t *stats);
|
double igt_stats_get_variance(igt_stats_t *stats);
|
||||||
double igt_stats_get_std_deviation(igt_stats_t *stats);
|
double igt_stats_get_std_deviation(igt_stats_t *stats);
|
||||||
|
@ -57,6 +57,17 @@ static void test_init(void)
|
|||||||
igt_assert(igt_stats_is_population(&stats) == false);
|
igt_assert(igt_stats_is_population(&stats) == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_min_max(void)
|
||||||
|
{
|
||||||
|
igt_stats_t stats;
|
||||||
|
|
||||||
|
igt_stats_init(&stats, 5);
|
||||||
|
push_fixture_1(&stats);
|
||||||
|
|
||||||
|
igt_assert(igt_stats_get_min(&stats) == 2);
|
||||||
|
igt_assert(igt_stats_get_max(&stats) == 10);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_mean(void)
|
static void test_mean(void)
|
||||||
{
|
{
|
||||||
igt_stats_t stats;
|
igt_stats_t stats;
|
||||||
@ -127,6 +138,7 @@ igt_simple_main
|
|||||||
{
|
{
|
||||||
test_init_zero();
|
test_init_zero();
|
||||||
test_init();
|
test_init();
|
||||||
|
test_min_max();
|
||||||
test_mean();
|
test_mean();
|
||||||
test_invalidate_mean();
|
test_invalidate_mean();
|
||||||
test_std_deviation();
|
test_std_deviation();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user