5namespace native::detail {
7 constexpr std::uint32_t crc_update(std::uint32_t accumulator, std::uint64_t value,
8 unsigned bits, std::uint32_t polynomial)
noexcept {
9 for(
unsigned bit=0;bit<bits;++bit) {
10 auto feedback=(accumulator^
static_cast<std::uint32_t
>(value))&1u;
11 accumulator=(accumulator>>1)^(feedback?polynomial:0u);