### References

**GF2 Math:**
- [pclmulqdq Tricks](https://wunkolo.github.io/post/2020/05/pclmulqdq-tricks)
- [Cyclic Redundancy Check](https://tadmccorkle.com/blog/posts/cyclic-redundancy-check)

**CRC Basics and Software Implementations:**
- [A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS](https://www.zlib.net/crc_v3.txt)
- [Understanding CRC](https://www.sunshine2k.de/articles/coding/crc/understanding_crc.html)
- [Fast CRC32](https://create.stephan-brumme.com/crc32)
- [crcany](https://github.com/madler/crcany)
- [Catalogue of parametrised CRC algorithms](https://reveng.sourceforge.io/crc-catalogue)

**Intel Intrinsics:**
- [A Quick Guide to SSE/SIMD](https://www.cs.virginia.edu/~cr4bd/3330/F2018/simdref.html)
- [Intel Intrinsics Guide](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html)
- [Header files for x86 SIMD intrinsics](https://stackoverflow.com/a/11228864)
- [GCC's x86 Target Attribute Options](https://gcc.gnu.org/onlinedocs/gcc/x86-Function-Attributes.html#index-target-function-attribute-4)

**Arm Intrinsics:**
- [Neon Programmer Guide for Armv8-A](https://developer.arm.com/documentation/102159/0400)
- [A whirlwind tour of AArch64 vector instructions](https://www.corsix.org/content/whirlwind-tour-aarch64-vector-instructions)
- [Arm Neon Intrinsics Reference](https://arm-software.github.io/acle/neon_intrinsics/advsimd.html)
- [GCC's AArch64 Compile Options](https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html)
- [GCC's AArch64 Target Attribute Documentation](https://gcc.gnu.org/onlinedocs/gcc/AArch64-Function-Attributes.html)

**Hardware Acceleration using the CLMUL Instruction:**
- [Fast CRC Computation for Generic Polynomials Using PCLMULQDQ Instruction](https://web.archive.org/web/20230315165408/https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf)
- [Chromium's CRC32 implementation](https://chromium.googlesource.com/chromium/src/third_party/zlib/+/refs/heads/main/crc32_simd.c)
- [Calculating constants for CRC32 using PCLMULQDQ](https://stackoverflow.com/a/21201497)
