44 uint32_t crc32_table[256];
45 uint32_t crc = 0xFFFFFFFF;
49 for (
size_t i = 0; i < *length; i++) {
50 uint64_t value = *(uint64_t*)&vector[i];
52 for (
size_t j = 0; j <
sizeof(value); j++) {
53 uint8_t
byte = value & 0xFF;
54 crc = (crc >> 8) ^ crc32_table[(crc ^
byte) & 0xFF];
58 *hash = (double) (crc ^ 0xFFFFFFFF);