in Sources/OSS/Utils/CRC64.swift [10:40]
init() {
let n: Int64 = 1
isLittleEndian = (n == n.littleEndian)
var crc: UInt64
var table = [[UInt64]](repeating: [UInt64](repeating: 0, count: 256), count: 8)
for n in 0 ..< 256 {
crc = UInt64(n)
for _ in 0 ..< 8 {
crc = ((crc & 1) != 0) ? poly ^ (crc >> 1) : crc >> 1
}
table[0][n] = crc
}
for n in 0 ..< 256 {
crc = table[0][n]
for k in 1 ..< 8 {
crc = table[0][Int(crc & 0xFF)] ^ (crc >> 8)
table[k][n] = crc
}
}
self.table = table
if !isLittleEndian {
for k in 0 ..< 8 {
for n in 0 ..< 256 {
table[k][n] = rev8(a: table[k][n])
}
}
}
}