-#ifdef STATS
-
-void MANGLEP(stats) (SET *table)
-{
- size_t nfree = 0;
-#ifdef PSET
- Element *q = table->free_list;
- while (q) { q = q->chain; ++nfree; }
-#endif
- lc_printf(" accesses collisions keys duplicates longest wasted\n%12zu%12zu%12zu%12zu%12zu%12zu\n",
- table->naccess, table->ncollision, table->nkey, table->ndups, table->max_chain_len, nfree);
-}
-
-static inline void stat_chain_len(SET *table, size_t chain_len)
-{
- table->ncollision += chain_len;
- if (table->max_chain_len < chain_len) table->max_chain_len = chain_len;
-}
-
-# define stat_access(table) (++(table)->naccess)
-# define stat_dup(table) (++(table)->ndups)
-
-#else /* !STATS */
-
-# define stat_chain_len(table, chain_len) ((void)chain_len)
-# define stat_access(table) ((void)0)
-# define stat_dup(table) ((void)0)
-
-#endif /* !STATS */
-
-#ifdef DEBUG
-
-const char *MANGLEP(tag);
-
-
-void MANGLEP(describe) (SET *table)
-{
- size_t i, j, collide;
- Element *ptr;
- Segment *seg;
-
- lc_printf("p=%zu maxp=%zu nkey=%zu nseg=%zu\n",
- table->p, table->maxp, table->nkey, table->nseg);
- for (i = 0; i < table->nseg; i++) {
- seg = table->dir[i];
- for (j = 0; j < SEGMENT_SIZE; j++) {
- collide = 0;
- ptr = seg[j];
- while (ptr) {
- if (collide) lc_printf("<%3zu>", collide);
- else printf ("table");
- lc_printf("[%zd][%3zd]: %u %p\n", i, j, ptr->entry.hash, (void *)ptr->entry.dptr);
- ptr = ptr->chain;
- ++collide;
- }
- }
- }
-#ifdef STATS
- MANGLEP(stats)(table);
-#endif
-}
-
-#endif /* !DEBUG */
-
-