p3-binary-dft 0.9.0-rc.1

Additive NTT over F_2-linear subspaces of the Plonky3 binary tower fields
docs.rs failed to build p3-binary-dft-0.9.0-rc.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: p3-binary-dft-0.8.0

p3-binary-dft

The additive NTT over the Plonky3 binary tower fields, and the Reed-Solomon encoder built on it.

The evaluation domain S_l is the span of the first l Cantor basis vectors.

It plays the role a multiplicative coset plays for a prime-field DFT.

Transforms

  • NaiveAdditiveNtt evaluates the definition directly, as the oracle the fast transforms are tested against.
  • LchNtt is the Lin-Chung-Han transform, for every tower level and representation.
  • PolyBasisNtt runs that transform on GF(2^128) in its polynomial basis, where a carryless multiply is cheap.

Kernels

  • Twiddles in a small tower subfield scale byte by byte, with GFNI on x86 and nibble tables on NEON.
  • Poly64 multiplies a whole register per carryless multiply, with AVX-512 or AVX2 and VPCLMULQDQ.
  • Every kernel keeps a portable fallback, and tests pin each one to it.

Part of Plonky3, dual-licensed under MIT and Apache 2.0.