rlm@1: /* BwtSort.h -- BWT block sorting rlm@1: 2008-03-26 rlm@1: Igor Pavlov rlm@1: Public domain */ rlm@1: rlm@1: #ifndef __BWTSORT_H rlm@1: #define __BWTSORT_H rlm@1: rlm@1: #include "Types.h" rlm@1: rlm@1: /* use BLOCK_SORT_EXTERNAL_FLAGS if blockSize can be > 1M */ rlm@1: /* #define BLOCK_SORT_EXTERNAL_FLAGS */ rlm@1: rlm@1: #ifdef BLOCK_SORT_EXTERNAL_FLAGS rlm@1: #define BLOCK_SORT_EXTERNAL_SIZE(blockSize) ((((blockSize) + 31) >> 5)) rlm@1: #else rlm@1: #define BLOCK_SORT_EXTERNAL_SIZE(blockSize) 0 rlm@1: #endif rlm@1: rlm@1: #define BLOCK_SORT_BUF_SIZE(blockSize) ((blockSize) * 2 + BLOCK_SORT_EXTERNAL_SIZE(blockSize) + (1 << 16)) rlm@1: rlm@1: UInt32 BlockSort(UInt32 *indices, const Byte *data, UInt32 blockSize); rlm@1: rlm@1: #endif