Function: internal--hash-table-histogram
internal--hash-table-histogram is a function defined in fns.c.
Signature
(internal--hash-table-histogram HASH-TABLE)
Documentation
Bucket size histogram of HASH-TABLE. Internal use only.
Source Code
// Defined in /usr/src/emacs/src/fns.c
{
struct Lisp_Hash_Table *h = check_hash_table (hash_table);
ptrdiff_t size = HASH_TABLE_SIZE (h);
ptrdiff_t *freq = xzalloc (size * sizeof *freq);
ptrdiff_t index_size = hash_table_index_size (h);
for (ptrdiff_t i = 0; i < index_size; i++)
{
ptrdiff_t n = 0;
for (ptrdiff_t j = HASH_INDEX (h, i); j != -1; j = HASH_NEXT (h, j))
n++;
if (n > 0)
freq[n - 1]++;
}
Lisp_Object ret = Qnil;
for (ptrdiff_t i = 0; i < size; i++)
if (freq[i] > 0)
ret = Fcons (Fcons (make_int (i + 1), make_int (freq[i])),
ret);
xfree (freq);
return Fnreverse (ret);
}