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