Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5098 clevermous 1
#include "common.h"
2
#define kNumRepDistances 4
3
#define kNumStates 12
4
extern const byte kLiteralNextStates[kNumStates];
5
extern const byte kMatchNextStates[kNumStates];
6
extern const byte kRepNextStates[kNumStates];
7
extern const byte kShortRepNextStates[kNumStates];
8
 
9
typedef byte CState;
10
#define CState_Init(a) a=0
11
#define CState_UpdateChar(a) a=kLiteralNextStates[a]
12
#define CState_UpdateMatch(a) a=kMatchNextStates[a]
13
#define CState_UpdateRep(a) a=kRepNextStates[a]
14
#define CState_UpdateShortRep(a) a=kShortRepNextStates[a]
15
#define CState_IsCharState(a) (a<7)
16
 
17
#define kNumPosSlotBits 6
18
#define kDicLogSizeMin 0
19
#define kDicLogSizeMax 32
20
#define kDistTableSizeMax (kDicLogSizeMax*2)
21
#define kNumLenToPosStates 4
22
 
23
#define GetLenToPosState(len) ((len
24
 
25
#define kNumPosStatesBitsMax	4
26
#define kNumPosStatesMax	(1<
27
 
28
#define kNumPosStatesBitsEncodingMax	4
29
#define kNumPosStatesEncodingMax	(1 << kNumPosStatesBitsEncodingMax)
30
 
31
#define kNumLowBits	3
32
#define kNumMidBits	3
33
#define kNumHighBits	8
34
#define kNumLowSymbols	(1<
35
#define kNumMidSymbols	(1<
36
#define kNumSymbolsTotal (kNumLowSymbols + kNumMidSymbols + (1<
37
 
38
#define kMatchMinLen 2
39
#define kMatchMaxLen (kMatchMinLen + kNumSymbolsTotal - 1)
40
 
41
#define kNumAlignBits 4
42
#define kAlignTableSize (1<
43
#define kAlignMask (kAlignTableSize-1)
44
 
45
#define kStartPosModelIndex 4
46
#define kEndPosModelIndex 14
47
#define kNumPosModels (kEndPosModelIndex-kStartPosModelIndex)
48
 
49
#define kNumFullDistances (1<<(kEndPosModelIndex/2))
50
#define kNumLitPosStatesBitsEncodingMax 4
51
#define kNumLitContextBitsMax 8
52
#define kNumMoveBits 5