misc/libphysfs/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs
branchui-scaling
changeset 15283 c4fd2813b127
parent 13390 0135e64c6c66
parent 15279 7ab5cf405686
child 15663 d92eeb468dad
--- a/misc/libphysfs/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs	Wed May 16 18:22:28 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-using System;
-
-namespace SevenZip.Compression.RangeCoder
-{
-	struct BitTreeEncoder
-	{
-		BitEncoder[] Models;
-		int NumBitLevels;
-
-		public BitTreeEncoder(int numBitLevels)
-		{
-			NumBitLevels = numBitLevels;
-			Models = new BitEncoder[1 << numBitLevels];
-		}
-
-		public void Init()
-		{
-			for (uint i = 1; i < (1 << NumBitLevels); i++)
-				Models[i].Init();
-		}
-
-		public void Encode(Encoder rangeEncoder, UInt32 symbol)
-		{
-			UInt32 m = 1;
-			for (int bitIndex = NumBitLevels; bitIndex > 0; )
-			{
-				bitIndex--;
-				UInt32 bit = (symbol >> bitIndex) & 1;
-				Models[m].Encode(rangeEncoder, bit);
-				m = (m << 1) | bit;
-			}
-		}
-
-		public void ReverseEncode(Encoder rangeEncoder, UInt32 symbol)
-		{
-			UInt32 m = 1;
-			for (UInt32 i = 0; i < NumBitLevels; i++)
-			{
-				UInt32 bit = symbol & 1;
-				Models[m].Encode(rangeEncoder, bit);
-				m = (m << 1) | bit;
-				symbol >>= 1;
-			}
-		}
-
-		public UInt32 GetPrice(UInt32 symbol)
-		{
-			UInt32 price = 0;
-			UInt32 m = 1;
-			for (int bitIndex = NumBitLevels; bitIndex > 0; )
-			{
-				bitIndex--;
-				UInt32 bit = (symbol >> bitIndex) & 1;
-				price += Models[m].GetPrice(bit);
-				m = (m << 1) + bit;
-			}
-			return price;
-		}
-
-		public UInt32 ReverseGetPrice(UInt32 symbol)
-		{
-			UInt32 price = 0;
-			UInt32 m = 1;
-			for (int i = NumBitLevels; i > 0; i--)
-			{
-				UInt32 bit = symbol & 1;
-				symbol >>= 1;
-				price += Models[m].GetPrice(bit);
-				m = (m << 1) | bit;
-			}
-			return price;
-		}
-
-		public static UInt32 ReverseGetPrice(BitEncoder[] Models, UInt32 startIndex,
-			int NumBitLevels, UInt32 symbol)
-		{
-			UInt32 price = 0;
-			UInt32 m = 1;
-			for (int i = NumBitLevels; i > 0; i--)
-			{
-				UInt32 bit = symbol & 1;
-				symbol >>= 1;
-				price += Models[startIndex + m].GetPrice(bit);
-				m = (m << 1) | bit;
-			}
-			return price;
-		}
-
-		public static void ReverseEncode(BitEncoder[] Models, UInt32 startIndex,
-			Encoder rangeEncoder, int NumBitLevels, UInt32 symbol)
-		{
-			UInt32 m = 1;
-			for (int i = 0; i < NumBitLevels; i++)
-			{
-				UInt32 bit = symbol & 1;
-				Models[startIndex + m].Encode(rangeEncoder, bit);
-				m = (m << 1) | bit;
-				symbol >>= 1;
-			}
-		}
-	}
-
-	struct BitTreeDecoder
-	{
-		BitDecoder[] Models;
-		int NumBitLevels;
-
-		public BitTreeDecoder(int numBitLevels)
-		{
-			NumBitLevels = numBitLevels;
-			Models = new BitDecoder[1 << numBitLevels];
-		}
-
-		public void Init()
-		{
-			for (uint i = 1; i < (1 << NumBitLevels); i++)
-				Models[i].Init();
-		}
-
-		public uint Decode(RangeCoder.Decoder rangeDecoder)
-		{
-			uint m = 1;
-			for (int bitIndex = NumBitLevels; bitIndex > 0; bitIndex--)
-				m = (m << 1) + Models[m].Decode(rangeDecoder);
-			return m - ((uint)1 << NumBitLevels);
-		}
-
-		public uint ReverseDecode(RangeCoder.Decoder rangeDecoder)
-		{
-			uint m = 1;
-			uint symbol = 0;
-			for (int bitIndex = 0; bitIndex < NumBitLevels; bitIndex++)
-			{
-				uint bit = Models[m].Decode(rangeDecoder);
-				m <<= 1;
-				m += bit;
-				symbol |= (bit << bitIndex);
-			}
-			return symbol;
-		}
-
-		public static uint ReverseDecode(BitDecoder[] Models, UInt32 startIndex,
-			RangeCoder.Decoder rangeDecoder, int NumBitLevels)
-		{
-			uint m = 1;
-			uint symbol = 0;
-			for (int bitIndex = 0; bitIndex < NumBitLevels; bitIndex++)
-			{
-				uint bit = Models[startIndex + m].Decode(rangeDecoder);
-				m <<= 1;
-				m += bit;
-				symbol |= (bit << bitIndex);
-			}
-			return symbol;
-		}
-	}
-}