summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/lib/lib7z/HuffEnc.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/lib/lib7z/HuffEnc.h')
-rw-r--r--trunk/src/lib/lib7z/HuffEnc.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/trunk/src/lib/lib7z/HuffEnc.h b/trunk/src/lib/lib7z/HuffEnc.h
new file mode 100644
index 00000000000..d0aa13cdc8d
--- /dev/null
+++ b/trunk/src/lib/lib7z/HuffEnc.h
@@ -0,0 +1,27 @@
+/* HuffEnc.h -- Huffman encoding
+2009-02-07 : Igor Pavlov : Public domain */
+
+#ifndef __HUFF_ENC_H
+#define __HUFF_ENC_H
+
+#include "Types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+Conditions:
+ num <= 1024 = 2 ^ NUM_BITS
+ Sum(freqs) < 4M = 2 ^ (32 - NUM_BITS)
+ maxLen <= 16 = kMaxLen
+ Num_Items(p) >= HUFFMAN_TEMP_SIZE(num)
+*/
+
+void Huffman_Generate(const UInt32 *freqs, UInt32 *p, Byte *lens, UInt32 num, UInt32 maxLen);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif