7#ifndef ZIP7_INC_PPMD7_H
8#define ZIP7_INC_PPMD7_H
14#define PPMD7_MIN_ORDER 2
15#define PPMD7_MAX_ORDER 64
17#define PPMD7_MIN_MEM_SIZE (1 << 11)
18#define PPMD7_MAX_MEM_SIZE (0xFFFFFFFF - 12 * 3)
48#define Ppmd7Context_OneState(p) ((CPpmd_State *)&(p)->Union2)
77 unsigned OrderFall, InitEsc, PrevSuccess, MaxOrder,
HiBitsFlag;
83 Byte *
Base, *LoUnit, *HiUnit, *Text, *UnitsStart;
98 Byte NS2BSIndx[256], NS2Indx[256];
110#define Ppmd7_WasAllocated(p) ((p)->Base != NULL)
115#define Ppmd7_GetPtr(p, ptr) Ppmd_GetPtr(p, ptr)
116#define Ppmd7_GetContext(p, ptr) Ppmd_GetPtr_Type(p, ptr, CPpmd7_Context)
117#define Ppmd7_GetStats(p, ctx) Ppmd_GetPtr_Type(p, (ctx)->Union4.Stats, CPpmd_State)
123#define PPMD7_HiBitsFlag_3(sym) ((((unsigned)sym + 0xC0) >> (8 - 3)) & (1 << 3))
124#define PPMD7_HiBitsFlag_4(sym) ((((unsigned)sym + 0xC0) >> (8 - 4)) & (1 << 4))
128#define Ppmd7_GetBinSumm(p) \
129 &p->BinSumm[(size_t)(unsigned)Ppmd7Context_OneState(p->MinContext)->Freq - 1] \
130 [ p->PrevSuccess + ((p->RunLength >> 26) & 0x20) \
131 + p->NS2BSIndx[(size_t)Ppmd7_GetContext(p, p->MinContext->Suffix)->NumStats - 1] \
132 + PPMD7_HiBitsFlag_4(Ppmd7Context_OneState(p->MinContext)->Symbol) \
133 + (p->HiBitsFlag = PPMD7_HiBitsFlag_3(p->FoundState->Symbol)) ]
147#define PPMD7_SYM_END (-1)
148#define PPMD7_SYM_ERROR (-2)
162#define Ppmd7a_RangeDec_IsFinishedOK(p) ((p)->Code == 0)
167#define Ppmd7z_RangeDec_IsFinishedOK(p) ((p)->Code == 0)
int BoolInt
Definition 7zTypes.h:259
#define EXTERN_C_BEGIN
Definition 7zTypes.h:20
unsigned long long int UInt64
Definition 7zTypes.h:234
#define EXTERN_C_END
Definition 7zTypes.h:21
void Ppmd7_Update1(CPpmd7 *p)
Definition Ppmd7.c:970
void Ppmd7z_Flush_RangeEnc(CPpmd7 *p)
Definition Ppmd7Enc.c:66
BoolInt Ppmd7z_RangeDec_Init(CPpmd7_RangeDec *p)
Definition Ppmd7Dec.c:16
void Ppmd7z_Init_RangeEnc(CPpmd7 *p)
Definition Ppmd7Enc.c:15
void Ppmd7_Update1_0(CPpmd7 *p)
Definition Ppmd7.c:988
void Ppmd7_Update2(CPpmd7 *p)
Definition Ppmd7.c:1016
BoolInt Ppmd7_Alloc(CPpmd7 *p, UInt32 size, ISzAllocPtr alloc)
Definition Ppmd7.c:92
struct CPpmd7_Context_ CPpmd7_Context
void Ppmd7z_EncodeSymbols(CPpmd7 *p, const Byte *buf, const Byte *lim)
Definition Ppmd7Enc.c:316
BoolInt Ppmd7a_RangeDec_Init(CPpmd7_RangeDec *p)
void Ppmd7_Construct(CPpmd7 *p)
Definition Ppmd7.c:52
void Ppmd7_Init(CPpmd7 *p, unsigned maxOrder)
Definition Ppmd7.c:431
CPpmd_See * Ppmd7_MakeEscFreq(CPpmd7 *p, unsigned numMasked, UInt32 *scale)
Definition Ppmd7.c:930
void Ppmd7_Free(CPpmd7 *p, ISzAllocPtr alloc)
Definition Ppmd7.c:84
int Ppmd7z_DecodeSymbol(CPpmd7 *p)
Definition Ppmd7Dec.c:64
int Ppmd7a_DecodeSymbol(CPpmd7 *p)
#define PPMD_NUM_INDEXES
Definition Ppmd.h:38
#define Ppmd_Ref_Type(type)
Definition Ppmd.h:112
struct CPpmd7_Context_ CPpmd7_Context
UInt32 CPpmd7_Context_Ref
Definition Ppmd7.h:30
UInt32 CPpmd_Void_Ref
Definition Ppmd.h:69
UInt32 CPpmd_State_Ref
Definition Ppmd.h:61
char buf[N_BUF]
Definition spewG.c:36
CPpmd_State2 State2
Definition Ppmd7.h:34
CPpmd_State4 State4
Definition Ppmd7.h:40
CPpmd7_Context_Ref Suffix
Definition Ppmd7.h:43
union CPpmd7_Context_::@55 Union2
union CPpmd7_Context_::@56 Union4
CPpmd_State_Ref Stats
Definition Ppmd7.h:39
UInt16 SummFreq
Definition Ppmd7.h:33
UInt16 NumStats
Definition Ppmd7.h:28
IByteInPtr Stream
Definition Ppmd7.h:58
UInt32 Low
Definition Ppmd7.h:57
UInt32 Range
Definition Ppmd7.h:55
UInt32 Code
Definition Ppmd7.h:56
CPpmd7_RangeDec dec
Definition Ppmd7.h:90
Byte * Base
Definition Ppmd7.h:83
CPpmd_State * FoundState
Definition Ppmd7.h:76
Int32 InitRL
Definition Ppmd7.h:78
UInt32 Size
Definition Ppmd7.h:80
UInt32 GlueCount
Definition Ppmd7.h:81
CPpmd_See DummySee
Definition Ppmd7.h:100
UInt32 AlignOffset
Definition Ppmd7.h:82
CPpmd7z_RangeEnc enc
Definition Ppmd7.h:91
unsigned HiBitsFlag
Definition Ppmd7.h:77
CPpmd7_Context * MaxContext
Definition Ppmd7.h:75
UInt32 Range
Definition Ppmd7.h:64
Byte Cache
Definition Ppmd7.h:65
IByteOutPtr Stream
Definition Ppmd7.h:69
UInt64 Low
Definition Ppmd7.h:67
UInt64 CacheSize
Definition Ppmd7.h:68
unsigned int UInt32
Definition bzlib_private.h:45
unsigned short UInt16
Definition bzlib_private.h:47
int Int32
Definition bzlib_private.h:44
unsigned char Byte
Definition zconf.h:391