3 /* LZX uses what it calls 'position slots' to represent match offsets.
4 * What this means is that a small 'position slot' number and a small
5 * offset from that slot are encoded instead of one large offset for
7 * - lzx_position_base is an index to the position slot bases
8 * - lzx_extra_bits states how many bits of offset-from-base data is needed.
10 const u8 lzx_extra_bits[51] = {
11 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
12 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14,
13 15, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17 const u32 lzx_position_base[51] = {
18 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384,
19 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576,
20 32768, 49152, 65536, 98304, 131072, 196608, 262144, 393216, 524288,
21 655360, 786432, 917504, 1048576, 1179648, 1310720, 1441792, 1572864,
22 1703936, 1835008, 1966080, 2097152