// Base.java package com.badlogic.gdx.utils.compression.lzma; public class Base { public static final int kNumRepDistances = 4; public static final int kNumStates = 12; public static final int StateInit () { return 0; } public static final int StateUpdateChar (int index) { if (index < 4) return 0; if (index < 10) return index - 3; return index - 6; } public static final int StateUpdateMatch (int index) { return (index < 7 ? 7 : 10); } public static final int StateUpdateRep (int index) { return (index < 7 ? 8 : 11); } public static final int StateUpdateShortRep (int index) { return (index < 7 ? 9 : 11); } public static final boolean StateIsCharState (int index) { return index < 7; } public static final int kNumPosSlotBits = 6; public static final int kDicLogSizeMin = 0; // public static final int kDicLogSizeMax = 28; // public static final int kDistTableSizeMax = kDicLogSizeMax * 2; public static final int kNumLenToPosStatesBits = 2; // it's for speed optimization public static final int kNumLenToPosStates = 1 << kNumLenToPosStatesBits; public static final int kMatchMinLen = 2; public static final int GetLenToPosState (int len) { len -= kMatchMinLen; if (len < kNumLenToPosStates) return len; return (int)(kNumLenToPosStates - 1); } public static final int kNumAlignBits = 4; public static final int kAlignTableSize = 1 << kNumAlignBits; public static final int kAlignMask = (kAlignTableSize - 1); public static final int kStartPosModelIndex = 4; public static final int kEndPosModelIndex = 14; public static final int kNumPosModels = kEndPosModelIndex - kStartPosModelIndex; public static final int kNumFullDistances = 1 << (kEndPosModelIndex / 2); public static final int kNumLitPosStatesBitsEncodingMax = 4; public static final int kNumLitContextBitsMax = 8; public static final int kNumPosStatesBitsMax = 4; public static final int kNumPosStatesMax = (1 << kNumPosStatesBitsMax); public static final int kNumPosStatesBitsEncodingMax = 4; public static final int kNumPosStatesEncodingMax = (1 << kNumPosStatesBitsEncodingMax); public static final int kNumLowLenBits = 3; public static final int kNumMidLenBits = 3; public static final int kNumHighLenBits = 8; public static final int kNumLowLenSymbols = 1 << kNumLowLenBits; public static final int kNumMidLenSymbols = 1 << kNumMidLenBits; public static final int kNumLenSymbols = kNumLowLenSymbols + kNumMidLenSymbols + (1 << kNumHighLenBits); public static final int kMatchMaxLen = kMatchMinLen + kNumLenSymbols - 1; }