Lines Matching refs:tree

145 local void pqdownheap     OF((deflate_state *s, ct_data *tree, int k));
147 local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
149 local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
150 local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
168 # define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) argument
172 # define send_code(s, c, tree) \ argument
174 send_bits(s, tree[c].Code, tree[c].Len); }
438 #define pqremove(s, tree, top) \ argument
442 pqdownheap(s, tree, SMALLEST); \
449 #define smaller(tree, n, m, depth) \ argument
450 (tree[n].Freq < tree[m].Freq || \
451 (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
459 local void pqdownheap(s, tree, k) in pqdownheap() argument
461 ct_data *tree; /* the tree to restore */
469 smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
473 if (smaller(tree, v, s->heap[j], s->depth)) break;
498 ct_data *tree = desc->dyn_tree; local
516 tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
520 bits = tree[tree[n].Dad].Len + 1;
522 tree[n].Len = (ush)bits;
530 f = tree[n].Freq;
562 if ((unsigned) tree[m].Len != (unsigned) bits) {
563 Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
564 s->opt_len += ((long)bits - (long)tree[m].Len)
565 *(long)tree[m].Freq;
566 tree[m].Len = (ush)bits;
581 local void gen_codes (tree, max_code, bl_count) in gen_codes() argument
582 ct_data *tree; /* the tree to decorate */ in gen_codes()
605 int len = tree[n].Len;
608 tree[n].Code = bi_reverse(next_code[len]++, len);
610 Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
611 n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
627 ct_data *tree = desc->dyn_tree; local
641 if (tree[n].Freq != 0) {
645 tree[n].Len = 0;
656 tree[node].Freq = 1;
666 for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
673 pqremove(s, tree, n); /* n = node of least frequency */
680 tree[node].Freq = tree[n].Freq + tree[m].Freq;
683 tree[n].Dad = tree[m].Dad = (ush)node;
685 if (tree == s->bl_tree) {
687 node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
692 pqdownheap(s, tree, SMALLEST);
704 gen_codes ((ct_data *)tree, max_code, s->bl_count);
711 local void scan_tree (s, tree, max_code) in scan_tree() argument
713 ct_data *tree; /* the tree to be scanned */
719 int nextlen = tree[0].Len; /* length of next code */
725 tree[max_code+1].Len = (ush)0xffff; /* guard */
728 curlen = nextlen; nextlen = tree[n+1].Len;
756 local void send_tree (s, tree, max_code) in send_tree() argument
758 ct_data *tree; /* the tree to be scanned */
764 int nextlen = tree[0].Len; /* length of next code */
773 curlen = nextlen; nextlen = tree[n+1].Len;