// Base.java package sevenzip.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 (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; }