i cant believe

starring at carryfree sources, i count ~20-30 cycles for encoding 16-bit value. are you think that 16 encoding operations for individual bits may be faster?
lets omit shifting operation (which should be the same for both encoders, yes?) and we left with
low += (cum * (range >>= bits));
range *= cnt;
which should require about 10 cycles. how much cycles require encoding of *each* bit in your coder?
in ppmd, binary coder is
inline UINT rcBinStart(UINT f0,UINT Shift) { return f0*(range >>= Shift); }
i.e. its only two times faster than encoding full 16 bits. and with rcBinCorrect operations, time is about the same. i think that economy is mainly due to less calls to normalizing procedure because we know that code cant overflow
<div class=""quoting"">Quoting: encode]<div class=""quoting"">Quoting: encode
Again, check the aridemo package from compression.ru! ]<div class=""quoting"">Quoting: encode]<div class=""quoting"">Quoting: encode