30constexpr uint32_t
BASE = 65521u;
31constexpr std::size_t
NMAX = 5552u;
33#define DO1(buffer,i) {adler += static_cast<unsigned char>((buffer)[i]); sum2 += adler;}
34#define DO2(buffer,i) DO1(buffer,i) DO1(buffer,i+1)
35#define DO4(buffer,i) DO2(buffer,i) DO2(buffer,i+2)
36#define DO8(buffer,i) DO4(buffer,i) DO4(buffer,i+4)
37#define DO16(buffer) DO8(buffer,0) DO8(buffer,8)
40 const std::byte* cur = buffer.data();
41 uint64_t len = buffer.size();
46 uint32_t sum2 = (adler >> 16) & 0xffff;
51 adler +=
static_cast<unsigned char>(buffer[0]);
57 return adler | (sum2 << 16);
67 adler +=
static_cast<unsigned char>(*cur++);
73 return adler | (sum2 << 16);
79 uint32_t n =
NMAX / 16;
96 adler +=
static_cast<unsigned char>(*cur++);
104 return adler | (sum2 << 16);
constexpr std::size_t NMAX
uint32_t computeAdler32(std::span< const std::byte > buffer)