UInt32 GetPureRepPrice(UInt32 repIndex, LZMABase.State state, UInt32 posState) { UInt32 price; if (repIndex == 0) { price = _isRepG0[state.Index].GetPrice0(); price += _isRep0Long[(state.Index << LZMABase.kNumPosStatesBitsMax) + posState].GetPrice1(); } else { price = _isRepG0[state.Index].GetPrice1(); if (repIndex == 1) price += _isRepG1[state.Index].GetPrice0(); else { price += _isRepG1[state.Index].GetPrice1(); price += _isRepG2[state.Index].GetPrice(repIndex - 2); } } return price; }
UInt32 GetRepPrice(UInt32 repIndex, UInt32 len, LZMABase.State state, UInt32 posState) { UInt32 price = _repMatchLenEncoder.GetPrice(len - LZMABase.kMatchMinLen, posState); return price + GetPureRepPrice(repIndex, state, posState); }
UInt32 GetRepLen1Price(LZMABase.State state, UInt32 posState) { return _isRepG0[state.Index].GetPrice0() + _isRep0Long[(state.Index << LZMABase.kNumPosStatesBitsMax) + posState].GetPrice0(); }