Lines Matching refs:rem
149 Each element in the array is further indexed by the (mem, rem) doublet,
150 where mem is the amount of inflate table space used so far, and rem is the
153 not. Since the ranges for mem and rem are not known a priori, each bit
155 states. mem and rem are used to calculate a single index in a triangular
157 ten times larger than the range of rem, the array is skewed to reduce the
158 memory usage, with eight times the range for mem than for rem. See the
253 has a variable size bit vector indexed by (mem,rem). The bit vector is
254 lengthened if needed to allow setting the (mem,rem) bit. */
255 local int beenhere(int syms, int len, int left, int mem, int rem)
263 /* point to vector for (syms,left,len), bit in vector for (mem,rem) */
266 offset = (mem >> 3) + rem;
267 offset = ((offset * (offset + 1)) >> 1) + rem;
317 the current sub-table is rem. Uses the globals max, code, root, large, and
319 local void examine(int syms, int len, int left, int mem, int rem)
331 while (rem < left) {
332 left -= rem;
333 rem = 1 << (len - root);
334 mem += rem;
336 assert(rem == left);
355 if (beenhere(syms, len, left, mem, rem))
372 while (rem < use) {
373 use -= rem;
374 rem = 1 << (len - root);
375 mem += rem;
377 rem -= use;
383 mem + (rem ? 1 << (len - root) : 0), rem << 1);
384 if (rem == 0) {
385 rem = 1 << (len - root);
386 mem += rem;
388 rem--;