Multiplication in F_2[x] via carry-less word products and XOR
accumulation.
Equations
- p.mul q = Hex.GF2Poly.ofWords (Hex.GF2Poly.mulWords p.words q.words)
Instances For
@[instance_reducible]
Equations
- Hex.GF2Poly.instMul = { mul := Hex.GF2Poly.mul }
@[simp]
Zero is a left annihilator for packed GF(2) polynomial multiplication.
@[simp]
Zero is a right annihilator for packed GF(2) polynomial multiplication.
Carryless-convolution coefficient law: bit n of a packed GF(2) product
is the XOR-parity of the diagonal p.coeff i && q.coeff (n - i) for
i ∈ range (n + 1). This identity relates the carryless Hex.clmul
product to ordinary polynomial convolution over the two-element coefficient
ring.
The unit polynomial is the degree-zero monomial.
@[simp]
Multiplication by x^0 leaves a packed GF(2) polynomial unchanged.
@[simp]
One is a left identity for packed GF(2) polynomial multiplication.
@[simp]
One is a right identity for packed GF(2) polynomial multiplication.