9 #define kTopValue (1 << 24)
15 p->
Range = 0xFFFFFFFF;
18 for (i = 0; i < 4; i++)
20 return (p->
Code < 0xFFFFFFFF);
23 #define GET_Ppmd7z_RangeDec CPpmd7z_RangeDec *p = CONTAINER_FROM_VTBL(pp, CPpmd7z_RangeDec, vt);
28 return p->Code / (p->Range /= total);
48 p->Code -= start * p->Range;
56 UInt32 newBound = (p->Range >> 14) * size0;
58 if (p->Code < newBound)
81 #define MASK(sym) ((signed char *)charMask)[sym]
85 size_t charMask[256 /
sizeof(size_t)];
104 if ((hiCnt += (++s)->Freq) > count)
122 do {
MASK((--s)->Symbol) = 0; }
while (--i);
144 UInt32 freqSum, count, hiCnt;
162 hiCnt += (s->
Freq & k);
176 for (hiCnt = 0; (hiCnt += (*pps)->Freq) <= count; pps++);
185 if (count >= freqSum)
187 rc->
Decode(rc, hiCnt, freqSum - hiCnt);
189 do {
MASK(ps[--i]->Symbol) = 0; }
while (i != 0);