26#define CRC32_USE_LOOKUP_TABLE_BYTE
27#define CRC32_USE_LOOKUP_TABLE_SLICING_BY_4
28#define CRC32_USE_LOOKUP_TABLE_SLICING_BY_8
29#define CRC32_USE_LOOKUP_TABLE_SLICING_BY_16
57#ifdef CRC32_USE_LOOKUP_TABLE_BYTE
67#ifdef CRC32_USE_LOOKUP_TABLE_SLICING_BY_4
72#ifdef CRC32_USE_LOOKUP_TABLE_SLICING_BY_8
79#ifdef CRC32_USE_LOOKUP_TABLE_SLICING_BY_16
uint32_t crc32_1byte_tableless2(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (byte algorithm) without lookup tables
uint32_t crc32_1byte(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (standard algorithm)
uint32_t crc32_4x8bytes(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (Slicing-by-8 algorithm), unroll inner loop 4 times
uint32_t crc32_bitwise(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (bitwise algorithm)
uint32_t crc32_combine(uint32_t crcA, uint32_t crcB, size_t lengthB)
merge two CRC32 such that result = crc32(dataB, lengthB, crc32(dataA, lengthA))
uint32_t crc32_16bytes_prefetch(const void *data, size_t length, uint32_t previousCrc32=0, size_t prefetchAhead=256)
compute CRC32 (Slicing-by-16 algorithm, prefetch upcoming data blocks)
uint32_t crc32_1byte_tableless(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (byte algorithm) without lookup tables
uint32_t crc32_halfbyte(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (half-byte algoritm)
uint32_t crc32_fast(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 using the fastest algorithm for large datasets on modern CPUs
uint32_t crc32_16bytes(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (Slicing-by-16 algorithm)
uint32_t crc32_4bytes(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (Slicing-by-4 algorithm)
uint32_t crc32_8bytes(const void *data, size_t length, uint32_t previousCrc32=0)
compute CRC32 (Slicing-by-8 algorithm)