pub trait MulX {
// Required method
fn mul_x(self) -> Self;
}Expand description
Scales a value by X, the generator of the field’s polynomial basis.
A one-bit shift plus a masked exclusive or, not a field multiply.
The scaling is GF(2)-linear, so it commutes with the modular reduction.
That is what lets one trait serve both a reduced element and an unreduced product:
reduce(mul_x(wide)) == mul_x(reduce(wide))Scaling an unreduced product folds the X of an irreducible polynomial into a reduction the
caller is going to pay for anyway.
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".