Lines Matching refs:dist

19 void qdist_init(struct qdist *dist)  in qdist_init()  argument
21 dist->entries = g_new(struct qdist_entry, 1); in qdist_init()
22 dist->size = 1; in qdist_init()
23 dist->n = 0; in qdist_init()
26 void qdist_destroy(struct qdist *dist) in qdist_destroy() argument
28 g_free(dist->entries); in qdist_destroy()
49 void qdist_add(struct qdist *dist, double x, long count) in qdist_add() argument
53 if (dist->n) { in qdist_add()
57 entry = bsearch(&e, dist->entries, dist->n, sizeof(e), qdist_cmp); in qdist_add()
65 if (unlikely(dist->n == dist->size)) { in qdist_add()
66 dist->size *= 2; in qdist_add()
67 dist->entries = g_renew(struct qdist_entry, dist->entries, dist->size); in qdist_add()
69 dist->n++; in qdist_add()
70 entry = &dist->entries[dist->n - 1]; in qdist_add()
73 qsort(dist->entries, dist->n, sizeof(*entry), qdist_cmp); in qdist_add()
76 void qdist_inc(struct qdist *dist, double x) in qdist_inc() argument
78 qdist_add(dist, x, 1); in qdist_inc()
106 static char *qdist_pr_internal(const struct qdist *dist) in qdist_pr_internal() argument
113 if (dist->n == 1) { in qdist_pr_internal()
114 if (dist->entries[0].count) { in qdist_pr_internal()
123 min = dist->entries[0].count; in qdist_pr_internal()
125 for (i = 0; i < dist->n; i++) { in qdist_pr_internal()
126 struct qdist_entry *e = &dist->entries[i]; in qdist_pr_internal()
136 for (i = 0; i < dist->n; i++) { in qdist_pr_internal()
137 struct qdist_entry *e = &dist->entries[i]; in qdist_pr_internal()
232 char *qdist_pr_plain(const struct qdist *dist, size_t n) in qdist_pr_plain() argument
237 if (dist->n == 0) { in qdist_pr_plain()
240 qdist_bin__internal(&binned, dist, n); in qdist_pr_plain()
246 static char *qdist_pr_label(const struct qdist *dist, size_t n_bins, in qdist_pr_label() argument
266 n = n_bins ? n_bins : dist->n; in qdist_pr_label()
267 x = is_left ? qdist_xmin(dist) : qdist_xmax(dist); in qdist_pr_label()
268 step = (qdist_xmax(dist) - qdist_xmin(dist)) / n; in qdist_pr_label()
305 char *qdist_pr(const struct qdist *dist, size_t n_bins, uint32_t opt) in qdist_pr() argument
312 if (dist->n == 0) { in qdist_pr()
318 llabel = qdist_pr_label(dist, n_bins, opt, true); in qdist_pr()
319 rlabel = qdist_pr_label(dist, n_bins, opt, false); in qdist_pr()
320 hgram = qdist_pr_plain(dist, n_bins); in qdist_pr()
330 static inline double qdist_x(const struct qdist *dist, int index) in qdist_x() argument
332 if (dist->n == 0) { in qdist_x()
335 return dist->entries[index].x; in qdist_x()
338 double qdist_xmin(const struct qdist *dist) in qdist_xmin() argument
340 return qdist_x(dist, 0); in qdist_xmin()
343 double qdist_xmax(const struct qdist *dist) in qdist_xmax() argument
345 return qdist_x(dist, dist->n - 1); in qdist_xmax()
348 size_t qdist_unique_entries(const struct qdist *dist) in qdist_unique_entries() argument
350 return dist->n; in qdist_unique_entries()
353 unsigned long qdist_sample_count(const struct qdist *dist) in qdist_sample_count() argument
358 for (i = 0; i < dist->n; i++) { in qdist_sample_count()
359 struct qdist_entry *e = &dist->entries[i]; in qdist_sample_count()
366 static double qdist_pairwise_avg(const struct qdist *dist, size_t index, in qdist_pairwise_avg() argument
375 struct qdist_entry *e = &dist->entries[index + i]; in qdist_pairwise_avg()
383 return qdist_pairwise_avg(dist, index, n2, count) + in qdist_pairwise_avg()
384 qdist_pairwise_avg(dist, index + n2, n - n2, count); in qdist_pairwise_avg()
388 double qdist_avg(const struct qdist *dist) in qdist_avg() argument
392 count = qdist_sample_count(dist); in qdist_avg()
396 return qdist_pairwise_avg(dist, 0, dist->n, count); in qdist_avg()