Lines Matching defs:dist
25 // dist return
51 // get_dist_slot(dist) is the basic version. get_dist_slot_2(dist)
52 // assumes that dist >= FULL_DISTANCES, thus the result is at least
53 // FULL_DISTANCES_BITS * 2. Using get_dist_slot(dist) instead of
54 // get_dist_slot_2(dist) would give the same result, but get_dist_slot_2(dist)
79 # define get_dist_slot(dist) \
80 ((dist) <= 4 ? (dist) : get_dist_slot_2(dist))
83 get_dist_slot_2(uint32_t dist)
85 const uint32_t i = bsr32(dist);
86 return (i + i) + ((dist >> (i - 1)) & 1);
103 #define fastpos_result(dist, extra, n) \
104 (uint32_t)(lzma_fastpos[(dist) >> fastpos_shift(extra, n)]) \
109 get_dist_slot(uint32_t dist)
113 if (dist < fastpos_limit(0, 0))
114 return lzma_fastpos[dist];
116 if (dist < fastpos_limit(0, 1))
117 return fastpos_result(dist, 0, 1);
119 return fastpos_result(dist, 0, 2);
125 get_dist_slot_2(uint32_t dist)
127 assert(dist >= FULL_DISTANCES);
129 if (dist < fastpos_limit(FULL_DISTANCES_BITS - 1, 0))
130 return fastpos_result(dist, FULL_DISTANCES_BITS - 1, 0);
132 if (dist < fastpos_limit(FULL_DISTANCES_BITS - 1, 1))
133 return fastpos_result(dist, FULL_DISTANCES_BITS - 1, 1);
135 return fastpos_result(dist, FULL_DISTANCES_BITS - 1, 2);