Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '7zip/Compress/BWT/Mtf8.h')
-rwxr-xr-x7zip/Compress/BWT/Mtf8.h140
1 files changed, 0 insertions, 140 deletions
diff --git a/7zip/Compress/BWT/Mtf8.h b/7zip/Compress/BWT/Mtf8.h
deleted file mode 100755
index d6c1c41a..00000000
--- a/7zip/Compress/BWT/Mtf8.h
+++ /dev/null
@@ -1,140 +0,0 @@
-// Mtf8.h
-
-#ifndef __MTF8_H
-#define __MTF8_H
-
-#include "Common/Types.h"
-
-namespace NCompress {
-
-class CMtf8Encoder
-{
-public:
- Byte Buffer[256];
- int FindAndMove(Byte v)
- {
- int pos;
- for (pos = 0; Buffer[pos] != v; pos++);
- int resPos = pos;
- for (; pos >= 8; pos -= 8)
- {
- Buffer[pos] = Buffer[pos - 1];
- Buffer[pos - 1] = Buffer[pos - 2];
- Buffer[pos - 2] = Buffer[pos - 3];
- Buffer[pos - 3] = Buffer[pos - 4];
- Buffer[pos - 4] = Buffer[pos - 5];
- Buffer[pos - 5] = Buffer[pos - 6];
- Buffer[pos - 6] = Buffer[pos - 7];
- Buffer[pos - 7] = Buffer[pos - 8];
- }
- for (; pos > 0; pos--)
- Buffer[pos] = Buffer[pos - 1];
- Buffer[0] = v;
- return resPos;
- }
-};
-
-class CMtf8Decoder
-{
-public:
- Byte Buffer[256];
- void Init(int /* size */) {};
- Byte GetHead() const { return Buffer[0]; }
- Byte GetAndMove(int pos)
- {
- Byte res = Buffer[pos];
- for (; pos >= 8; pos -= 8)
- {
- Buffer[pos] = Buffer[pos - 1];
- Buffer[pos - 1] = Buffer[pos - 2];
- Buffer[pos - 2] = Buffer[pos - 3];
- Buffer[pos - 3] = Buffer[pos - 4];
- Buffer[pos - 4] = Buffer[pos - 5];
- Buffer[pos - 5] = Buffer[pos - 6];
- Buffer[pos - 6] = Buffer[pos - 7];
- Buffer[pos - 7] = Buffer[pos - 8];
- }
- for (; pos > 0; pos--)
- Buffer[pos] = Buffer[pos - 1];
- Buffer[0] = res;
- return res;
- }
-};
-
-/*
-const int kSmallSize = 64;
-class CMtf8Decoder
-{
- Byte SmallBuffer[kSmallSize];
- int SmallSize;
- Byte Counts[16];
- int Size;
-public:
- Byte Buffer[256];
-
- Byte GetHead() const
- {
- if (SmallSize > 0)
- return SmallBuffer[kSmallSize - SmallSize];
- return Buffer[0];
- }
-
- void Init(int size)
- {
- Size = size;
- SmallSize = 0;
- for (int i = 0; i < 16; i++)
- {
- Counts[i] = ((size >= 16) ? 16 : size);
- size -= Counts[i];
- }
- }
-
- Byte GetAndMove(int pos)
- {
- if (pos < SmallSize)
- {
- Byte *p = SmallBuffer + kSmallSize - SmallSize;
- Byte res = p[pos];
- for (; pos > 0; pos--)
- p[pos] = p[pos - 1];
- SmallBuffer[kSmallSize - SmallSize] = res;
- return res;
- }
- if (SmallSize == kSmallSize)
- {
- int i = Size - 1;
- int g = 16;
- do
- {
- g--;
- int offset = (g << 4);
- for (int t = Counts[g] - 1; t >= 0; t--, i--)
- Buffer[i] = Buffer[offset + t];
- }
- while(g != 0);
-
- for (i = kSmallSize - 1; i >= 0; i--)
- Buffer[i] = SmallBuffer[i];
- Init(Size);
- }
- pos -= SmallSize;
- int g;
- for (g = 0; pos >= Counts[g]; g++)
- pos -= Counts[g];
- int offset = (g << 4);
- Byte res = Buffer[offset + pos];
- for (pos; pos < 16 - 1; pos++)
- Buffer[offset + pos] = Buffer[offset + pos + 1];
-
- SmallSize++;
- SmallBuffer[kSmallSize - SmallSize] = res;
-
- Counts[g]--;
- return res;
- }
-};
-*/
-
-}
-#endif