xref: /aosp_15_r20/external/lzma/C/HuffEnc.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker /* HuffEnc.h -- Huffman encoding
2*f6dc9357SAndroid Build Coastguard Worker 2023-03-05 : Igor Pavlov : Public domain */
3*f6dc9357SAndroid Build Coastguard Worker 
4*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_HUFF_ENC_H
5*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_HUFF_ENC_H
6*f6dc9357SAndroid Build Coastguard Worker 
7*f6dc9357SAndroid Build Coastguard Worker #include "7zTypes.h"
8*f6dc9357SAndroid Build Coastguard Worker 
9*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_BEGIN
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker /*
12*f6dc9357SAndroid Build Coastguard Worker Conditions:
13*f6dc9357SAndroid Build Coastguard Worker   num <= 1024 = 2 ^ NUM_BITS
14*f6dc9357SAndroid Build Coastguard Worker   Sum(freqs) < 4M = 2 ^ (32 - NUM_BITS)
15*f6dc9357SAndroid Build Coastguard Worker   maxLen <= 16 = kMaxLen
16*f6dc9357SAndroid Build Coastguard Worker   Num_Items(p) >= HUFFMAN_TEMP_SIZE(num)
17*f6dc9357SAndroid Build Coastguard Worker */
18*f6dc9357SAndroid Build Coastguard Worker 
19*f6dc9357SAndroid Build Coastguard Worker void Huffman_Generate(const UInt32 *freqs, UInt32 *p, Byte *lens, UInt32 num, UInt32 maxLen);
20*f6dc9357SAndroid Build Coastguard Worker 
21*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_END
22*f6dc9357SAndroid Build Coastguard Worker 
23*f6dc9357SAndroid Build Coastguard Worker #endif
24