pub trait MulXWide {
// Required method
fn mul_x_wide(self) -> Self;
}Expand description
An unreduced widening product (a WideMul::Output) that can be scaled by the field element
X while still unreduced.
Scaling by X and the modular reduction are both GF(2)-linear, and they commute:
reduce(wide.mul_x_wide()) == reduce(wide).mul_x(). Doing the scaling on the unreduced product
lets an extension-field multiply fold the X of its irreducible polynomial into a product it is
going to reduce anyway, saving a reduction over scaling the reduced coordinate.
Required Methods§
Sourcefn mul_x_wide(self) -> Self
fn mul_x_wide(self) -> Self
Returns the unreduced product scaled by X.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.