1*f6dc9357SAndroid Build Coastguard Worker /* BwtSort.h -- BWT block sorting 2*f6dc9357SAndroid Build Coastguard Worker 2023-03-03 : Igor Pavlov : Public domain */ 3*f6dc9357SAndroid Build Coastguard Worker 4*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_BWT_SORT_H 5*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_BWT_SORT_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 /* use BLOCK_SORT_EXTERNAL_FLAGS if blockSize can be > 1M */ 12*f6dc9357SAndroid Build Coastguard Worker /* #define BLOCK_SORT_EXTERNAL_FLAGS */ 13*f6dc9357SAndroid Build Coastguard Worker 14*f6dc9357SAndroid Build Coastguard Worker #ifdef BLOCK_SORT_EXTERNAL_FLAGS 15*f6dc9357SAndroid Build Coastguard Worker #define BLOCK_SORT_EXTERNAL_SIZE(blockSize) ((((blockSize) + 31) >> 5)) 16*f6dc9357SAndroid Build Coastguard Worker #else 17*f6dc9357SAndroid Build Coastguard Worker #define BLOCK_SORT_EXTERNAL_SIZE(blockSize) 0 18*f6dc9357SAndroid Build Coastguard Worker #endif 19*f6dc9357SAndroid Build Coastguard Worker 20*f6dc9357SAndroid Build Coastguard Worker #define BLOCK_SORT_BUF_SIZE(blockSize) ((blockSize) * 2 + BLOCK_SORT_EXTERNAL_SIZE(blockSize) + (1 << 16)) 21*f6dc9357SAndroid Build Coastguard Worker 22*f6dc9357SAndroid Build Coastguard Worker UInt32 BlockSort(UInt32 *indices, const Byte *data, UInt32 blockSize); 23*f6dc9357SAndroid Build Coastguard Worker 24*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_END 25*f6dc9357SAndroid Build Coastguard Worker 26*f6dc9357SAndroid Build Coastguard Worker #endif 27