public uint Decode(RangeDecoder rangeDecoder, uint posState) { if (m_Choice.Decode(rangeDecoder) == 0) { return(m_LowCoder[posState].Decode(rangeDecoder)); } else { uint symbol = LzmaBase.kNumLowLenSymbols; if (m_Choice2.Decode(rangeDecoder) == 0) { symbol += m_MidCoder[posState].Decode(rangeDecoder); } else { symbol += LzmaBase.kNumMidLenSymbols; symbol += m_HighCoder.Decode(rangeDecoder); } return(symbol); } }
internal uint Decode(RangeDecoder RangeDecoder, uint PositionState) => ChoiceA.Decode(RangeDecoder) == 0U ? LowDecoder[PositionState].Decode(RangeDecoder) : 8U + (ChoiceB.Decode(RangeDecoder) == 0U ? MidDecoder[PositionState].Decode(RangeDecoder) : (8U + HighDecoder.Decode(RangeDecoder)));